packages feed

vulkan 3.22.1 → 3.23

raw patch · 422 files changed

+71565/−36362 lines, 422 files

Files

changelog.md view
@@ -2,6 +2,9 @@  ## WIP +## [3.23] - 2022-10-02+- Bump API version to v1.3.230+ ## [3.22.1] - 2022-09-25 - Bump API version to v1.3.229 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.22.1"+version: "3.23" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
readme.md view
@@ -313,8 +313,8 @@ - `pkg-config` and `SDL2` to build the Haskell `sdl2` package. - `glslang` (for the `glslangValidator` binary, to build the shaders) -Jonathan Merritt has made an excellent video detailing how to set up everything -necessary for running the examples on macOS +Jonathan Merritt has made an excellent video detailing how to set up everything+necessary for running the examples on macOS [here](https://www.youtube.com/watch?v=BaBt-CNBfd0).  ### Building using Nix@@ -331,7 +331,7 @@ - `vulkan-examples`, some examples, this package is dependency-heavy - `generate-new`, the program to generate the source of `vulkan` and   `VulkanMemoryAllocator`, also quite dependency-heavy (this only build with-  ghc 8.8).+  ghc 8.10).  You may want to pass your `<nixpkgs>` as `pkgs` to `default.nix` to avoid rebuilding a parallel set of haskell packages based on the pegged nixpkgs@@ -385,51 +385,48 @@  ### Building on Windows with Cabal -- Clone this repo+- Clone this repo with submodules (to get the C header in order to build VulkanMemoryAllocator)+  - `git clone --recursive https://github.com/expipiplus1/vulkan` - Install GHC and Cabal-  - I downloaded the GHC binary package from-    [here](https://www.haskell.org/ghc/download_ghc_8_8_4.html), extracted it-    and added the `bin` directory to `PATH`.-  - I downloaded the cabal-install binary package from [here](https://www.haskell.org/cabal/download.html)-- Make sure your graphics driver has installed `vulkan-1.dll` in `C:/windows/system32`+  - I used [ghcup](https://www.haskell.org/ghcup/)+  - Make sure that the `libstdc++` dll is in `PATH`, I had to add+    `C:\ghcup\ghc\9.2.4\mingw\bin` to my user `PATH` variable+- Make sure your graphics driver has installed `vulkan-1.dll` in+  `C:/windows/system32` - Install the LunarG Vulkan SDK   - https://vulkan.lunarg.com/sdk/home#windows-  - Remember the installation directory, use in place of `C:/VulkanSDK/1.2.135.0` below+  - Remember the installation directory, use in place of `C:/VulkanSDK/1.3.224.1` below+  - Install the SDL2 library/header (You can run `maintenancetool` in the SDK directory to+    install this later if you forgot)   - We will link against `vulkan-1.lib` from this installation-  - We will use the `glslangValidator` from this installation, make sure it's-    in your `PATH` or otherwise made available to `ghc`-- Install `pkg-config` or `pkg-config-lite` (for the `sdl2` package), perform any one of:-  - Install using chocolatey: `choco install pkgconfiglite`-  - Install from SourceForge: Download from-    [here](https://sourceforge.net/projects/pkgconfiglite/files/) and put the-    binary in your `PATH`-  - Install by following the instructions-    [here](https://stackoverflow.com/questions/1710922/how-to-install-pkg-config-in-windows)-  - Patch SDL2 to not require pkg-config with [this-    patch](https://gist.github.com/anonymous/9d1060281ed7127a54d2)-- Install SDL2 (condensed instructions from-  [here](https://gist.github.com/anonymous/9d1060281ed7127a54d2)):-  - Navigate to <https://www.libsdl.org/download-2.0.php>-  - Download the Mingw64 development library-  - Extract the `x86_64-w64-mingw32` directory somwhere, I installed it as `~/AppData/Roaming/local/SDL2`-  - Copy the `lib/pkgconfig/sdl2.pc` file to `~/AppData/Roaming/local/lib/pkgconfig/sdl2.pc`+  - We will use the `glslangValidator` from this installation.+- Restart your shell to pick up the new `PATH` environment set up by the SDK installer+  The Vulkan SDK installer - Inform Cabal about header and library locations by adding the following to-  `cabal.project.local`, changed accodingly for your install paths for SDL2 and-  the Vulkan SDK.-  +  `cabal.project.local`, changed accodingly for your install path for the Vulkan SDK.+  Also use a patched SDL2 which doens't use pkgconfig (a pain to install on Windows)+     ```     package sdl2-      extra-lib-dirs: C:/Users/ms/AppData/Roaming/local/SDL2/lib/-      extra-include-dirs: C:/Users/ms/AppData/Roaming/local/SDL2/include/SDL2/+        extra-lib-dirs: C:/VulkanSDK/1.3.224.1/lib/+        extra-include-dirs: C:/VulkanSDK/1.3.224.1/Include/SDL2+        flags: -pkgconfig+    source-repository-package+        type: git+        location: https://github.com/expipiplus1/sdl2+        tag: d39453f601a6478875e5a2477010fa66d3d2cd95      package vulkan-      extra-lib-dirs: C:/VulkanSDK/1.2.135.0/lib/+        extra-lib-dirs: C:/VulkanSDK/1.3.224.1/lib/      package vulkan-utils-      extra-include-dirs: C:/VulkanSDK/1.2.135.0/Include/+        extra-include-dirs: C:/VulkanSDK/1.3.224.1/Include/      package VulkanMemoryAllocator-      extra-include-dirs: C:/VulkanSDK/1.2.135.0/Include/+        extra-include-dirs: C:/VulkanSDK/1.3.224.1/Include/++    package vulkan-examples+        extra-prog-path: C:/VulkanSDK/1.3.224.1/bin     ```  - Run `cabal build examples` to build the examples@@ -449,12 +446,11 @@  ```yaml extra-lib-dirs:-- C:/Users/ms/AppData/Roaming/local/SDL2/lib/ - C:/VulkanSDK/1.2.135.0/lib/  extra-include-dirs:-- C:/Users/ms/AppData/Roaming/local/SDL2/include/SDL2/ - C:/VulkanSDK/1.2.135.0/Include/+- C:/VulkanSDK/1.3.224.1/Include/SDL2 ```  ## Examples@@ -464,7 +460,7 @@  ## Current Status -All the core Vulkan 1.0, 1.1, and 1.2 functionality is here as well as all the+All the core Vulkan 1.0, 1.1, 1.2, and 1.3 functionality is here as well as all the extensions (except the video ones).  This is currently a 64 bit only library.
src/Vulkan/CStruct/Extends.hs view
@@ -68,6 +68,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureMotionInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureMotionInstanceNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureSRTMotionInstanceNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (AccelerationStructureTrianglesOpacityMicromapEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureVersionInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (AcquireNextImageInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (AcquireProfilingLockInfoKHR)@@ -125,6 +126,8 @@ import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearRect) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (CoarseSampleLocationNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (CoarseSampleOrderCustomNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (ColorBlendAdvancedEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (ColorBlendEquationEXT) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferAllocateInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferBeginInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (CommandBufferInheritanceConditionalRenderingInfoEXT)@@ -148,6 +151,9 @@ 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_EXT_opacity_micromap (CopyMemoryToMicromapInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapToMemoryInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuModuleCreateInfoNVX)@@ -181,11 +187,17 @@ 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_EXT_device_address_binding_report (DeviceAddressBindingCallbackDataEXT) 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) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (DeviceEventInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultAddressInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultCountsEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultVendorBinaryHeaderVersionOneEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultVendorInfoEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupBindSparseInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (DeviceGroupCommandBufferBeginInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation (DeviceGroupDeviceCreateInfo)@@ -366,6 +378,12 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapBuildInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapBuildSizesInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapTriangleEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapUsageEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapVersionInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawIndexedInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT)@@ -375,6 +393,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (MutableDescriptorTypeListEXT) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset2D) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Offset3D)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowExecuteInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatPropertiesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreatePrivateDataInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE) import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (PerformanceConfigurationAcquireInfoINTEL) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PerformanceCounterDescriptionKHR)@@ -390,6 +413,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)@@ -426,6 +450,8 @@ 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_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalBufferInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo)@@ -433,6 +459,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (PhysicalDeviceExternalSemaphoreInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties)@@ -496,6 +523,10 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)@@ -503,11 +534,13 @@ 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_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_protected_access (PhysicalDevicePipelineProtectedAccessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV) 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)@@ -754,6 +787,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceCapabilities2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceCapabilitiesFullScreenExclusiveEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceCapabilitiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SurfaceCapabilitiesPresentBarrierNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_get_surface_capabilities2 (SurfaceFormat2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_surface (SurfaceFormatKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveInfoEXT)@@ -762,6 +796,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_display_control (SwapchainCounterCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_buffer_collection (SysmemColorSpaceFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_texture_gather_bias_lod (TextureLODGatherFormatPropertiesAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (TilePropertiesQCOM)@@ -906,6 +941,7 @@ type family Extends (a :: [Type] -> Type) (b :: Type) :: Constraint where   Extends AccelerationStructureCreateInfoKHR AccelerationStructureMotionInfoNV = ()   Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureGeometryMotionTrianglesDataNV = ()+  Extends AccelerationStructureGeometryTrianglesDataKHR AccelerationStructureTrianglesOpacityMicromapEXT = ()   Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatPropertiesANDROID = ()   Extends AndroidHardwareBufferPropertiesANDROID AndroidHardwareBufferFormatProperties2ANDROID = ()   Extends AttachmentDescription2 AttachmentDescriptionStencilLayout = ()@@ -934,6 +970,7 @@   Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()   Extends ComputePipelineCreateInfo PipelineCompilerControlCreateInfoAMD = ()   Extends ComputePipelineCreateInfo PipelineRobustnessCreateInfoEXT = ()+  Extends DebugUtilsMessengerCallbackDataEXT DeviceAddressBindingCallbackDataEXT = ()   Extends DescriptorPoolCreateInfo DescriptorPoolInlineUniformBlockCreateInfo = ()   Extends DescriptorPoolCreateInfo MutableDescriptorTypeCreateInfoEXT = ()   Extends DescriptorSetAllocateInfo DescriptorSetVariableDescriptorCountAllocateInfo = ()@@ -1003,6 +1040,7 @@   Extends DeviceCreateInfo PhysicalDeviceTextureCompressionASTCHDRFeatures = ()   Extends DeviceCreateInfo PhysicalDeviceCooperativeMatrixFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceYcbcrImageArraysFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDevicePresentBarrierFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDevicePerformanceQueryFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceCoverageReductionModeFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = ()@@ -1026,6 +1064,7 @@   Extends DeviceCreateInfo PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceExtendedDynamicState3FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = ()   Extends DeviceCreateInfo PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = ()@@ -1050,6 +1089,7 @@   Extends DeviceCreateInfo PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceLegacyDitheringFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDevicePipelineProtectedAccessFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends DeviceCreateInfo PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceProvokingVertexFeaturesEXT = ()@@ -1067,6 +1107,7 @@   Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceOpacityMicromapFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDevicePipelinePropertiesFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = ()   Extends DeviceCreateInfo PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = ()@@ -1076,6 +1117,9 @@   Extends DeviceCreateInfo PhysicalDeviceAmigoProfilingFeaturesSEC = ()   Extends DeviceCreateInfo PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceDepthClampZeroOneFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceAddressBindingReportFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceOpticalFlowFeaturesNV = ()+  Extends DeviceCreateInfo PhysicalDeviceFaultFeaturesEXT = ()   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()   Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()   Extends EventCreateInfo ImportMetalSharedEventInfoEXT = ()@@ -1120,6 +1164,7 @@   Extends ImageCreateInfo ExportMetalObjectCreateInfoEXT = ()   Extends ImageCreateInfo ImportMetalTextureInfoEXT = ()   Extends ImageCreateInfo ImportMetalIOSurfaceInfoEXT = ()+  Extends ImageCreateInfo OpticalFlowImageFormatInfoNV = ()   Extends ImageFormatProperties2 ExternalImageFormatProperties = ()   Extends ImageFormatProperties2 SamplerYcbcrConversionImageFormatProperties = ()   Extends ImageFormatProperties2 TextureLODGatherFormatPropertiesAMD = ()@@ -1159,6 +1204,7 @@   Extends MemoryAllocateInfo ExportMetalObjectCreateInfoEXT = ()   Extends MemoryAllocateInfo ImportMetalBufferInfoEXT = ()   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()+  Extends OpticalFlowSessionCreateInfoNV OpticalFlowSessionCreatePrivateDataInfoNV = ()   Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePrivateDataFeatures = ()@@ -1218,6 +1264,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceTextureCompressionASTCHDRFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCooperativeMatrixFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcrImageArraysFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePresentBarrierFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePerformanceQueryFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceCoverageReductionModeFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = ()@@ -1241,6 +1288,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceBorderColorSwizzleFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicStateFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState2FeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceExtendedDynamicState3FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = ()@@ -1264,6 +1312,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceLegacyDitheringFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDevicePipelineProtectedAccessFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceProvokingVertexFeaturesEXT = ()@@ -1281,6 +1330,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceOpacityMicromapFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDevicePipelinePropertiesFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = ()@@ -1290,12 +1340,16 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceAmigoProfilingFeaturesSEC = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDepthClampZeroOneFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceAddressBindingReportFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceOpticalFlowFeaturesNV = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceFaultFeaturesEXT = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()   Extends PhysicalDeviceImageFormatInfo2 ImageStencilUsageCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageViewImageFormatInfoEXT = ()   Extends PhysicalDeviceImageFormatInfo2 ImageCompressionControlEXT = ()+  Extends PhysicalDeviceImageFormatInfo2 OpticalFlowImageFormatInfoNV = ()   Extends PhysicalDeviceMemoryProperties2 PhysicalDeviceMemoryBudgetPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceMultiDrawPropertiesEXT = ()@@ -1345,6 +1399,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan12Properties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan13Properties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceCustomBorderColorPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceExtendedDynamicState3PropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceRobustness2PropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShadingRatePropertiesKHR = ()@@ -1355,8 +1410,10 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceShaderModuleIdentifierPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceOpacityMicromapPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePipelineRobustnessPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceImageProcessingPropertiesQCOM = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceOpticalFlowPropertiesNV = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()@@ -1448,6 +1505,7 @@   Extends SurfaceCapabilities2KHR SharedPresentSurfaceCapabilitiesKHR = ()   Extends SurfaceCapabilities2KHR SurfaceProtectedCapabilitiesKHR = ()   Extends SurfaceCapabilities2KHR SurfaceCapabilitiesFullScreenExclusiveEXT = ()+  Extends SurfaceCapabilities2KHR SurfaceCapabilitiesPresentBarrierNV = ()   Extends SurfaceFormat2KHR ImageCompressionPropertiesEXT = ()   Extends SwapchainCreateInfoKHR SwapchainCounterCreateInfoEXT = ()   Extends SwapchainCreateInfoKHR DeviceGroupSwapchainCreateInfoKHR = ()@@ -1455,6 +1513,7 @@   Extends SwapchainCreateInfoKHR ImageFormatListCreateInfo = ()   Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends SwapchainCreateInfoKHR SurfaceFullScreenExclusiveWin32InfoEXT = ()+  Extends SwapchainCreateInfoKHR SwapchainPresentBarrierCreateInfoNV = ()   Extends SwapchainCreateInfoKHR ImageCompressionControlEXT = ()   Extends WriteDescriptorSet WriteDescriptorSetInlineUniformBlock = ()   Extends WriteDescriptorSet WriteDescriptorSetAccelerationStructureKHR = ()@@ -1785,6 +1844,9 @@   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+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV -> go @PhysicalDevicePresentBarrierFeaturesNV+  STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV -> go @SurfaceCapabilitiesPresentBarrierNV+  STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV -> go @SwapchainPresentBarrierCreateInfoNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR -> go @PhysicalDevicePerformanceQueryFeaturesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR -> go @PhysicalDevicePerformanceQueryPropertiesKHR   STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR -> go @QueryPoolPerformanceCreateInfoKHR@@ -1832,6 +1894,8 @@   STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR -> go @PipelineLibraryCreateInfoKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicStateFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicState2FeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT -> go @PhysicalDeviceExtendedDynamicState3FeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT -> go @PhysicalDeviceExtendedDynamicState3PropertiesEXT   STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM -> go @RenderPassTransformBeginInfoQCOM   STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM -> go @CopyCommandTransformInfoQCOM   STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM -> go @CommandBufferInheritanceRenderPassTransformInfoQCOM@@ -1873,6 +1937,7 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT -> go @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT   STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT -> go @SubpassResolvePerformanceQueryEXT   STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT -> go @MultisampledRenderToSingleSampledInfoEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT -> go @PhysicalDevicePipelineProtectedAccessFeaturesEXT   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@@ -1920,6 +1985,9 @@   STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT -> go @RenderPassCreationFeedbackCreateInfoEXT   STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT -> go @RenderPassSubpassFeedbackCreateInfoEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT -> go @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT -> go @PhysicalDeviceOpacityMicromapFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT -> go @PhysicalDeviceOpacityMicromapPropertiesEXT+  STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("struct type STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT contains an undiscriminated union (DeviceOrHostAddressConstKHR) and can't be safely peeked") Nothing Nothing   STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT -> go @PhysicalDevicePipelinePropertiesFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD -> go @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD   STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT -> go @ExportMetalObjectCreateInfoEXT@@ -1945,6 +2013,13 @@   STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC -> go @AmigoProfilingSubmitInfoSEC   STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT -> go @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT -> go @PhysicalDeviceDepthClampZeroOneFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT -> go @PhysicalDeviceAddressBindingReportFeaturesEXT+  STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT -> go @DeviceAddressBindingCallbackDataEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV -> go @PhysicalDeviceOpticalFlowFeaturesNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV -> go @PhysicalDeviceOpticalFlowPropertiesNV+  STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV -> go @OpticalFlowImageFormatInfoNV+  STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV -> go @OpticalFlowSessionCreatePrivateDataInfoNV+  STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT -> go @PhysicalDeviceFaultFeaturesEXT   t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing  where   go :: forall e . (Typeable e, FromCStruct e, ToCStruct e, Show e) => IO b@@ -2222,6 +2297,9 @@ {-# complete (::&) :: SurfaceFullScreenExclusiveInfoEXT #-} {-# complete (::&) :: SurfaceFullScreenExclusiveWin32InfoEXT #-} {-# complete (::&) :: SurfaceCapabilitiesFullScreenExclusiveEXT #-}+{-# complete (::&) :: PhysicalDevicePresentBarrierFeaturesNV #-}+{-# complete (::&) :: SurfaceCapabilitiesPresentBarrierNV #-}+{-# complete (::&) :: SwapchainPresentBarrierCreateInfoNV #-} {-# complete (::&) :: PhysicalDevicePerformanceQueryFeaturesKHR #-} {-# complete (::&) :: PhysicalDevicePerformanceQueryPropertiesKHR #-} {-# complete (::&) :: QueryPoolPerformanceCreateInfoKHR #-}@@ -2269,6 +2347,8 @@ {-# complete (::&) :: PipelineLibraryCreateInfoKHR #-} {-# complete (::&) :: PhysicalDeviceExtendedDynamicStateFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceExtendedDynamicState2FeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceExtendedDynamicState3FeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceExtendedDynamicState3PropertiesEXT #-} {-# complete (::&) :: RenderPassTransformBeginInfoQCOM #-} {-# complete (::&) :: CopyCommandTransformInfoQCOM #-} {-# complete (::&) :: CommandBufferInheritanceRenderPassTransformInfoQCOM #-}@@ -2310,6 +2390,7 @@ {-# complete (::&) :: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT #-} {-# complete (::&) :: SubpassResolvePerformanceQueryEXT #-} {-# complete (::&) :: MultisampledRenderToSingleSampledInfoEXT #-}+{-# complete (::&) :: PhysicalDevicePipelineProtectedAccessFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceInheritedViewportScissorFeaturesNV #-} {-# complete (::&) :: CommandBufferInheritanceViewportScissorInfoNV #-} {-# complete (::&) :: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT #-}@@ -2357,6 +2438,9 @@ {-# complete (::&) :: RenderPassCreationFeedbackCreateInfoEXT #-} {-# complete (::&) :: RenderPassSubpassFeedbackCreateInfoEXT #-} {-# complete (::&) :: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceOpacityMicromapFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceOpacityMicromapPropertiesEXT #-}+{-# complete (::&) :: AccelerationStructureTrianglesOpacityMicromapEXT #-} {-# complete (::&) :: PhysicalDevicePipelinePropertiesFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD #-} {-# complete (::&) :: ExportMetalObjectCreateInfoEXT #-}@@ -2382,6 +2466,13 @@ {-# complete (::&) :: AmigoProfilingSubmitInfoSEC #-} {-# complete (::&) :: PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceDepthClampZeroOneFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceAddressBindingReportFeaturesEXT #-}+{-# complete (::&) :: DeviceAddressBindingCallbackDataEXT #-}+{-# complete (::&) :: PhysicalDeviceOpticalFlowFeaturesNV #-}+{-# complete (::&) :: PhysicalDeviceOpticalFlowPropertiesNV #-}+{-# complete (::&) :: OpticalFlowImageFormatInfoNV #-}+{-# complete (::&) :: OpticalFlowSessionCreatePrivateDataInfoNV #-}+{-# complete (::&) :: PhysicalDeviceFaultFeaturesEXT #-}  -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10/AllocationCallbacks.hs view
@@ -85,6 +85,8 @@ -- 'Vulkan.Core10.DeviceInitialization.createInstance', -- 'Vulkan.Extensions.VK_MVK_macos_surface.createMacOSSurfaceMVK', -- 'Vulkan.Extensions.VK_EXT_metal_surface.createMetalSurfaceEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.createMicromapEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.createOpticalFlowSessionNV', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout', -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',@@ -134,6 +136,8 @@ -- 'Vulkan.Core10.ImageView.destroyImageView', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.destroyIndirectCommandsLayoutNV', -- 'Vulkan.Core10.DeviceInitialization.destroyInstance',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.destroyMicromapEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.destroyOpticalFlowSessionNV', -- 'Vulkan.Core10.Pipeline.destroyPipeline', -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',@@ -217,7 +221,12 @@     pfnInternalAllocation <- peek @PFN_vkInternalAllocationNotification ((p `plusPtr` 32 :: Ptr PFN_vkInternalAllocationNotification))     pfnInternalFree <- peek @PFN_vkInternalFreeNotification ((p `plusPtr` 40 :: Ptr PFN_vkInternalFreeNotification))     pure $ AllocationCallbacks-             pUserData pfnAllocation pfnReallocation pfnFree pfnInternalAllocation pfnInternalFree+             pUserData+             pfnAllocation+             pfnReallocation+             pfnFree+             pfnInternalAllocation+             pfnInternalFree  instance Storable AllocationCallbacks where   sizeOf ~_ = 48
src/Vulkan/Core10/Buffer.hs view
@@ -177,7 +177,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPBuffer <- ContT $ bracket (callocBytes @Buffer 8) free-  r <- lift $ traceAroundEvent "vkCreateBuffer" (vkCreateBuffer' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPBuffer))+  r <- lift $ traceAroundEvent "vkCreateBuffer" (vkCreateBuffer'+                                                   (deviceHandle (device))+                                                   (forgetExtensions pCreateInfo)+                                                   pAllocator+                                                   (pPBuffer))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pBuffer <- lift $ peek @Buffer pPBuffer   pure $ (pBuffer)@@ -264,7 +268,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyBuffer" (vkDestroyBuffer' (deviceHandle (device)) (buffer) pAllocator)+  lift $ traceAroundEvent "vkDestroyBuffer" (vkDestroyBuffer'+                                               (deviceHandle (device))+                                               (buffer)+                                               pAllocator)   pure $ ()  @@ -480,7 +487,8 @@     | Just Refl <- eqT @e @DedicatedAllocationBufferCreateInfoNV = Just f     | otherwise = Nothing -instance (Extendss BufferCreateInfo es, PokeChain es) => ToCStruct (BufferCreateInfo es) where+instance ( Extendss BufferCreateInfo es+         , PokeChain es ) => ToCStruct (BufferCreateInfo es) where   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BufferCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_CREATE_INFO)@@ -506,7 +514,8 @@     lift $ poke ((p `plusPtr` 36 :: Ptr SharingMode)) (zero)     lift $ f -instance (Extendss BufferCreateInfo es, PeekChain es) => FromCStruct (BufferCreateInfo es) where+instance ( Extendss BufferCreateInfo es+         , PeekChain es ) => FromCStruct (BufferCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/Buffer.hs-boot view
@@ -12,8 +12,10 @@ type role BufferCreateInfo nominal data BufferCreateInfo (es :: [Type]) -instance (Extendss BufferCreateInfo es, PokeChain es) => ToCStruct (BufferCreateInfo es)+instance ( Extendss BufferCreateInfo es+         , PokeChain es ) => ToCStruct (BufferCreateInfo es) instance Show (Chain es) => Show (BufferCreateInfo es) -instance (Extendss BufferCreateInfo es, PeekChain es) => FromCStruct (BufferCreateInfo es)+instance ( Extendss BufferCreateInfo es+         , PeekChain es ) => FromCStruct (BufferCreateInfo es) 
src/Vulkan/Core10/BufferView.hs view
@@ -138,7 +138,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPView <- ContT $ bracket (callocBytes @BufferView 8) free-  r <- lift $ traceAroundEvent "vkCreateBufferView" (vkCreateBufferView' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPView))+  r <- lift $ traceAroundEvent "vkCreateBufferView" (vkCreateBufferView'+                                                       (deviceHandle (device))+                                                       (forgetExtensions pCreateInfo)+                                                       pAllocator+                                                       (pPView))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pView <- lift $ peek @BufferView pPView   pure $ (pView)@@ -226,7 +230,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyBufferView" (vkDestroyBufferView' (deviceHandle (device)) (bufferView) pAllocator)+  lift $ traceAroundEvent "vkDestroyBufferView" (vkDestroyBufferView'+                                                   (deviceHandle (device))+                                                   (bufferView)+                                                   pAllocator)   pure $ ()  @@ -408,7 +415,8 @@     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss BufferViewCreateInfo es, PokeChain es) => ToCStruct (BufferViewCreateInfo es) where+instance ( Extendss BufferViewCreateInfo es+         , PokeChain es ) => ToCStruct (BufferViewCreateInfo es) where   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BufferViewCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)@@ -432,7 +440,8 @@     lift $ poke ((p `plusPtr` 48 :: Ptr DeviceSize)) (zero)     lift $ f -instance (Extendss BufferViewCreateInfo es, PeekChain es) => FromCStruct (BufferViewCreateInfo es) where+instance ( Extendss BufferViewCreateInfo es+         , PeekChain es ) => FromCStruct (BufferViewCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/BufferView.hs-boot view
@@ -12,8 +12,10 @@ type role BufferViewCreateInfo nominal data BufferViewCreateInfo (es :: [Type]) -instance (Extendss BufferViewCreateInfo es, PokeChain es) => ToCStruct (BufferViewCreateInfo es)+instance ( Extendss BufferViewCreateInfo es+         , PokeChain es ) => ToCStruct (BufferViewCreateInfo es) instance Show (Chain es) => Show (BufferViewCreateInfo es) -instance (Extendss BufferViewCreateInfo es, PeekChain es) => FromCStruct (BufferViewCreateInfo es)+instance ( Extendss BufferViewCreateInfo es+         , PeekChain es ) => FromCStruct (BufferViewCreateInfo es) 
src/Vulkan/Core10/CommandBuffer.hs view
@@ -206,7 +206,10 @@   let vkAllocateCommandBuffers' = mkVkAllocateCommandBuffers vkAllocateCommandBuffersPtr   pAllocateInfo <- ContT $ withCStruct (allocateInfo)   pPCommandBuffers <- ContT $ bracket (callocBytes @(Ptr CommandBuffer_T) ((fromIntegral $ commandBufferCount ((allocateInfo) :: CommandBufferAllocateInfo)) * 8)) free-  r <- lift $ traceAroundEvent "vkAllocateCommandBuffers" (vkAllocateCommandBuffers' (deviceHandle (device)) pAllocateInfo (pPCommandBuffers))+  r <- lift $ traceAroundEvent "vkAllocateCommandBuffers" (vkAllocateCommandBuffers'+                                                             (deviceHandle (device))+                                                             pAllocateInfo+                                                             (pPCommandBuffers))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCommandBuffers <- lift $ generateM (fromIntegral $ commandBufferCount ((allocateInfo) :: CommandBufferAllocateInfo)) (\i -> do     pCommandBuffersElem <- peek @(Ptr CommandBuffer_T) ((pPCommandBuffers `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CommandBuffer_T)))@@ -224,7 +227,9 @@ withCommandBuffers :: forall io r . MonadIO io => Device -> CommandBufferAllocateInfo -> (io (Vector CommandBuffer) -> (Vector CommandBuffer -> io ()) -> r) -> r withCommandBuffers device pAllocateInfo b =   b (allocateCommandBuffers device pAllocateInfo)-    (\(o0) -> freeCommandBuffers device (commandPool (pAllocateInfo :: CommandBufferAllocateInfo)) o0)+    (\(o0) -> freeCommandBuffers device+                                   (commandPool (pAllocateInfo :: CommandBufferAllocateInfo))+                                   o0)   foreign import ccall@@ -302,7 +307,11 @@   let vkFreeCommandBuffers' = mkVkFreeCommandBuffers vkFreeCommandBuffersPtr   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 "vkFreeCommandBuffers" (vkFreeCommandBuffers' (deviceHandle (device)) (commandPool) ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32)) (pPCommandBuffers))+  lift $ traceAroundEvent "vkFreeCommandBuffers" (vkFreeCommandBuffers'+                                                    (deviceHandle (device))+                                                    (commandPool)+                                                    ((fromIntegral (Data.Vector.length $ (commandBuffers)) :: Word32))+                                                    (pPCommandBuffers))   pure $ ()  @@ -382,7 +391,9 @@ -- <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', 'CommandBufferBeginInfo' beginCommandBuffer :: forall a io-                    . (Extendss CommandBufferBeginInfo a, PokeChain a, MonadIO io)+                    . ( Extendss CommandBufferBeginInfo a+                      , PokeChain a+                      , MonadIO io )                    => -- | @commandBuffer@ is the handle of the command buffer which is to be put                       -- in the recording state.                       CommandBuffer@@ -397,7 +408,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBeginCommandBuffer is null" Nothing Nothing   let vkBeginCommandBuffer' = mkVkBeginCommandBuffer vkBeginCommandBufferPtr   pBeginInfo <- ContT $ withCStruct (beginInfo)-  r <- lift $ traceAroundEvent "vkBeginCommandBuffer" (vkBeginCommandBuffer' (commandBufferHandle (commandBuffer)) (forgetExtensions pBeginInfo))+  r <- lift $ traceAroundEvent "vkBeginCommandBuffer" (vkBeginCommandBuffer'+                                                         (commandBufferHandle (commandBuffer))+                                                         (forgetExtensions pBeginInfo))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  -- | This function will call the supplied action between calls to@@ -407,7 +420,8 @@ -- by the inner action. useCommandBuffer :: forall a io r . (Extendss CommandBufferBeginInfo a, PokeChain a, MonadIO io) => CommandBuffer -> CommandBufferBeginInfo a -> io r -> io r useCommandBuffer commandBuffer pBeginInfo a =-  (beginCommandBuffer commandBuffer pBeginInfo) *> a <* (endCommandBuffer commandBuffer)+  (beginCommandBuffer commandBuffer+                        pBeginInfo) *> a <* (endCommandBuffer commandBuffer)   foreign import ccall@@ -505,7 +519,8 @@   unless (vkEndCommandBufferPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEndCommandBuffer is null" Nothing Nothing   let vkEndCommandBuffer' = mkVkEndCommandBuffer vkEndCommandBufferPtr-  r <- traceAroundEvent "vkEndCommandBuffer" (vkEndCommandBuffer' (commandBufferHandle (commandBuffer)))+  r <- traceAroundEvent "vkEndCommandBuffer" (vkEndCommandBuffer'+                                                (commandBufferHandle (commandBuffer)))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -585,7 +600,9 @@   unless (vkResetCommandBufferPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetCommandBuffer is null" Nothing Nothing   let vkResetCommandBuffer' = mkVkResetCommandBuffer vkResetCommandBufferPtr-  r <- traceAroundEvent "vkResetCommandBuffer" (vkResetCommandBuffer' (commandBufferHandle (commandBuffer)) (flags))+  r <- traceAroundEvent "vkResetCommandBuffer" (vkResetCommandBuffer'+                                                  (commandBufferHandle (commandBuffer))+                                                  (flags))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -809,7 +826,8 @@     | Just Refl <- eqT @e @CommandBufferInheritanceConditionalRenderingInfoEXT = Just f     | otherwise = Nothing -instance (Extendss CommandBufferInheritanceInfo es, PokeChain es) => ToCStruct (CommandBufferInheritanceInfo es) where+instance ( Extendss CommandBufferInheritanceInfo es+         , PokeChain es ) => ToCStruct (CommandBufferInheritanceInfo es) where   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)   pokeCStruct p CommandBufferInheritanceInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO)@@ -832,7 +850,8 @@     lift $ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))     lift $ f -instance (Extendss CommandBufferInheritanceInfo es, PeekChain es) => FromCStruct (CommandBufferInheritanceInfo es) where+instance ( Extendss CommandBufferInheritanceInfo es+         , PeekChain es ) => FromCStruct (CommandBufferInheritanceInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -843,7 +862,13 @@     queryFlags <- peek @QueryControlFlags ((p `plusPtr` 44 :: Ptr QueryControlFlags))     pipelineStatistics <- peek @QueryPipelineStatisticFlags ((p `plusPtr` 48 :: Ptr QueryPipelineStatisticFlags))     pure $ CommandBufferInheritanceInfo-             next renderPass subpass framebuffer (bool32ToBool occlusionQueryEnable) queryFlags pipelineStatistics+             next+             renderPass+             subpass+             framebuffer+             (bool32ToBool occlusionQueryEnable)+             queryFlags+             pipelineStatistics  instance es ~ '[] => Zero (CommandBufferInheritanceInfo es) where   zero = CommandBufferInheritanceInfo@@ -951,7 +976,8 @@     | Just Refl <- eqT @e @DeviceGroupCommandBufferBeginInfo = Just f     | otherwise = Nothing -instance (Extendss CommandBufferBeginInfo es, PokeChain es) => ToCStruct (CommandBufferBeginInfo es) where+instance ( Extendss CommandBufferBeginInfo es+         , PokeChain es ) => ToCStruct (CommandBufferBeginInfo es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p CommandBufferBeginInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)@@ -971,7 +997,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss CommandBufferBeginInfo es, PeekChain es) => FromCStruct (CommandBufferBeginInfo es) where+instance ( Extendss CommandBufferBeginInfo es+         , PeekChain es ) => FromCStruct (CommandBufferBeginInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/CommandBuffer.hs-boot view
@@ -23,17 +23,21 @@ type role CommandBufferBeginInfo nominal data CommandBufferBeginInfo (es :: [Type]) -instance (Extendss CommandBufferBeginInfo es, PokeChain es) => ToCStruct (CommandBufferBeginInfo es)+instance ( Extendss CommandBufferBeginInfo es+         , PokeChain es ) => ToCStruct (CommandBufferBeginInfo es) instance Show (Chain es) => Show (CommandBufferBeginInfo es) -instance (Extendss CommandBufferBeginInfo es, PeekChain es) => FromCStruct (CommandBufferBeginInfo es)+instance ( Extendss CommandBufferBeginInfo es+         , PeekChain es ) => FromCStruct (CommandBufferBeginInfo es)   type role CommandBufferInheritanceInfo nominal data CommandBufferInheritanceInfo (es :: [Type]) -instance (Extendss CommandBufferInheritanceInfo es, PokeChain es) => ToCStruct (CommandBufferInheritanceInfo es)+instance ( Extendss CommandBufferInheritanceInfo es+         , PokeChain es ) => ToCStruct (CommandBufferInheritanceInfo es) instance Show (Chain es) => Show (CommandBufferInheritanceInfo es) -instance (Extendss CommandBufferInheritanceInfo es, PeekChain es) => FromCStruct (CommandBufferInheritanceInfo es)+instance ( Extendss CommandBufferInheritanceInfo es+         , PeekChain es ) => FromCStruct (CommandBufferInheritanceInfo es) 
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -338,14414 +338,16206 @@ --     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_RAY_TRACING_KHR', --     @commandBuffer@ /must/ not be a protected command buffer ----- -   #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://registry.khronos.org/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------ -   #VUID-vkCmdBindPipeline-pipeline-06856# 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 the @pNext@ chain of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'---     includes a---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'---     structure with @multisampledRenderToSingleSampledEnable@ equal to---     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of---     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pMultisampleState@::@rasterizationSamples@---     /must/ be equal to---     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@.------ -   #VUID-vkCmdBindPipeline-pipelineBindPoint-06653# If---     @pipelineBindPoint@ is---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',---     @pipeline@ /must/ have been created without---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'------ == 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>---     feature is not enabled, @firstViewport@ /must/ be @0@------ -   #VUID-vkCmdSetViewport-viewportCount-01225# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>---     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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>---     feature is not enabled, @firstScissor@ /must/ be @0@------ -   #VUID-vkCmdSetScissor-scissorCount-00594# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>---     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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>---     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------ -   #VUID-vkCmdSetLineWidth-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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.PipelineRasterizationStateCreateInfo'::@depthBiasConstantFactor@,--- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the--- currently active pipeline.------ == Valid Usage------ -   #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>---     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------ -   #VUID-vkCmdSetDepthBias-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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------ -   #VUID-vkCmdSetBlendConstants-videocoding# This command /must/ only---     be called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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://registry.khronos.org/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------ -   #VUID-vkCmdSetDepthBounds-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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.StencilOpState'::@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------ -   #VUID-vkCmdSetStencilCompareMask-videocoding# This command /must/---     only be called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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------ -   #VUID-vkCmdSetStencilWriteMask-videocoding# This command /must/ only---     be called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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------ -   #VUID-vkCmdSetStencilReference-videocoding# This command /must/ only---     be called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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' binds descriptor sets--- @pDescriptorSets@[0..@descriptorSetCount@-1] to set numbers--- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>--- set by @pipelineBindPoint@. 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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>--- with that pipeline type, as defined in the--- <https://registry.khronos.org/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---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dynamic-effective-offset effective offset>---     and the range of the binding /must/ be less than or equal to the---     size of the buffer------ -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715# For each---     dynamic uniform or storage buffer binding in @pDescriptorSets@, if---     the range was set with 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then---     @pDynamicOffsets@ which corresponds to the descriptor binding /must/---     be 0------ -   #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_EXT'---     flag set------ -   #VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754# If---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>---     is not enabled, each element of @pDescriptorSets@ /must/ be a valid---     'Vulkan.Core10.Handles.DescriptorSet'------ == 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 or---     'Vulkan.Core10.APIConstants.NULL_HANDLE'---     '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-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#---     @descriptorSetCount@ /must/ be greater than @0@------ -   #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,---     @layout@, and the elements of @pDescriptorSets@ 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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_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://registry.khronos.org/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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDraw-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDraw-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-06550# If the 'Vulkan.Core10.Handles.Pipeline'---     object bound to the pipeline bind point used by this command---     accesses a 'Vulkan.Core10.Handles.Sampler' or---     'Vulkan.Core10.Handles.ImageView' object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDraw-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #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-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command---     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ not have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDraw-None-07288# Any shader invocation executed by this---     command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #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-06537# Memory backing image subresources used---     as attachments in the current render pass /must/ not be written in---     any way other than as an attachment by this command------ -   #VUID-vkCmdDraw-None-06538# If any recorded command in the current---     subpass will write to an image subresource as an attachment, this---     command /must/ not read from the memory backing that image---     subresource in any other way than as an attachment------ -   #VUID-vkCmdDraw-None-06539# If any recorded command in the current---     subpass will read from an image subresource used as an attachment in---     any way other than as an attachment, this command /must/ not write---     to that image subresource as an attachment------ -   #VUID-vkCmdDraw-None-06886# If the current render pass instance uses---     a depth\/stencil attachment with a read-only layout for the depth---     aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDraw-None-06887# If the current render pass instance uses---     a depth\/stencil attachment with a read-only layout for the stencil---     aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #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-None-06666# If the bound graphics pipeline state was---     created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284# If---     rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature 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-attachmentCount-06667# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDraw-attachmentCount-06815# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #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->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->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->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->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->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->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->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->imageView@------ -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285# 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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-multisampledRenderToSingleSampled-07286# 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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287# 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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709# If---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDraw-stage-07073# If the currently bound pipeline was---     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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #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_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ == 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------ -   #VUID-vkCmdDraw-videocoding# This command /must/ only be called---     outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexed-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawIndexed-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #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-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any---     command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawIndexed-None-07288# Any shader invocation executed by---     this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #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-06537# Memory backing image subresources---     used as attachments in the current render pass /must/ not be written---     in any way other than as an attachment by this command------ -   #VUID-vkCmdDrawIndexed-None-06538# If any recorded command in the---     current subpass will write to an image subresource as an attachment,---     this command /must/ not read from the memory backing that image---     subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawIndexed-None-06539# If any recorded command in the---     current subpass will read from an image subresource used as an---     attachment in any way other than as an attachment, this command---     /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawIndexed-None-06886# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawIndexed-None-06887# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #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-None-06666# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284# If---     rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature 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-attachmentCount-06667# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexed-attachmentCount-06815# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #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->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->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->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->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->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->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->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->imageView@------ -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285# 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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-multisampledRenderToSingleSampled-07286# 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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287# 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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawIndexed-stage-07073# If the currently bound pipeline---     was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #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_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound------ -   #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------ -   #VUID-vkCmdDrawIndexed-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndirect-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawIndirect-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #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-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any---     command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawIndirect-None-07288# Any shader invocation executed---     by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #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-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawIndirect-None-06538# If any recorded command in the---     current subpass will write to an image subresource as an attachment,---     this command /must/ not read from the memory backing that image---     subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawIndirect-None-06539# If any recorded command in the---     current subpass will read from an image subresource used as an---     attachment in any way other than as an attachment, this command---     /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawIndirect-None-06886# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawIndirect-None-06887# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #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-None-06666# If the bound graphics pipeline---     state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284# If---     rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature 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-attachmentCount-06667# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndirect-attachmentCount-06815# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #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->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->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->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->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->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->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->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->imageView@------ -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285# 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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-multisampledRenderToSingleSampled-07286# 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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287# 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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawIndirect-stage-07073# If the currently bound pipeline---     was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #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_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #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 multiDrawIndirect>---     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-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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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-uniformBuffers-06935# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a uniform buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a storage buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #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-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If---     any command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawIndexedIndirect-None-07288# Any shader invocation---     executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #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-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawIndexedIndirect-None-06538# If any recorded command---     in the current subpass will write to an image subresource as an---     attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawIndexedIndirect-None-06539# If any recorded command---     in the current subpass will read from an image subresource used as---     an attachment in any way other than as an attachment, this command---     /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawIndexedIndirect-None-06886# If the current render---     pass instance uses a depth\/stencil attachment with a read-only---     layout for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawIndexedIndirect-None-06887# If the current render---     pass instance uses a depth\/stencil attachment with a read-only---     layout for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #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-None-06666# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature 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-attachmentCount-06667# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawIndexedIndirect-attachmentCount-06815# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #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->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->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->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->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->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->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->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->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawIndexedIndirect-stage-07073# If the currently bound---     pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #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_EXT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'------ -   #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 multiDrawIndirect>---     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-None-07312# An index buffer /must/ be---     bound------ -   #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-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-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDispatch-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatch-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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-uniformBuffers-06935# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a uniform buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a storage buffer, and that stage---     was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDispatch-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #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-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command---     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ not have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDispatch-None-07288# Any shader invocation executed by---     this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #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------ -   #VUID-vkCmdDispatch-videocoding# This command /must/ only be called---     outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |--- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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-uniformBuffers-06935# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a uniform buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of---     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline---     bind point used by this command accesses a storage buffer, and that---     stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #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-OpImageWeightedSampleQCOM-06971# If---     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972# If---     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'---     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974# If---     @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975# If---     @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976# If---     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If---     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any---     command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDispatchIndirect-None-07288# Any shader invocation---     executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |--- | 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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.------ If either @srcImage@ or @dstImage@ has a--- <https://registry.khronos.org/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://registry.khronos.org/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.------ If the format of the destination image has a different--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent>--- than the source image (e.g. one is a compressed format), the offset and--- extent for each of the regions specified is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility scaled according to the block extents of each format>--- to match in size.------ '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-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-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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibility size-compatible>------ -   #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# If @srcImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then 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# If @dstImage@ is of type---     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then 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-pRegions-07278# For each element of @pRegions@,---     @srcOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-pRegions-07279# For each element of @pRegions@,---     @srcOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-pRegions-07280# For each element of @pRegions@,---     @srcOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-pRegions-07281# For each element of @pRegions@,---     @dstOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-pRegions-07282# For each element of @pRegions@,---     @dstOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-pRegions-07283# For each element of @pRegions@,---     @dstOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-srcImage-01728# For each element of @pRegions@,---     if the sum of @srcOffset.x@ and @extent.width@ does not equal the---     width of the the subresource specified by @srcSubresource@,---     @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01729# For each element of @pRegions@,---     if the sum of @srcOffset.y@ and @extent.height@ does not equal the---     height of the the subresource specified by @srcSubresource@,---     @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-srcImage-01730# For each element of @pRegions@,---     if the sum of @srcOffset.z@ and @extent.depth@ does not equal the---     depth of the the subresource specified by @srcSubresource@,---     @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImage-dstImage-01732# For each element of @pRegions@,---     if the sum of @dstOffset.x@ and @extent.width@ does not equal the---     width of the the subresource specified by @dstSubresource@,---     @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-01733# For each element of @pRegions@,---     if the sum of @dstOffset.y@ and @extent.height@ does not equal the---     height of the the subresource specified by @dstSubresource@,---     @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-dstImage-01734# For each element of @pRegions@,---     if the sum of @dstOffset.z@ and @extent.depth@ does not equal the---     depth of the the subresource specified by @dstSubresource@,---     @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any---     element of @pRegions@ includes any flag other than---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---     or @srcImage@ was not created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     /must/ have been included in the---     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create---     @srcImage@------ -   #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any---     element of @pRegions@ includes any flag other than---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'---     or @dstImage@ was not created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo 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---     @dstImage@------ -   #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any---     element of @pRegions@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @srcImage@ was created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     /must/ have been included in the---     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@---     used to create @srcImage@------ -   #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any---     element of @pRegions@ includes---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',---     and @dstImage@ was created with---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo 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 @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-videocoding# This command /must/ only be called---     outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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, scaled 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is---     'Vulkan.Core10.Enums.Filter.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-videocoding# This command /must/ only be called---     outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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# For each element---     of @pRegions@, @bufferRowLength@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# For each---     element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-07273# For each element of---     @pRegions@, @bufferOffset@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-07274# For each element of---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-07275# For each element of---     @pRegions@, @imageOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-pRegions-07276# For each element of---     @pRegions@, @imageOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageExtent-00207# For each element of---     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does---     not equal the width of the the subresource specified by---     @srcSubresource@, @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageExtent-00208# For each element of---     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does---     not equal the height of the the subresource specified by---     @srcSubresource@, @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@------ -   #VUID-vkCmdCopyBufferToImage-imageExtent-00209# For each element of---     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does---     not equal the depth of the the subresource specified by---     @srcSubresource@, @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' 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-07277# For each element of---     @pRegions@, @bufferRowLength@ divided by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent 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-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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# For each element---     of @pRegions@, @bufferRowLength@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# For each---     element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of---     the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-07273# For each element of---     @pRegions@, @bufferOffset@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-07274# For each element of---     @pRegions@, @imageOffset.x@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-07275# For each element of---     @pRegions@, @imageOffset.y@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-pRegions-07276# For each element of---     @pRegions@, @imageOffset.z@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# For each element of---     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does---     not equal the width of the the subresource specified by---     @srcSubresource@, @extent.width@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# For each element of---     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does---     not equal the height of the the subresource specified by---     @srcSubresource@, @extent.height@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>---     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@------ -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# For each element of---     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does---     not equal the depth of the the subresource specified by---     @srcSubresource@, @extent.depth@ /must/ be a multiple of the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>---     of the 'Vulkan.Core10.Enums.Format.Format' 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-07277# For each element of---     @pRegions@, @bufferRowLength@ divided by the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent 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-videocoding# This command /must/ only---     be called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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 a “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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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 a “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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/---     only be called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,--- clears follow the--- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,--- 'cmdClearAttachments' is not a transfer command. It performs its--- operations in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.--- For color attachments, the operations are executed as color attachment--- writes, by the--- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'--- stage. For depth\/stencil attachments, the operations are executed as--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>--- and--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil 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.------ If any attachment’s @aspectMask@ to be cleared is not backed by an image--- view, the clear has no effect on that aspect.------ == Valid Usage------ -   #VUID-vkCmdClearAttachments-pAttachments-07270# For each element of---     @pAttachments@, the corresponding attachment in the current render---     pass instance /must/ either not be backed by an image view, or---     contain each of the aspects specified in @aspectMask@------ -   #VUID-vkCmdClearAttachments-aspectMask-07271# If the @aspectMask@---     member of any element of @pAttachments@ contains---     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',---     the @colorAttachment@ /must/ be a valid color attachment index in---     the current render pass instance------ -   #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-06937# The layers specified by---     each element of @pRects@ /must/ be contained within every attachment---     that @pAttachments@ refers to, i.e. for each element of @pRects@,---     'ClearRect'::@baseArrayLayer@---     'ClearRect'::@layerCount@ /must/ be less than or equal to the number---     of layers rendered to in the current render pass instance------ -   #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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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.-                       ("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@------ -   #VUID-vkCmdResolveImage-srcImage-06762# @srcImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'---     usage flag------ -   #VUID-vkCmdResolveImage-srcImage-06763# 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-vkCmdResolveImage-dstImage-06764# @dstImage@ /must/ have been---     created with---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'---     usage flag------ -   #VUID-vkCmdResolveImage-dstImage-06765# 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'------ == 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdSetEvent-stageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdSetEvent-shadingRateImage-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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://registry.khronos.org/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, compute, decode, or encode---     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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |--- | 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.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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>-               -- used to determine the first-               -- <https://registry.khronos.org/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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdResetEvent-stageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdResetEvent-shadingRateImage-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @stageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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://registry.khronos.org/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, compute, decode, or encode---     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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |--- | 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.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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>--- or--- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>--- are included in the first synchronization scope, if the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>--- pipeline stage in their @stageMask@ parameter is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>--- than or equal to the--- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-shadingRateImage-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdWaitEvents-shadingRateImage-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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://registry.khronos.org/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://registry.khronos.org/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-srcStageMask-07308# If 'cmdWaitEvents' is---     being called inside a render pass instance, @srcStageMask@ /must/---     not include---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'------ -   #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, compute, decode, or encode---     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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |--- | 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.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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur later in--- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>--- specified by @dstStageMask@.------ The first--- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>--- pipeline stages is--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>--- - otherwise it is--- <https://registry.khronos.org/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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-shadingRateImage-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @srcStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>---     feature is not enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdPipelineBarrier-shadingRateImage-07318# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @dstStageMask@ /must/ not contain---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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://registry.khronos.org/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://registry.khronos.org/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, compute, decode,---     or encode 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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Synchronization                                                                                                                        |--- | 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.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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The operation of this command happens after the first scope and happens--- before the second scope.------ == 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-06741# The @queryType@ used to---     create @queryPool@ /must/ not be---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'---     or---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_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 occlusionQueryPrecise>---     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-queryType-04862# If the @queryType@ used to---     create @queryPool@ was---     @VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR@ the---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>------ -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been---     created with a @queryType@ that differs from that of any queries---     that are---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>---     within @commandBuffer@------ -   #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #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-queryType-06687# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to---     create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     then---     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>---     /must/ be enabled------ -   #VUID-vkCmdBeginQuery-queryPool-07289# If @queryPool@ was created---     with a @queryType@ of---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     then the---     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@queueFamilyIndex@---     @queryPool@ was created with /must/ equal the queue family index of---     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | 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',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',--- 'cmdEndQuery',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'-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------ The command completes the query in @queryPool@ identified by @query@,--- and marks it as available.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes only the operation of this command.------ Calling 'cmdEndQuery' is equivalent to calling--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with--- the @index@ parameter set to zero.------ == Valid Usage------ -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command---     /must/ be---     <https://registry.khronos.org/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------ -   [[VUID-{refpage}-None-07007]] If called within a subpass of a render---     pass instance, the corresponding 'cmdBeginQuery'* command /must/---     have been called previously within the same subpass------ -   [[VUID-{refpage}-None-07008]] If called outside of a render pass---     instance, the corresponding 'cmdBeginQuery'* command /must/ have---     been called outside of 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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | 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', 'cmdBeginQuery',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'-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.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @firstQuery@ and @queryCount@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @firstQuery@ and @queryCount@ that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The operation of this command happens after the first scope and happens--- before the second scope.------ 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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------ When 'cmdWriteTimestamp' 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands that occur earlier in--- <https://registry.khronos.org/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 @pipelineStage@.------ The second--- <https://registry.khronos.org/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--- immediately after @stage@ has completed, 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 geometryShader>---     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 tessellationShader>---     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 conditionalRendering>---     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 fragmentDensityMap>---     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 transformFeedback>---     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 meshShader>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>---     feature is not enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'------ -   #VUID-vkCmdWriteTimestamp-shadingRateImage-07314# If neither the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>---     are enabled, @pipelineStage@ /must/ not be---     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'------ -   #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'------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Action                                                                                                                                 |--- | 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------ Any results written for a query are written according to--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.------ Results for any query in @queryPool@ identified by @firstQuery@ and--- @queryCount@ that is available are copied to @dstBuffer@.------ If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'--- is set, results for all queries in @queryPool@ identified by--- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an--- extra availability value written directly after the results of each--- query and interpreted as an unsigned integer. A value of zero indicates--- that the results are not yet available, otherwise the query is complete--- and results are available.------ If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries--- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to--- @dstBuffer@, along with an extra status value written directly after the--- results of each query and interpreted as a signed integer. A value of--- zero indicates that the results are not yet available. Positive values--- indicate that the operations within the query completed successfully,--- and the query results are valid. Negative values indicate that the--- operations within the query completed unsuccessfully.------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>--- defines specific meaning for values returned here, though--- implementations are free to return other values.------ Results for any available query written by this command are final and--- represent the final result of the query. If--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is--- set, then for any query that is unavailable, an intermediate result--- between zero and the final result value is written for that query.--- Otherwise, any result written by this command is undefined.------ If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,--- results and availability or status values for all queries are written as--- an array of 64-bit values. If the @queryPool@ was created with--- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',--- results for each query are written as an array of the type indicated by--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@--- for the counter being queried. Otherwise, results and availability or--- status values are written as an array of 32-bit values. If an unsigned--- integer query’s value overflows the result type, the value /may/ either--- wrap or saturate. If a signed integer query’s value overflows the result--- type, the value is undefined. If a floating point query’s value is not--- representable as the result type, the value is undefined.------ This command defines an execution dependency between other query--- commands that reference the same query.------ The first--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur earlier in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.--- If @flags@ does not include--- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',--- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.------ The second--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>--- includes all commands which reference the queries in @queryPool@--- indicated by @query@ that occur later in--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.------ The operation of this command happens after the first scope and happens--- before the second scope.------ '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://registry.khronos.org/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'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@---     used to create @queryPool@ was---     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, @flags@ /must/ include---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@------ -   #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, it /must/ not include---     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'------ -   #VUID-vkCmdCopyQueryPoolResults-queryType-06903# If the @queryType@---     used to create @queryPool@ was---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',---     @flags@ /must/ not contain @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@------ == 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-videocoding# This command /must/---     only be called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-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://registry.khronos.org/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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_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------ -   #VUID-vkCmdBeginRenderPass-initialLayout-07000# 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_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     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 either the---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'---     or---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'---     and either the---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'---     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'---     usage bits.------ -   #VUID-vkCmdBeginRenderPass-initialLayout-07001# 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_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'---     then the corresponding attachment image view of the framebuffer---     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/---     have been created with a @usage@ value the---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'---     usage bit.------ == 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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'------ -   #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called---     within a subpass of the render pass, the corresponding---     'cmdEndQuery'* /must/ have been called subsequently within the same---     subpass.------ == 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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,--- that primary command buffer becomes--- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>---     feature is not enabled, @commandBuffer@ /must/ not have any queries---     <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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-commandBuffer-06533# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in @commandBuffer@ in the current subpass---     will write to an image subresource as an attachment, commands---     recorded in elements of @pCommandBuffers@ /must/ not read from the---     memory backing that image subresource in any other way------ -   #VUID-vkCmdExecuteCommands-commandBuffer-06534# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in @commandBuffer@ in the current subpass---     will read from an image subresource used as an attachment in any way---     other than as an attachment, commands recorded in elements of---     @pCommandBuffers@ /must/ not write to that image subresource as an---     attachment------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in a given element of @pCommandBuffers@---     will write to an image subresource as an attachment, commands---     recorded in elements of @pCommandBuffers@ at a higher index /must/---     not read from the memory backing that image subresource in any other---     way------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If---     'cmdExecuteCommands' is being called within a render pass instance---     and any recorded command in a given element of @pCommandBuffers@---     will read from an image subresource used as an attachment in any way---     other than as an attachment, commands recorded in elements of---     @pCommandBuffers@ at a higher index /must/ not write to that image---     subresource as an attachment------ -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If---     @pCommandBuffers@ contains any---     <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>---     limit is not supported, and any element of @pCommandBuffers@---     contains any---     <https://registry.khronos.org/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-pDepthAttachment-06774# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     was '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---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If---     'cmdExecuteCommands' is being called within a render pass instance---     begun with---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     and the---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@---     parameter to---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'---     was '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---     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'------ -   #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-videocoding# This command /must/ only be---     called outside of a video coding scope------ -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Indirection                                                                                                                            |--- |                                                                                                                            |                                                                                                                        |                                                                                                                             | 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; @depth@ slices in the--- 3D image correspond to @layerCount@ layers in the 2D image, with an--- effective @depth@ of @1@ used for the 2D 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)------ -   #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0------ -   #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0------ -   #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0------ == 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.------ == 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------ -   #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@---     /must/ not be 0------ -   #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@---     /must/ not be 0------ -   #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@---     /must/ not be 0------ == 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://registry.khronos.org/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 the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>--- feature 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://registry.khronos.org/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://registry.khronos.org/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+-- -   #VUID-vkCmdBindPipeline-pipelineProtectedAccess-07408# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>+--     feature is enabled, and @commandBuffer@ is a protected command+--     buffer, @pipeline@ /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--+-- -   #VUID-vkCmdBindPipeline-pipelineProtectedAccess-07409# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>+--     feature is enabled, and @commandBuffer@ is not a protected command+--     buffer, @pipeline@ /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+--+-- -   #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://registry.khronos.org/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+--+-- -   #VUID-vkCmdBindPipeline-pipeline-06856# 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 the @pNext@ chain of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'+--     includes a+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'+--     structure with @multisampledRenderToSingleSampledEnable@ equal to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the value of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pMultisampleState@::@rasterizationSamples@+--     /must/ be equal to+--     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT'::@rasterizationSamples@.+--+-- -   #VUID-vkCmdBindPipeline-pipelineBindPoint-06653# If+--     @pipelineBindPoint@ is+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS',+--     @pipeline@ /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_LIBRARY_BIT_KHR'+--+-- == 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+--     feature is not enabled, @firstViewport@ /must/ be @0@+--+-- -   #VUID-vkCmdSetViewport-viewportCount-01225# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+--     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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+--     feature is not enabled, @firstScissor@ /must/ be @0@+--+-- -   #VUID-vkCmdSetScissor-scissorCount-00594# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiViewport multiViewport>+--     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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-wideLines wideLines>+--     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+--+-- -   #VUID-vkCmdSetLineWidth-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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.PipelineRasterizationStateCreateInfo'::@depthBiasConstantFactor@,+-- @depthBiasClamp@, and @depthBiasSlopeFactor@ values used to create the+-- currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthBias-depthBiasClamp-00790# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthBiasClamp depthBiasClamp>+--     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+--+-- -   #VUID-vkCmdSetDepthBias-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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+--+-- -   #VUID-vkCmdSetBlendConstants-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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://registry.khronos.org/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+--+-- -   #VUID-vkCmdSetDepthBounds-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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.StencilOpState'::@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+--+-- -   #VUID-vkCmdSetStencilCompareMask-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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+--+-- -   #VUID-vkCmdSetStencilWriteMask-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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+--+-- -   #VUID-vkCmdSetStencilReference-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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' binds descriptor sets+-- @pDescriptorSets@[0..@descriptorSetCount@-1] to set numbers+-- [@firstSet@..@firstSet@+@descriptorSetCount@-1] for subsequent+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>+-- set by @pipelineBindPoint@. 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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-bindpoint-commands bound pipeline commands>+-- with that pipeline type, as defined in the+-- <https://registry.khronos.org/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+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#dynamic-effective-offset effective offset>+--     and the range of the binding /must/ be less than or equal to the+--     size of the buffer+--+-- -   #VUID-vkCmdBindDescriptorSets-pDescriptorSets-06715# For each+--     dynamic uniform or storage buffer binding in @pDescriptorSets@, if+--     the range was set with 'Vulkan.Core10.APIConstants.WHOLE_SIZE' then+--     @pDynamicOffsets@ which corresponds to the descriptor binding /must/+--     be 0+--+-- -   #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_EXT'+--     flag set+--+-- -   #VUID-vkCmdBindDescriptorSets-graphicsPipelineLibrary-06754# If+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-graphicsPipelineLibrary graphicsPipelineLibrary>+--     is not enabled, each element of @pDescriptorSets@ /must/ be a valid+--     'Vulkan.Core10.Handles.DescriptorSet'+--+-- == 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 or+--     'Vulkan.Core10.APIConstants.NULL_HANDLE'+--     '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-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength#+--     @descriptorSetCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdBindDescriptorSets-commonparent# Each of @commandBuffer@,+--     @layout@, and the elements of @pDescriptorSets@ 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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_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://registry.khronos.org/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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDraw-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDraw-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-06550# If the 'Vulkan.Core10.Handles.Pipeline'+--     object bound to the pipeline bind point used by this command+--     accesses a 'Vulkan.Core10.Handles.Sampler' or+--     'Vulkan.Core10.Handles.ImageView' object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDraw-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #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-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDraw-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDraw-OpImageWeightedSampleQCOM-06978# If any command+--     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ not have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDraw-None-07288# Any shader invocation executed by this+--     command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #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-OpTypeImage-07468# If any shader executed by this+--     pipeline accesses an @OpTypeImage@ variable with a @Dim@ operand of+--     @SubpassData@, it /must/ be decorated with an @InputAttachmentIndex@+--     that corresponds to a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDraw-None-07469# Input attachment views accessed in a+--     subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDraw-None-06537# Memory backing image subresources used+--     as attachments in the current render pass /must/ not be written in+--     any way other than as an attachment by this command+--+-- -   #VUID-vkCmdDraw-None-06538# If any recorded command in the current+--     subpass will write to an image subresource as an attachment, this+--     command /must/ not read from the memory backing that image+--     subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDraw-None-06539# If any recorded command in the current+--     subpass will read from an image subresource used as an attachment in+--     any way other than as an attachment, this command /must/ not write+--     to that image subresource as an attachment+--+-- -   #VUID-vkCmdDraw-None-06886# If the current render pass instance uses+--     a depth\/stencil attachment with a read-only layout for the depth+--     aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDraw-None-06887# If the current render pass instance uses+--     a depth\/stencil attachment with a read-only layout for the stencil+--     aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #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-None-06666# If the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature 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-attachmentCount-06667# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-attachmentCount-06815# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #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->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->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->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->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->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->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->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->imageView@+--+-- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285# 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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-multisampledRenderToSingleSampled-07286# 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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287# 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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDraw-pColorBlendEnables-07470# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDraw-rasterizationSamples-07471# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDraw-samples-07472# If the bound graphics pipeline state+--     was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDraw-samples-07473# If the bound graphics pipeline state+--     was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDraw-multisampledRenderToSingleSampled-07475# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDraw-firstAttachment-07476# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDraw-firstAttachment-07477# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDraw-firstAttachment-07478# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDraw-firstAttachment-07479# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481# If+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07482# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07483# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDraw-sampleLocationsEnable-07484# If the bound graphics+--     pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-sampleLocationsEnable-07485# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDraw-sampleLocationsEnable-07486# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDraw-sampleLocationsEnable-07487# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDraw-coverageModulationTableEnable-07488# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDraw-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDraw-coverageToColorEnable-07490# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDraw-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDraw-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07495# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07496# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07497# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDraw-stippledLineEnable-07498# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDraw-conservativePointAndLineRasterization-07499# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDraw-stage-07073# If the currently bound pipeline was+--     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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #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-dynamicPrimitiveTopologyUnrestricted-07500# 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 and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to+--     '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_EXT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- == 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+--+-- -   #VUID-vkCmdDraw-videocoding# This command /must/ only be called+--     outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawIndexed-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #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-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexed-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawIndexed-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawIndexed-None-07288# Any shader invocation executed by+--     this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #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-OpTypeImage-07468# If any shader executed by+--     this pipeline accesses an @OpTypeImage@ variable with a @Dim@+--     operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndexed-None-07469# Input attachment views accessed+--     in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawIndexed-None-06537# Memory backing image subresources+--     used as attachments in the current render pass /must/ not be written+--     in any way other than as an attachment by this command+--+-- -   #VUID-vkCmdDrawIndexed-None-06538# If any recorded command in the+--     current subpass will write to an image subresource as an attachment,+--     this command /must/ not read from the memory backing that image+--     subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawIndexed-None-06539# If any recorded command in the+--     current subpass will read from an image subresource used as an+--     attachment in any way other than as an attachment, this command+--     /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawIndexed-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawIndexed-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #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-None-06666# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature 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-attachmentCount-06667# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-attachmentCount-06815# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #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->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->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->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->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->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->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->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->imageView@+--+-- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285# 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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-multisampledRenderToSingleSampled-07286# 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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287# 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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawIndexed-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawIndexed-rasterizationSamples-07471# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawIndexed-samples-07472# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexed-samples-07473# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07475# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexed-firstAttachment-07476# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawIndexed-firstAttachment-07477# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndexed-firstAttachment-07478# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawIndexed-firstAttachment-07479# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndexed-advancedBlendMaxColorAttachments-07480# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07482# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07483# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07484# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-sampleLocationsEnable-07485# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07486# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexed-sampleLocationsEnable-07487# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawIndexed-coverageModulationTableEnable-07488# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawIndexed-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawIndexed-coverageToColorEnable-07490# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawIndexed-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawIndexed-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexed-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawIndexed-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-stage-07073# If the currently bound pipeline+--     was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #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-dynamicPrimitiveTopologyUnrestricted-07500#+--     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 and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to+--     '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_EXT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexed-None-07312# An index buffer /must/ be bound+--+-- -   #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+--+-- -   #VUID-vkCmdDrawIndexed-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawIndirect-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #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-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndirect-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawIndirect-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawIndirect-None-07288# Any shader invocation executed+--     by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #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-OpTypeImage-07468# If any shader executed by+--     this pipeline accesses an @OpTypeImage@ variable with a @Dim@+--     operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndirect-None-07469# Input attachment views accessed+--     in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawIndirect-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawIndirect-None-06538# If any recorded command in the+--     current subpass will write to an image subresource as an attachment,+--     this command /must/ not read from the memory backing that image+--     subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawIndirect-None-06539# If any recorded command in the+--     current subpass will read from an image subresource used as an+--     attachment in any way other than as an attachment, this command+--     /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawIndirect-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawIndirect-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #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-None-06666# If the bound graphics pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284# If+--     rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature 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-attachmentCount-06667# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-attachmentCount-06815# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #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->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->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->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->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->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->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->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->imageView@+--+-- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285# 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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-multisampledRenderToSingleSampled-07286# 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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287# 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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawIndirect-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawIndirect-rasterizationSamples-07471# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawIndirect-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirect-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07475# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndirect-firstAttachment-07476# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawIndirect-firstAttachment-07477# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndirect-firstAttachment-07478# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawIndirect-firstAttachment-07479# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndirect-advancedBlendMaxColorAttachments-07480# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07482# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07483# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07484# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-sampleLocationsEnable-07485# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07486# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirect-sampleLocationsEnable-07487# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawIndirect-coverageModulationTableEnable-07488# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawIndirect-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawIndirect-coverageToColorEnable-07490# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawIndirect-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawIndirect-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirect-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawIndirect-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawIndirect-stage-07073# If the currently bound pipeline+--     was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #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-dynamicPrimitiveTopologyUnrestricted-07500#+--     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 and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to+--     '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_EXT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #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 multiDrawIndirect>+--     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-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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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-uniformBuffers-06935# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a uniform buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a storage buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawIndexedIndirect-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #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-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawIndexedIndirect-OpImageWeightedSampleQCOM-06978# If+--     any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07288# Any shader invocation+--     executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #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-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06538# If any recorded command+--     in the current subpass will write to an image subresource as an+--     attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06539# If any recorded command+--     in the current subpass will read from an image subresource used as+--     an attachment in any way other than as an attachment, this command+--     /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06886# If the current render+--     pass instance uses a depth\/stencil attachment with a read-only+--     layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-None-06887# If the current render+--     pass instance uses a depth\/stencil attachment with a read-only+--     layout for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #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-None-06666# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature 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-attachmentCount-06667# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-attachmentCount-06815# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #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->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->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->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->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->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->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->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->imageView@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->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-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawIndexedIndirect-pColorBlendEnables-07470# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07471# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirect-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07476# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07477# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07478# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirect-firstAttachment-07479# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07482# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07483# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07484# If the+--     bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-sampleLocationsEnable-07485# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07486# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-07487# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawIndexedIndirect-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirect-coverageToColorEnable-07490# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07495# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawIndexedIndirect-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirect-stage-07073# If the currently bound+--     pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #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-dynamicPrimitiveTopologyUnrestricted-07500#+--     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 and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to+--     '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_EXT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT'+--+-- -   #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 multiDrawIndirect>+--     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-None-07312# An index buffer /must/ be+--     bound+--+-- -   #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-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-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDispatch-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatch-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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-uniformBuffers-06935# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a uniform buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a storage buffer, and that stage+--     was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDispatch-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #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-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatch-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDispatch-OpImageWeightedSampleQCOM-06978# If any command+--     other than @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ not have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDispatch-None-07288# Any shader invocation executed by+--     this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #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+--+-- -   #VUID-vkCmdDispatch-videocoding# This command /must/ only be called+--     outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDispatchIndirect-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.Filter.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-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDispatchIndirect-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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-uniformBuffers-06935# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a uniform buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-storageBuffers-06936# If any stage of+--     the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline+--     bind point used by this command accesses a storage buffer, and that+--     stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDispatchIndirect-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #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-OpImageWeightedSampleQCOM-06971# If+--     @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06972# If+--     @OpImageWeightedSampleQCOM@ uses a 'Vulkan.Core10.Handles.ImageView'+--     as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSSDQCOM-06974# If+--     @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06975# If+--     @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageBlockMatchSADQCOM-06976# If+--     @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06977# If+--     @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDispatchIndirect-OpImageWeightedSampleQCOM-06978# If any+--     command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDispatchIndirect-None-07288# Any shader invocation+--     executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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.+--+-- If either @srcImage@ or @dstImage@ has a+-- <https://registry.khronos.org/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://registry.khronos.org/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.+--+-- If the format of the destination image has a different+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-compatibility-classes block extent>+-- than the source image (e.g. one is a compressed format), the offset and+-- extent for each of the regions specified is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#formats-size-compatibility scaled according to the block extents of each format>+-- to match in size.+--+-- '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-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-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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-size-compatibility size-compatible>+--+-- -   #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# If @srcImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then 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# If @dstImage@ is of type+--     'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then 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-pRegions-07278# For each element of @pRegions@,+--     @srcOffset.x@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07279# For each element of @pRegions@,+--     @srcOffset.y@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07280# For each element of @pRegions@,+--     @srcOffset.z@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07281# For each element of @pRegions@,+--     @dstOffset.x@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07282# For each element of @pRegions@,+--     @dstOffset.y@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-pRegions-07283# For each element of @pRegions@,+--     @dstOffset.z@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01728# For each element of @pRegions@,+--     if the sum of @srcOffset.x@ and @extent.width@ does not equal the+--     width of the the subresource specified by @srcSubresource@,+--     @extent.width@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01729# For each element of @pRegions@,+--     if the sum of @srcOffset.y@ and @extent.height@ does not equal the+--     height of the the subresource specified by @srcSubresource@,+--     @extent.height@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-srcImage-01730# For each element of @pRegions@,+--     if the sum of @srcOffset.z@ and @extent.depth@ does not equal the+--     depth of the the subresource specified by @srcSubresource@,+--     @extent.depth@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01732# For each element of @pRegions@,+--     if the sum of @dstOffset.x@ and @extent.width@ does not equal the+--     width of the the subresource specified by @dstSubresource@,+--     @extent.width@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01733# For each element of @pRegions@,+--     if the sum of @dstOffset.y@ and @extent.height@ does not equal the+--     height of the the subresource specified by @dstSubresource@,+--     @extent.height@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-dstImage-01734# For each element of @pRegions@,+--     if the sum of @dstOffset.z@ and @extent.depth@ does not equal the+--     depth of the the subresource specified by @dstSubresource@,+--     @extent.depth@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06662# If the @aspect@ member of any+--     element of @pRegions@ includes any flag other than+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--     or @srcImage@ was not created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     /must/ have been included in the+--     'Vulkan.Core10.Image.ImageCreateInfo'::@usage@ used to create+--     @srcImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06663# If the @aspect@ member of any+--     element of @pRegions@ includes any flag other than+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--     or @dstImage@ was not created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo 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+--     @dstImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06664# If the @aspect@ member of any+--     element of @pRegions@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     and @srcImage@ was created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo separate stencil usage>,+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     /must/ have been included in the+--     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo'::@stencilUsage@+--     used to create @srcImage@+--+-- -   #VUID-vkCmdCopyImage-aspect-06665# If the @aspect@ member of any+--     element of @pRegions@ includes+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT',+--     and @dstImage@ was created with+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkImageStencilUsageCreateInfo 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 @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-videocoding# This command /must/ only be called+--     outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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, scaled 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.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdBlitImage-filter-00237# If @filter@ is+--     'Vulkan.Core10.Enums.Filter.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-videocoding# This command /must/ only be called+--     outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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# For each element+--     of @pRegions@, @bufferRowLength@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204# For each+--     element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-07273# For each element of+--     @pRegions@, @bufferOffset@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-07274# For each element of+--     @pRegions@, @imageOffset.x@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-07275# For each element of+--     @pRegions@, @imageOffset.y@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-pRegions-07276# For each element of+--     @pRegions@, @imageOffset.z@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00207# For each element of+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does+--     not equal the width of the the subresource specified by+--     @srcSubresource@, @extent.width@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00208# For each element of+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does+--     not equal the height of the the subresource specified by+--     @srcSubresource@, @extent.height@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @dstImage@+--+-- -   #VUID-vkCmdCopyBufferToImage-imageExtent-00209# For each element of+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does+--     not equal the depth of the the subresource specified by+--     @srcSubresource@, @extent.depth@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' 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-07277# For each element of+--     @pRegions@, @bufferRowLength@ divided by the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent 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-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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# For each element+--     of @pRegions@, @bufferRowLength@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204# For each+--     element of @pRegions@, @bufferImageHeight@ /must/ be a multiple of+--     the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07273# For each element of+--     @pRegions@, @bufferOffset@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block size>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07274# For each element of+--     @pRegions@, @imageOffset.x@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07275# For each element of+--     @pRegions@, @imageOffset.y@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-pRegions-07276# For each element of+--     @pRegions@, @imageOffset.z@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00207# For each element of+--     @pRegions@, if the sum of @imageOffset.x@ and @extent.width@ does+--     not equal the width of the the subresource specified by+--     @srcSubresource@, @extent.width@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent width>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00208# For each element of+--     @pRegions@, if the sum of @imageOffset.y@ and @extent.height@ does+--     not equal the height of the the subresource specified by+--     @srcSubresource@, @extent.height@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent height>+--     of the 'Vulkan.Core10.Enums.Format.Format' of @srcImage@+--+-- -   #VUID-vkCmdCopyImageToBuffer-imageExtent-00209# For each element of+--     @pRegions@, if the sum of @imageOffset.z@ and @extent.depth@ does+--     not equal the depth of the the subresource specified by+--     @srcSubresource@, @extent.depth@ /must/ be a multiple of the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent depth>+--     of the 'Vulkan.Core10.Enums.Format.Format' 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-07277# For each element of+--     @pRegions@, @bufferRowLength@ divided by the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatibility-classes texel block extent 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-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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 a “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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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 a “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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>,+-- clears follow the+-- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>,+-- 'cmdClearAttachments' is not a transfer command. It performs its+-- operations in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-order rasterization order>.+-- For color attachments, the operations are executed as color attachment+-- writes, by the+-- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT'+-- stage. For depth\/stencil attachments, the operations are executed as+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-depth depth writes>+-- and+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-stencil 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.+--+-- If any attachment’s @aspectMask@ to be cleared is not backed by an image+-- view, the clear has no effect on that aspect.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdClearAttachments-pAttachments-07270# For each element of+--     @pAttachments@, the corresponding attachment in the current render+--     pass instance /must/ either not be backed by an image view, or+--     contain each of the aspects specified in @aspectMask@+--+-- -   #VUID-vkCmdClearAttachments-aspectMask-07271# If the @aspectMask@+--     member of any element of @pAttachments@ contains+--     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT',+--     the @colorAttachment@ /must/ be a valid color attachment index in+--     the current render pass instance+--+-- -   #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-06937# The layers specified by+--     each element of @pRects@ /must/ be contained within every attachment+--     that @pAttachments@ refers to, i.e. for each element of @pRects@,+--     'ClearRect'::@baseArrayLayer@+--     'ClearRect'::@layerCount@ /must/ be less than or equal to the number+--     of layers rendered to in the current render pass instance+--+-- -   #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://registry.khronos.org/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://registry.khronos.org/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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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.+                       ("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@+--+-- -   #VUID-vkCmdResolveImage-srcImage-06762# @srcImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+--     usage flag+--+-- -   #VUID-vkCmdResolveImage-srcImage-06763# 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-vkCmdResolveImage-dstImage-06764# @dstImage@ /must/ have been+--     created with+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+--     usage flag+--+-- -   #VUID-vkCmdResolveImage-dstImage-06765# 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'+--+-- == 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdSetEvent-stageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdSetEvent-shadingRateImage-07318# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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://registry.khronos.org/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, compute, decode, or encode+--     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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |+-- | 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.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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages source stage mask>+               -- used to determine the first+               -- <https://registry.khronos.org/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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent-stageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdResetEvent-shadingRateImage-07318# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @stageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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://registry.khronos.org/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, compute, decode, or encode+--     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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |+-- | 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.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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible availability and visibility operations>+-- or+-- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>+-- are included in the first synchronization scope, if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically latest>+-- pipeline stage in their @stageMask@ parameter is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-order logically earlier>+-- than or equal to the+-- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-srcStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-shadingRateImage-07318# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-dstStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWaitEvents-shadingRateImage-07318# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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://registry.khronos.org/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://registry.khronos.org/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-srcStageMask-07308# If 'cmdWaitEvents' is+--     being called inside a render pass instance, @srcStageMask@ /must/+--     not include+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_HOST_BIT'+--+-- -   #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, compute, decode, or encode+--     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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Synchronization                                                                                                                        |+-- | 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.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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur later in+-- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-masks destination stage mask>+-- specified by @dstStageMask@.+--+-- The first+-- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-space>+-- pipeline stages is+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>+-- - otherwise it is+-- <https://registry.khronos.org/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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-srcStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-shadingRateImage-07318# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @srcStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-dstStageMask-04096# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader taskShader>+--     feature is not enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdPipelineBarrier-shadingRateImage-07318# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @dstStageMask@ /must/ not contain+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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://registry.khronos.org/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://registry.khronos.org/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, compute, decode,+--     or encode 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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Synchronization                                                                                                                        |+-- | 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.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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- == 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-06741# The @queryType@ used to+--     create @queryPool@ /must/ not be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_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 occlusionQueryPrecise>+--     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-queryType-04862# If the @queryType@ used to+--     create @queryPool@ was+--     @VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR@ the+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#video-encode-operations video encode operations>+--+-- -   #VUID-vkCmdBeginQuery-queryPool-01922# @queryPool@ /must/ have been+--     created with a @queryType@ that differs from that of any queries+--     that are+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-active active>+--     within @commandBuffer@+--+-- -   #VUID-vkCmdBeginQuery-queryType-07070# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #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-queryType-06687# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdBeginQuery-queryType-06688# If the @queryType@ used to+--     create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     then+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-primitivesGeneratedQuery primitivesGeneratedQuery>+--     /must/ be enabled+--+-- -   #VUID-vkCmdBeginQuery-queryPool-07289# If @queryPool@ was created+--     with a @queryType@ of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     then the+--     'Vulkan.Extensions.VK_KHR_performance_query.QueryPoolPerformanceCreateInfoKHR'::@queueFamilyIndex@+--     @queryPool@ was created with /must/ equal the queue family index of+--     the 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | 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',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',+-- 'cmdEndQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'+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+--+-- The command completes the query in @queryPool@ identified by @query@,+-- and marks it as available.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes only the operation of this command.+--+-- Calling 'cmdEndQuery' is equivalent to calling+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT' with+-- the @index@ parameter set to zero.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdEndQuery-None-01923# All queries used by the command+--     /must/ be+--     <https://registry.khronos.org/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+--+-- -   [[VUID-{refpage}-None-07007]] If called within a subpass of a render+--     pass instance, the corresponding 'cmdBeginQuery'* command /must/+--     have been called previously within the same subpass+--+-- -   [[VUID-{refpage}-None-07008]] If called outside of a render pass+--     instance, the corresponding 'cmdBeginQuery'* command /must/ have+--     been called outside of 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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | 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', 'cmdBeginQuery',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginQueryIndexedEXT',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT'+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.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @firstQuery@ and @queryCount@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @firstQuery@ and @queryCount@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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+--+-- When 'cmdWriteTimestamp' 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands that occur earlier in+-- <https://registry.khronos.org/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 @pipelineStage@.+--+-- The second+-- <https://registry.khronos.org/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+-- immediately after @stage@ has completed, 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 geometryShader>+--     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 tessellationShader>+--     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 conditionalRendering>+--     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 fragmentDensityMap>+--     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 transformFeedback>+--     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 meshShader>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-pipelineStage-07077# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-taskShader task shaders>+--     feature is not enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+--+-- -   #VUID-vkCmdWriteTimestamp-shadingRateImage-07314# If neither the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shadingRateImage shadingRateImage>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-attachmentFragmentShadingRate attachmentFragmentShadingRate>+--     are enabled, @pipelineStage@ /must/ not be+--     'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR'+--+-- -   #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'+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Both                                                                                                                        | Transfer                                                                                                              | Action                                                                                                                                 |+-- | 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+--+-- Any results written for a query are written according to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-operation-memorylayout a layout dependent on the query type>.+--+-- Results for any query in @queryPool@ identified by @firstQuery@ and+-- @queryCount@ that is available are copied to @dstBuffer@.+--+-- If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+-- is set, results for all queries in @queryPool@ identified by+-- @firstQuery@ and @queryCount@ are copied to @dstBuffer@, along with an+-- extra availability value written directly after the results of each+-- query and interpreted as an unsigned integer. A value of zero indicates+-- that the results are not yet available, otherwise the query is complete+-- and results are available.+--+-- If @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ is set, results for all queries+-- in @queryPool@ identified by @firstQuery@ and @queryCount@ are copied to+-- @dstBuffer@, along with an extra status value written directly after the+-- results of each query and interpreted as a signed integer. A value of+-- zero indicates that the results are not yet available. Positive values+-- indicate that the operations within the query completed successfully,+-- and the query results are valid. Negative values indicate that the+-- operations within the query completed unsuccessfully.+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueryResultStatusKHR VkQueryResultStatusKHR>+-- defines specific meaning for values returned here, though+-- implementations are free to return other values.+--+-- Results for any available query written by this command are final and+-- represent the final result of the query. If+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT' is+-- set, then for any query that is unavailable, an intermediate result+-- between zero and the final result value is written for that query.+-- Otherwise, any result written by this command is undefined.+--+-- If 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' is set,+-- results and availability or status values for all queries are written as+-- an array of 64-bit values. If the @queryPool@ was created with+-- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+-- results for each query are written as an array of the type indicated by+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR'::@storage@+-- for the counter being queried. Otherwise, results and availability or+-- status values are written as an array of 32-bit values. If an unsigned+-- integer query’s value overflows the result type, the value /may/ either+-- wrap or saturate. If a signed integer query’s value overflows the result+-- type, the value is undefined. If a floating point query’s value is not+-- representable as the result type, the value is undefined.+--+-- This command defines an execution dependency between other query+-- commands that reference the same query.+--+-- The first+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur earlier in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+-- If @flags@ does not include+-- 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WAIT_BIT',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndQueryIndexedEXT',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2',+-- 'cmdEndQuery', and 'cmdWriteTimestamp' are excluded from this scope.+--+-- The second+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-scopes synchronization scope>+-- includes all commands which reference the queries in @queryPool@+-- indicated by @query@ that occur later in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-submission-order submission order>.+--+-- The operation of this command happens after the first scope and happens+-- before the second scope.+--+-- '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://registry.khronos.org/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'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-06901# If the @queryType@+--     used to create @queryPool@ was+--     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, @flags@ /must/ include+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-06902# If @flags@ includes+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, it /must/ not include+--     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT'+--+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-06903# If the @queryType@+--     used to create @queryPool@ was+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR',+--     @flags@ /must/ not contain @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+--+-- -   #VUID-vkCmdCopyQueryPoolResults-None-07429# All queries used by the+--     command /must/ not be active+--+-- == 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-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-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://registry.khronos.org/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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             | Compute                                                                                                               |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_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+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-07000# 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_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     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 either the+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT'+--     and either the+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+--     usage bits.+--+-- -   #VUID-vkCmdBeginRenderPass-initialLayout-07001# 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_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'+--     then the corresponding attachment image view of the framebuffer+--     specified in the @framebuffer@ member of @pRenderPassBegin@ /must/+--     have been created with a @usage@ value the+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT'+--     usage bit.+--+-- == 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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'+--+-- -   #VUID-vkCmdEndRenderPass-None-07004# If 'cmdBeginQuery'* was called+--     within a subpass of the render pass, the corresponding+--     'cmdEndQuery'* /must/ have been called subsequently within the same+--     subpass.+--+-- == 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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | State                                                                                                                                  |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             |                                                                                                                       | Synchronization                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle executable or recording state>,+-- that primary command buffer becomes+-- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-inheritedQueries inheritedQueries>+--     feature is not enabled, @commandBuffer@ /must/ not have any queries+--     <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/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-commandBuffer-06533# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in @commandBuffer@ in the current subpass+--     will write to an image subresource as an attachment, commands+--     recorded in elements of @pCommandBuffers@ /must/ not read from the+--     memory backing that image subresource in any other way+--+-- -   #VUID-vkCmdExecuteCommands-commandBuffer-06534# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in @commandBuffer@ in the current subpass+--     will read from an image subresource used as an attachment in any way+--     other than as an attachment, commands recorded in elements of+--     @pCommandBuffers@ /must/ not write to that image subresource as an+--     attachment+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06535# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in a given element of @pCommandBuffers@+--     will write to an image subresource as an attachment, commands+--     recorded in elements of @pCommandBuffers@ at a higher index /must/+--     not read from the memory backing that image subresource in any other+--     way+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06536# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     and any recorded command in a given element of @pCommandBuffers@+--     will read from an image subresource used as an attachment in any way+--     other than as an attachment, commands recorded in elements of+--     @pCommandBuffers@ at a higher index /must/ not write to that image+--     subresource as an attachment+--+-- -   #VUID-vkCmdExecuteCommands-pCommandBuffers-06021# If+--     @pCommandBuffers@ contains any+--     <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-variableSampleLocations variableSampleLocations>+--     limit is not supported, and any element of @pCommandBuffers@+--     contains any+--     <https://registry.khronos.org/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-pDepthAttachment-06774# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     was '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+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #VUID-vkCmdExecuteCommands-pStencilAttachment-06775# If+--     'cmdExecuteCommands' is being called within a render pass instance+--     begun with+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     and the+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->imageView@+--     parameter to+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.cmdBeginRendering'+--     was '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+--     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED'+--+-- -   #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-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- -   #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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Transfer                                                                                                              | Indirection                                                                                                                            |+-- |                                                                                                                            |                                                                                                                        |                                                                                                                             | 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; @depth@ slices in the+-- 3D image correspond to @layerCount@ layers in the 2D image, with an+-- effective @depth@ of @1@ used for the 2D 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)+--+-- -   #VUID-VkImageCopy-extent-06668# @extent.width@ /must/ not be 0+--+-- -   #VUID-VkImageCopy-extent-06669# @extent.height@ /must/ not be 0+--+-- -   #VUID-VkImageCopy-extent-06670# @extent.depth@ /must/ not be 0+--+-- == 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.+--+-- == 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+--+-- -   #VUID-VkBufferImageCopy-imageExtent-06659# @imageExtent.width@+--     /must/ not be 0+--+-- -   #VUID-VkBufferImageCopy-imageExtent-06660# @imageExtent.height@+--     /must/ not be 0+--+-- -   #VUID-VkBufferImageCopy-imageExtent-06661# @imageExtent.depth@+--     /must/ not be 0+--+-- == 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://registry.khronos.org/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 the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-subpassShading subpassShading>+-- feature 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://registry.khronos.org/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://registry.khronos.org/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)
src/Vulkan/Core10/CommandBufferBuilding.hs-boot view
@@ -92,7 +92,8 @@ type role RenderPassBeginInfo nominal data RenderPassBeginInfo (es :: [Type]) -instance (Extendss RenderPassBeginInfo es, PokeChain es) => ToCStruct (RenderPassBeginInfo es)+instance ( Extendss RenderPassBeginInfo es+         , PokeChain es ) => ToCStruct (RenderPassBeginInfo es) instance Show (Chain es) => Show (RenderPassBeginInfo es)  
src/Vulkan/Core10/CommandPool.hs view
@@ -142,7 +142,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPCommandPool <- ContT $ bracket (callocBytes @CommandPool 8) free-  r <- lift $ traceAroundEvent "vkCreateCommandPool" (vkCreateCommandPool' (deviceHandle (device)) pCreateInfo pAllocator (pPCommandPool))+  r <- lift $ traceAroundEvent "vkCreateCommandPool" (vkCreateCommandPool'+                                                        (deviceHandle (device))+                                                        pCreateInfo+                                                        pAllocator+                                                        (pPCommandPool))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCommandPool <- lift $ peek @CommandPool pPCommandPool   pure $ (pCommandPool)@@ -244,7 +248,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyCommandPool" (vkDestroyCommandPool' (deviceHandle (device)) (commandPool) pAllocator)+  lift $ traceAroundEvent "vkDestroyCommandPool" (vkDestroyCommandPool'+                                                    (deviceHandle (device))+                                                    (commandPool)+                                                    pAllocator)   pure $ ()  @@ -331,7 +338,10 @@   unless (vkResetCommandPoolPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetCommandPool is null" Nothing Nothing   let vkResetCommandPool' = mkVkResetCommandPool vkResetCommandPoolPtr-  r <- traceAroundEvent "vkResetCommandPool" (vkResetCommandPool' (deviceHandle (device)) (commandPool) (flags))+  r <- traceAroundEvent "vkResetCommandPool" (vkResetCommandPool'+                                                (deviceHandle (device))+                                                (commandPool)+                                                (flags))   when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Core10/DescriptorSet.hs view
@@ -188,7 +188,9 @@ -- 'Vulkan.Core10.Handles.DescriptorSetLayout', -- 'DescriptorSetLayoutCreateInfo', 'Vulkan.Core10.Handles.Device' createDescriptorSetLayout :: forall a io-                           . (Extendss DescriptorSetLayoutCreateInfo a, PokeChain a, MonadIO io)+                           . ( Extendss DescriptorSetLayoutCreateInfo a+                             , PokeChain a+                             , MonadIO io )                           => -- | @device@ is the logical device that creates the descriptor set layout.                              Device                           -> -- | @pCreateInfo@ is a pointer to a 'DescriptorSetLayoutCreateInfo'@@ -209,7 +211,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSetLayout <- ContT $ bracket (callocBytes @DescriptorSetLayout 8) free-  r <- lift $ traceAroundEvent "vkCreateDescriptorSetLayout" (vkCreateDescriptorSetLayout' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSetLayout))+  r <- lift $ traceAroundEvent "vkCreateDescriptorSetLayout" (vkCreateDescriptorSetLayout'+                                                                (deviceHandle (device))+                                                                (forgetExtensions pCreateInfo)+                                                                pAllocator+                                                                (pPSetLayout))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSetLayout <- lift $ peek @DescriptorSetLayout pPSetLayout   pure $ (pSetLayout)@@ -290,7 +296,9 @@                               -- chapter.                               ("allocator" ::: Maybe AllocationCallbacks)                            -> io ()-destroyDescriptorSetLayout device descriptorSetLayout allocator = liftIO . evalContT $ do+destroyDescriptorSetLayout device+                             descriptorSetLayout+                             allocator = liftIO . evalContT $ do   let vkDestroyDescriptorSetLayoutPtr = pVkDestroyDescriptorSetLayout (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyDescriptorSetLayoutPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyDescriptorSetLayout is null" Nothing Nothing@@ -298,7 +306,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDescriptorSetLayout" (vkDestroyDescriptorSetLayout' (deviceHandle (device)) (descriptorSetLayout) pAllocator)+  lift $ traceAroundEvent "vkDestroyDescriptorSetLayout" (vkDestroyDescriptorSetLayout'+                                                            (deviceHandle (device))+                                                            (descriptorSetLayout)+                                                            pAllocator)   pure $ ()  @@ -353,7 +364,9 @@ -- 'Vulkan.Core10.Handles.DescriptorPool', 'DescriptorPoolCreateInfo', -- 'Vulkan.Core10.Handles.Device' createDescriptorPool :: forall a io-                      . (Extendss DescriptorPoolCreateInfo a, PokeChain a, MonadIO io)+                      . ( Extendss DescriptorPoolCreateInfo a+                        , PokeChain a+                        , MonadIO io )                      => -- | @device@ is the logical device that creates the descriptor pool.                         Device                      -> -- | @pCreateInfo@ is a pointer to a 'DescriptorPoolCreateInfo' structure@@ -374,7 +387,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPDescriptorPool <- ContT $ bracket (callocBytes @DescriptorPool 8) free-  r <- lift $ traceAroundEvent "vkCreateDescriptorPool" (vkCreateDescriptorPool' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPDescriptorPool))+  r <- lift $ traceAroundEvent "vkCreateDescriptorPool" (vkCreateDescriptorPool'+                                                           (deviceHandle (device))+                                                           (forgetExtensions pCreateInfo)+                                                           pAllocator+                                                           (pPDescriptorPool))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDescriptorPool <- lift $ peek @DescriptorPool pPDescriptorPool   pure $ (pDescriptorPool)@@ -471,7 +488,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDescriptorPool" (vkDestroyDescriptorPool' (deviceHandle (device)) (descriptorPool) pAllocator)+  lift $ traceAroundEvent "vkDestroyDescriptorPool" (vkDestroyDescriptorPool'+                                                       (deviceHandle (device))+                                                       (descriptorPool)+                                                       pAllocator)   pure $ ()  @@ -543,7 +563,10 @@   unless (vkResetDescriptorPoolPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetDescriptorPool is null" Nothing Nothing   let vkResetDescriptorPool' = mkVkResetDescriptorPool vkResetDescriptorPoolPtr-  _ <- traceAroundEvent "vkResetDescriptorPool" (vkResetDescriptorPool' (deviceHandle (device)) (descriptorPool) (flags))+  _ <- traceAroundEvent "vkResetDescriptorPool" (vkResetDescriptorPool'+                                                   (deviceHandle (device))+                                                   (descriptorPool)+                                                   (flags))   pure $ ()  @@ -659,7 +682,9 @@ -- 'Vulkan.Core10.Handles.DescriptorSet', 'DescriptorSetAllocateInfo', -- 'Vulkan.Core10.Handles.Device' allocateDescriptorSets :: forall a io-                        . (Extendss DescriptorSetAllocateInfo a, PokeChain a, MonadIO io)+                        . ( Extendss DescriptorSetAllocateInfo a+                          , PokeChain a+                          , MonadIO io )                        => -- | @device@ is the logical device that owns the descriptor pool.                           Device                        -> -- | @pAllocateInfo@ is a pointer to a 'DescriptorSetAllocateInfo' structure@@ -673,7 +698,10 @@   let vkAllocateDescriptorSets' = mkVkAllocateDescriptorSets vkAllocateDescriptorSetsPtr   pAllocateInfo <- ContT $ withCStruct (allocateInfo)   pPDescriptorSets <- ContT $ bracket (callocBytes @DescriptorSet ((fromIntegral . Data.Vector.length . setLayouts $ (allocateInfo)) * 8)) free-  r <- lift $ traceAroundEvent "vkAllocateDescriptorSets" (vkAllocateDescriptorSets' (deviceHandle (device)) (forgetExtensions pAllocateInfo) (pPDescriptorSets))+  r <- lift $ traceAroundEvent "vkAllocateDescriptorSets" (vkAllocateDescriptorSets'+                                                             (deviceHandle (device))+                                                             (forgetExtensions pAllocateInfo)+                                                             (pPDescriptorSets))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDescriptorSets <- lift $ generateM (fromIntegral . Data.Vector.length . setLayouts $ (allocateInfo)) (\i -> peek @DescriptorSet ((pPDescriptorSets `advancePtrBytes` (8 * (i)) :: Ptr DescriptorSet)))   pure $ (pDescriptorSets)@@ -689,7 +717,9 @@ withDescriptorSets :: forall a io r . (Extendss DescriptorSetAllocateInfo a, PokeChain a, MonadIO io) => Device -> DescriptorSetAllocateInfo a -> (io (Vector DescriptorSet) -> (Vector DescriptorSet -> io ()) -> r) -> r withDescriptorSets device pAllocateInfo b =   b (allocateDescriptorSets device pAllocateInfo)-    (\(o0) -> freeDescriptorSets device (descriptorPool (pAllocateInfo :: DescriptorSetAllocateInfo a)) o0)+    (\(o0) -> freeDescriptorSets device+                                   (descriptorPool (pAllocateInfo :: DescriptorSetAllocateInfo a))+                                   o0)   foreign import ccall@@ -771,14 +801,20 @@                       -- 'Vulkan.Core10.Handles.DescriptorSet' objects.                       ("descriptorSets" ::: Vector DescriptorSet)                    -> io ()-freeDescriptorSets device descriptorPool descriptorSets = liftIO . evalContT $ do+freeDescriptorSets device+                     descriptorPool+                     descriptorSets = liftIO . evalContT $ do   let vkFreeDescriptorSetsPtr = pVkFreeDescriptorSets (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkFreeDescriptorSetsPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkFreeDescriptorSets is null" Nothing Nothing   let vkFreeDescriptorSets' = mkVkFreeDescriptorSets vkFreeDescriptorSetsPtr   pPDescriptorSets <- ContT $ allocaBytes @DescriptorSet ((Data.Vector.length (descriptorSets)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorSets `plusPtr` (8 * (i)) :: Ptr DescriptorSet) (e)) (descriptorSets)-  _ <- lift $ traceAroundEvent "vkFreeDescriptorSets" (vkFreeDescriptorSets' (deviceHandle (device)) (descriptorPool) ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32)) (pPDescriptorSets))+  _ <- lift $ traceAroundEvent "vkFreeDescriptorSets" (vkFreeDescriptorSets'+                                                         (deviceHandle (device))+                                                         (descriptorPool)+                                                         ((fromIntegral (Data.Vector.length $ (descriptorSets)) :: Word32))+                                                         (pPDescriptorSets))   pure $ ()  @@ -947,7 +983,9 @@                         -- structures describing the descriptor sets to copy between.                         ("descriptorCopies" ::: Vector CopyDescriptorSet)                      -> io ()-updateDescriptorSets device descriptorWrites descriptorCopies = liftIO . evalContT $ do+updateDescriptorSets device+                       descriptorWrites+                       descriptorCopies = liftIO . evalContT $ do   let vkUpdateDescriptorSetsPtr = pVkUpdateDescriptorSets (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkUpdateDescriptorSetsPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUpdateDescriptorSets is null" Nothing Nothing@@ -956,7 +994,12 @@   Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPDescriptorWrites `plusPtr` (64 * (i)) :: Ptr (WriteDescriptorSet _))) (e) . ($ ())) (descriptorWrites)   pPDescriptorCopies <- ContT $ allocaBytes @CopyDescriptorSet ((Data.Vector.length (descriptorCopies)) * 56)   lift $ Data.Vector.imapM_ (\i e -> poke (pPDescriptorCopies `plusPtr` (56 * (i)) :: Ptr CopyDescriptorSet) (e)) (descriptorCopies)-  lift $ traceAroundEvent "vkUpdateDescriptorSets" (vkUpdateDescriptorSets' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32)) (forgetExtensions (pPDescriptorWrites)) ((fromIntegral (Data.Vector.length $ (descriptorCopies)) :: Word32)) (pPDescriptorCopies))+  lift $ traceAroundEvent "vkUpdateDescriptorSets" (vkUpdateDescriptorSets'+                                                      (deviceHandle (device))+                                                      ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32))+                                                      (forgetExtensions (pPDescriptorWrites))+                                                      ((fromIntegral (Data.Vector.length $ (descriptorCopies)) :: Word32))+                                                      (pPDescriptorCopies))   pure $ ()  @@ -1750,7 +1793,8 @@     | Just Refl <- eqT @e @WriteDescriptorSetInlineUniformBlock = Just f     | otherwise = Nothing -instance (Extendss WriteDescriptorSet es, PokeChain es) => ToCStruct (WriteDescriptorSet es) where+instance ( Extendss WriteDescriptorSet es+         , PokeChain es ) => ToCStruct (WriteDescriptorSet es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p WriteDescriptorSet{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET)@@ -1804,7 +1848,8 @@     lift $ poke ((p `plusPtr` 36 :: Ptr DescriptorType)) (zero)     lift $ f -instance (Extendss WriteDescriptorSet es, PeekChain es) => FromCStruct (WriteDescriptorSet es) where+instance ( Extendss WriteDescriptorSet es+         , PeekChain es ) => FromCStruct (WriteDescriptorSet es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1823,7 +1868,15 @@     let pTexelBufferViewLength = if pTexelBufferView == nullPtr then 0 else (fromIntegral descriptorCount)     pTexelBufferView' <- generateM pTexelBufferViewLength (\i -> peek @BufferView ((pTexelBufferView `advancePtrBytes` (8 * (i)) :: Ptr BufferView)))     pure $ WriteDescriptorSet-             next dstSet dstBinding dstArrayElement descriptorCount descriptorType pImageInfo' pBufferInfo' pTexelBufferView'+             next+             dstSet+             dstBinding+             dstArrayElement+             descriptorCount+             descriptorType+             pImageInfo'+             pBufferInfo'+             pTexelBufferView'  instance es ~ '[] => Zero (WriteDescriptorSet es) where   zero = WriteDescriptorSet@@ -2077,7 +2130,13 @@     dstArrayElement <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))     descriptorCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))     pure $ CopyDescriptorSet-             srcSet srcBinding srcArrayElement dstSet dstBinding dstArrayElement descriptorCount+             srcSet+             srcBinding+             srcArrayElement+             dstSet+             dstBinding+             dstArrayElement+             descriptorCount  instance Storable CopyDescriptorSet where   sizeOf ~_ = 56@@ -2280,7 +2339,11 @@     let pImmutableSamplersLength = if pImmutableSamplers == nullPtr then 0 else (fromIntegral descriptorCount)     pImmutableSamplers' <- generateM pImmutableSamplersLength (\i -> peek @Sampler ((pImmutableSamplers `advancePtrBytes` (8 * (i)) :: Ptr Sampler)))     pure $ DescriptorSetLayoutBinding-             binding descriptorType descriptorCount stageFlags pImmutableSamplers'+             binding+             descriptorType+             descriptorCount+             stageFlags+             pImmutableSamplers'  instance Zero DescriptorSetLayoutBinding where   zero = DescriptorSetLayoutBinding@@ -2441,7 +2504,8 @@     | Just Refl <- eqT @e @DescriptorSetLayoutBindingFlagsCreateInfo = Just f     | otherwise = Nothing -instance (Extendss DescriptorSetLayoutCreateInfo es, PokeChain es) => ToCStruct (DescriptorSetLayoutCreateInfo es) where+instance ( Extendss DescriptorSetLayoutCreateInfo es+         , PokeChain es ) => ToCStruct (DescriptorSetLayoutCreateInfo es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DescriptorSetLayoutCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)@@ -2461,7 +2525,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss DescriptorSetLayoutCreateInfo es, PeekChain es) => FromCStruct (DescriptorSetLayoutCreateInfo es) where+instance ( Extendss DescriptorSetLayoutCreateInfo es+         , PeekChain es ) => FromCStruct (DescriptorSetLayoutCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2733,7 +2798,8 @@     | Just Refl <- eqT @e @DescriptorPoolInlineUniformBlockCreateInfo = Just f     | otherwise = Nothing -instance (Extendss DescriptorPoolCreateInfo es, PokeChain es) => ToCStruct (DescriptorPoolCreateInfo es) where+instance ( Extendss DescriptorPoolCreateInfo es+         , PokeChain es ) => ToCStruct (DescriptorPoolCreateInfo es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DescriptorPoolCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)@@ -2755,7 +2821,8 @@     lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss DescriptorPoolCreateInfo es, PeekChain es) => FromCStruct (DescriptorPoolCreateInfo es) where+instance ( Extendss DescriptorPoolCreateInfo es+         , PeekChain es ) => FromCStruct (DescriptorPoolCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2860,7 +2927,8 @@     | Just Refl <- eqT @e @DescriptorSetVariableDescriptorCountAllocateInfo = Just f     | otherwise = Nothing -instance (Extendss DescriptorSetAllocateInfo es, PokeChain es) => ToCStruct (DescriptorSetAllocateInfo es) where+instance ( Extendss DescriptorSetAllocateInfo es+         , PokeChain es ) => ToCStruct (DescriptorSetAllocateInfo es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DescriptorSetAllocateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO)@@ -2881,7 +2949,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr DescriptorPool)) (zero)     lift $ f -instance (Extendss DescriptorSetAllocateInfo es, PeekChain es) => FromCStruct (DescriptorSetAllocateInfo es) where+instance ( Extendss DescriptorSetAllocateInfo es+         , PeekChain es ) => FromCStruct (DescriptorSetAllocateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/DescriptorSet.hs-boot view
@@ -45,10 +45,12 @@ type role DescriptorPoolCreateInfo nominal data DescriptorPoolCreateInfo (es :: [Type]) -instance (Extendss DescriptorPoolCreateInfo es, PokeChain es) => ToCStruct (DescriptorPoolCreateInfo es)+instance ( Extendss DescriptorPoolCreateInfo es+         , PokeChain es ) => ToCStruct (DescriptorPoolCreateInfo es) instance Show (Chain es) => Show (DescriptorPoolCreateInfo es) -instance (Extendss DescriptorPoolCreateInfo es, PeekChain es) => FromCStruct (DescriptorPoolCreateInfo es)+instance ( Extendss DescriptorPoolCreateInfo es+         , PeekChain es ) => FromCStruct (DescriptorPoolCreateInfo es)   data DescriptorPoolSize@@ -62,10 +64,12 @@ type role DescriptorSetAllocateInfo nominal data DescriptorSetAllocateInfo (es :: [Type]) -instance (Extendss DescriptorSetAllocateInfo es, PokeChain es) => ToCStruct (DescriptorSetAllocateInfo es)+instance ( Extendss DescriptorSetAllocateInfo es+         , PokeChain es ) => ToCStruct (DescriptorSetAllocateInfo es) instance Show (Chain es) => Show (DescriptorSetAllocateInfo es) -instance (Extendss DescriptorSetAllocateInfo es, PeekChain es) => FromCStruct (DescriptorSetAllocateInfo es)+instance ( Extendss DescriptorSetAllocateInfo es+         , PeekChain es ) => FromCStruct (DescriptorSetAllocateInfo es)   data DescriptorSetLayoutBinding@@ -79,17 +83,21 @@ type role DescriptorSetLayoutCreateInfo nominal data DescriptorSetLayoutCreateInfo (es :: [Type]) -instance (Extendss DescriptorSetLayoutCreateInfo es, PokeChain es) => ToCStruct (DescriptorSetLayoutCreateInfo es)+instance ( Extendss DescriptorSetLayoutCreateInfo es+         , PokeChain es ) => ToCStruct (DescriptorSetLayoutCreateInfo es) instance Show (Chain es) => Show (DescriptorSetLayoutCreateInfo es) -instance (Extendss DescriptorSetLayoutCreateInfo es, PeekChain es) => FromCStruct (DescriptorSetLayoutCreateInfo es)+instance ( Extendss DescriptorSetLayoutCreateInfo es+         , PeekChain es ) => FromCStruct (DescriptorSetLayoutCreateInfo es)   type role WriteDescriptorSet nominal data WriteDescriptorSet (es :: [Type]) -instance (Extendss WriteDescriptorSet es, PokeChain es) => ToCStruct (WriteDescriptorSet es)+instance ( Extendss WriteDescriptorSet es+         , PokeChain es ) => ToCStruct (WriteDescriptorSet es) instance Show (Chain es) => Show (WriteDescriptorSet es) -instance (Extendss WriteDescriptorSet es, PeekChain es) => FromCStruct (WriteDescriptorSet es)+instance ( Extendss WriteDescriptorSet es+         , PeekChain es ) => FromCStruct (WriteDescriptorSet es) 
src/Vulkan/Core10/Device.hs view
@@ -93,6 +93,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage (PhysicalDevice8BitStorageFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)@@ -119,8 +120,10 @@ 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_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)@@ -156,13 +159,17 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) 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_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_protected_access (PhysicalDevicePipelineProtectedAccessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV) 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)@@ -344,7 +351,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPDevice <- ContT $ bracket (callocBytes @(Ptr Device_T) 8) free-  r <- lift $ traceAroundEvent "vkCreateDevice" (vkCreateDevice' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pCreateInfo) pAllocator (pPDevice))+  r <- lift $ traceAroundEvent "vkCreateDevice" (vkCreateDevice'+                                                   (physicalDeviceHandle (physicalDevice))+                                                   (forgetExtensions pCreateInfo)+                                                   pAllocator+                                                   (pPDevice))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDevice <- lift $ peek @(Ptr Device_T) pPDevice   pDevice' <- lift $ (\h -> Device h <$> initDeviceCmds cmds h) pDevice@@ -441,7 +452,9 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDevice" (vkDestroyDevice' (deviceHandle (device)) pAllocator)+  lift $ traceAroundEvent "vkDestroyDevice" (vkDestroyDevice'+                                               (deviceHandle (device))+                                               pAllocator)   pure $ ()  @@ -540,7 +553,8 @@     | Just Refl <- eqT @e @DeviceQueueGlobalPriorityCreateInfoKHR = Just f     | otherwise = Nothing -instance (Extendss DeviceQueueCreateInfo es, PokeChain es) => ToCStruct (DeviceQueueCreateInfo es) where+instance ( Extendss DeviceQueueCreateInfo es+         , PokeChain es ) => ToCStruct (DeviceQueueCreateInfo es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DeviceQueueCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO)@@ -562,7 +576,8 @@     lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss DeviceQueueCreateInfo es, PeekChain es) => FromCStruct (DeviceQueueCreateInfo es) where+instance ( Extendss DeviceQueueCreateInfo es+         , PeekChain es ) => FromCStruct (DeviceQueueCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -812,6 +827,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures', --     'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',+--     'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT', --     'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC', --     'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',@@ -838,8 +854,10 @@ --     '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_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT', --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', --     'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',+--     'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT', --     'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',@@ -874,13 +892,17 @@ --     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures', --     'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',+--     'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT',+--     'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV', --     'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', --     'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',+--     'Vulkan.Extensions.VK_EXT_pipeline_protected_access.PhysicalDevicePipelineProtectedAccessFeaturesEXT', --     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT', --     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+--     'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV', --     'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',@@ -1019,6 +1041,9 @@   getNext DeviceCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceAddressBindingReportFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDepthClampZeroOneFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceAmigoProfilingFeaturesSEC = Just f@@ -1028,6 +1053,7 @@     | Just Refl <- eqT @e @PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = Just f     | Just Refl <- eqT @e @PhysicalDevicePipelinePropertiesFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceOpacityMicromapFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f@@ -1045,6 +1071,7 @@     | 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 @PhysicalDevicePipelineProtectedAccessFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f@@ -1069,6 +1096,7 @@     | 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 @PhysicalDeviceExtendedDynamicState3FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = Just f@@ -1092,6 +1120,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoverageReductionModeFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDevicePresentBarrierFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = Just f@@ -1157,7 +1186,8 @@     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f     | otherwise = Nothing -instance (Extendss DeviceCreateInfo es, PokeChain es) => ToCStruct (DeviceCreateInfo es) where+instance ( Extendss DeviceCreateInfo es+         , PokeChain es ) => ToCStruct (DeviceCreateInfo es) where   withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DeviceCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_CREATE_INFO)@@ -1193,7 +1223,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss DeviceCreateInfo es, PeekChain es) => FromCStruct (DeviceCreateInfo es) where+instance ( Extendss DeviceCreateInfo es+         , PeekChain es ) => FromCStruct (DeviceCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1210,7 +1241,12 @@     pEnabledFeatures <- peek @(Ptr PhysicalDeviceFeatures) ((p `plusPtr` 64 :: Ptr (Ptr PhysicalDeviceFeatures)))     pEnabledFeatures' <- maybePeek (\j -> peekCStruct @PhysicalDeviceFeatures (j)) pEnabledFeatures     pure $ DeviceCreateInfo-             next flags pQueueCreateInfos' ppEnabledLayerNames' ppEnabledExtensionNames' pEnabledFeatures'+             next+             flags+             pQueueCreateInfos'+             ppEnabledLayerNames'+             ppEnabledExtensionNames'+             pEnabledFeatures'  instance es ~ '[] => Zero (DeviceCreateInfo es) where   zero = DeviceCreateInfo
src/Vulkan/Core10/Device.hs-boot view
@@ -14,17 +14,21 @@ type role DeviceCreateInfo nominal data DeviceCreateInfo (es :: [Type]) -instance (Extendss DeviceCreateInfo es, PokeChain es) => ToCStruct (DeviceCreateInfo es)+instance ( Extendss DeviceCreateInfo es+         , PokeChain es ) => ToCStruct (DeviceCreateInfo es) instance Show (Chain es) => Show (DeviceCreateInfo es) -instance (Extendss DeviceCreateInfo es, PeekChain es) => FromCStruct (DeviceCreateInfo es)+instance ( Extendss DeviceCreateInfo es+         , PeekChain es ) => FromCStruct (DeviceCreateInfo es)   type role DeviceQueueCreateInfo nominal data DeviceQueueCreateInfo (es :: [Type]) -instance (Extendss DeviceQueueCreateInfo es, PokeChain es) => ToCStruct (DeviceQueueCreateInfo es)+instance ( Extendss DeviceQueueCreateInfo es+         , PokeChain es ) => ToCStruct (DeviceQueueCreateInfo es) instance Show (Chain es) => Show (DeviceQueueCreateInfo es) -instance (Extendss DeviceQueueCreateInfo es, PeekChain es) => FromCStruct (DeviceQueueCreateInfo es)+instance ( Extendss DeviceQueueCreateInfo es+         , PeekChain es ) => FromCStruct (DeviceQueueCreateInfo es) 
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -330,7 +330,10 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPInstance <- ContT $ bracket (callocBytes @(Ptr Instance_T) 8) free-  r <- lift $ traceAroundEvent "vkCreateInstance" (vkCreateInstance' (forgetExtensions pCreateInfo) pAllocator (pPInstance))+  r <- lift $ traceAroundEvent "vkCreateInstance" (vkCreateInstance'+                                                     (forgetExtensions pCreateInfo)+                                                     pAllocator+                                                     (pPInstance))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pInstance <- lift $ peek @(Ptr Instance_T) pPInstance   pInstance' <- lift $ (\h -> Instance h <$> initInstanceCmds h) pInstance@@ -413,7 +416,9 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyInstance" (vkDestroyInstance' (instanceHandle (instance')) pAllocator)+  lift $ traceAroundEvent "vkDestroyInstance" (vkDestroyInstance'+                                                 (instanceHandle (instance'))+                                                 pAllocator)   pure $ ()  @@ -489,11 +494,17 @@   let vkEnumeratePhysicalDevices' = mkVkEnumeratePhysicalDevices vkEnumeratePhysicalDevicesPtr   let instance'' = instanceHandle (instance')   pPPhysicalDeviceCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices' instance'' (pPPhysicalDeviceCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices'+                                                               instance''+                                                               (pPPhysicalDeviceCount)+                                                               (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPhysicalDeviceCount <- lift $ peek @Word32 pPPhysicalDeviceCount   pPPhysicalDevices <- ContT $ bracket (callocBytes @(Ptr PhysicalDevice_T) ((fromIntegral (pPhysicalDeviceCount)) * 8)) free-  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices' instance'' (pPPhysicalDeviceCount) (pPPhysicalDevices))+  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDevices" (vkEnumeratePhysicalDevices'+                                                                instance''+                                                                (pPPhysicalDeviceCount)+                                                                (pPPhysicalDevices))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPhysicalDeviceCount' <- lift $ peek @Word32 pPPhysicalDeviceCount   pPhysicalDevices' <- lift $ generateM (fromIntegral (pPhysicalDeviceCount')) (\i -> do@@ -598,7 +609,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceProcAddr is null" Nothing Nothing   let vkGetDeviceProcAddr' = mkVkGetDeviceProcAddr vkGetDeviceProcAddrPtr   pName <- ContT $ useAsCString (name)-  r <- lift $ traceAroundEvent "vkGetDeviceProcAddr" (vkGetDeviceProcAddr' (deviceHandle (device)) pName)+  r <- lift $ traceAroundEvent "vkGetDeviceProcAddr" (vkGetDeviceProcAddr'+                                                        (deviceHandle (device))+                                                        pName)   pure $ (r)  @@ -718,7 +731,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetInstanceProcAddr is null" Nothing Nothing   let vkGetInstanceProcAddr' = mkVkGetInstanceProcAddr vkGetInstanceProcAddrPtr   pName <- ContT $ useAsCString (name)-  r <- lift $ traceAroundEvent "vkGetInstanceProcAddr" (vkGetInstanceProcAddr' (instanceHandle (instance')) pName)+  r <- lift $ traceAroundEvent "vkGetInstanceProcAddr" (vkGetInstanceProcAddr'+                                                          (instanceHandle (instance'))+                                                          pName)   pure $ (r)  @@ -753,7 +768,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceProperties is null" Nothing Nothing   let vkGetPhysicalDeviceProperties' = mkVkGetPhysicalDeviceProperties vkGetPhysicalDevicePropertiesPtr   pPProperties <- ContT (withZeroCStruct @PhysicalDeviceProperties)-  lift $ traceAroundEvent "vkGetPhysicalDeviceProperties" (vkGetPhysicalDeviceProperties' (physicalDeviceHandle (physicalDevice)) (pPProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceProperties" (vkGetPhysicalDeviceProperties'+                                                             (physicalDeviceHandle (physicalDevice))+                                                             (pPProperties))   pProperties <- lift $ peekCStruct @PhysicalDeviceProperties pPProperties   pure $ (pProperties) @@ -814,11 +831,17 @@   let vkGetPhysicalDeviceQueueFamilyProperties' = mkVkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyPropertiesPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPQueueFamilyPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties' physicalDevice' (pPQueueFamilyPropertyCount) (nullPtr))+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties'+                                                                        physicalDevice'+                                                                        (pPQueueFamilyPropertyCount)+                                                                        (nullPtr))   pQueueFamilyPropertyCount <- lift $ peek @Word32 pPQueueFamilyPropertyCount   pPQueueFamilyProperties <- ContT $ bracket (callocBytes @QueueFamilyProperties ((fromIntegral (pQueueFamilyPropertyCount)) * 24)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPQueueFamilyProperties `advancePtrBytes` (i * 24) :: Ptr QueueFamilyProperties) . ($ ())) [0..(fromIntegral (pQueueFamilyPropertyCount)) - 1]-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties' physicalDevice' (pPQueueFamilyPropertyCount) ((pPQueueFamilyProperties)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties" (vkGetPhysicalDeviceQueueFamilyProperties'+                                                                        physicalDevice'+                                                                        (pPQueueFamilyPropertyCount)+                                                                        ((pPQueueFamilyProperties)))   pQueueFamilyPropertyCount' <- lift $ peek @Word32 pPQueueFamilyPropertyCount   pQueueFamilyProperties' <- lift $ generateM (fromIntegral (pQueueFamilyPropertyCount')) (\i -> peekCStruct @QueueFamilyProperties (((pPQueueFamilyProperties) `advancePtrBytes` (24 * (i)) :: Ptr QueueFamilyProperties)))   pure $ (pQueueFamilyProperties')@@ -855,7 +878,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMemoryProperties is null" Nothing Nothing   let vkGetPhysicalDeviceMemoryProperties' = mkVkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryPropertiesPtr   pPMemoryProperties <- ContT (withZeroCStruct @PhysicalDeviceMemoryProperties)-  lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties" (vkGetPhysicalDeviceMemoryProperties' (physicalDeviceHandle (physicalDevice)) (pPMemoryProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties" (vkGetPhysicalDeviceMemoryProperties'+                                                                   (physicalDeviceHandle (physicalDevice))+                                                                   (pPMemoryProperties))   pMemoryProperties <- lift $ peekCStruct @PhysicalDeviceMemoryProperties pPMemoryProperties   pure $ (pMemoryProperties) @@ -891,7 +916,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFeatures is null" Nothing Nothing   let vkGetPhysicalDeviceFeatures' = mkVkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeaturesPtr   pPFeatures <- ContT (withZeroCStruct @PhysicalDeviceFeatures)-  lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures" (vkGetPhysicalDeviceFeatures' (physicalDeviceHandle (physicalDevice)) (pPFeatures))+  lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures" (vkGetPhysicalDeviceFeatures'+                                                           (physicalDeviceHandle (physicalDevice))+                                                           (pPFeatures))   pFeatures <- lift $ peekCStruct @PhysicalDeviceFeatures pPFeatures   pure $ (pFeatures) @@ -928,13 +955,17 @@                                      -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value                                      Format                                   -> io (FormatProperties)-getPhysicalDeviceFormatProperties physicalDevice format = liftIO . evalContT $ do+getPhysicalDeviceFormatProperties physicalDevice+                                    format = liftIO . evalContT $ do   let vkGetPhysicalDeviceFormatPropertiesPtr = pVkGetPhysicalDeviceFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceFormatPropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFormatProperties is null" Nothing Nothing   let vkGetPhysicalDeviceFormatProperties' = mkVkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatPropertiesPtr   pPFormatProperties <- ContT (withZeroCStruct @FormatProperties)-  lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties" (vkGetPhysicalDeviceFormatProperties' (physicalDeviceHandle (physicalDevice)) (format) (pPFormatProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties" (vkGetPhysicalDeviceFormatProperties'+                                                                   (physicalDeviceHandle (physicalDevice))+                                                                   (format)+                                                                   (pPFormatProperties))   pFormatProperties <- lift $ peekCStruct @FormatProperties pPFormatProperties   pure $ (pFormatProperties) @@ -1056,13 +1087,25 @@                                           -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.ImageCreateFlagBits' values                                           ImageCreateFlags                                        -> io (ImageFormatProperties)-getPhysicalDeviceImageFormatProperties physicalDevice format type' tiling usage flags = liftIO . evalContT $ do+getPhysicalDeviceImageFormatProperties physicalDevice+                                         format+                                         type'+                                         tiling+                                         usage+                                         flags = liftIO . evalContT $ do   let vkGetPhysicalDeviceImageFormatPropertiesPtr = pVkGetPhysicalDeviceImageFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceImageFormatPropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceImageFormatProperties is null" Nothing Nothing   let vkGetPhysicalDeviceImageFormatProperties' = mkVkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatPropertiesPtr   pPImageFormatProperties <- ContT (withZeroCStruct @ImageFormatProperties)-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties" (vkGetPhysicalDeviceImageFormatProperties' (physicalDeviceHandle (physicalDevice)) (format) (type') (tiling) (usage) (flags) (pPImageFormatProperties))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties" (vkGetPhysicalDeviceImageFormatProperties'+                                                                             (physicalDeviceHandle (physicalDevice))+                                                                             (format)+                                                                             (type')+                                                                             (tiling)+                                                                             (usage)+                                                                             (flags)+                                                                             (pPImageFormatProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pImageFormatProperties <- lift $ peekCStruct @ImageFormatProperties pPImageFormatProperties   pure $ (pImageFormatProperties)@@ -1237,7 +1280,15 @@     limits <- peekCStruct @PhysicalDeviceLimits ((p `plusPtr` 296 :: Ptr PhysicalDeviceLimits))     sparseProperties <- peekCStruct @PhysicalDeviceSparseProperties ((p `plusPtr` 800 :: Ptr PhysicalDeviceSparseProperties))     pure $ PhysicalDeviceProperties-             apiVersion driverVersion vendorID deviceID deviceType deviceName pipelineCacheUUID limits sparseProperties+             apiVersion+             driverVersion+             vendorID+             deviceID+             deviceType+             deviceName+             pipelineCacheUUID+             limits+             sparseProperties  instance Storable PhysicalDeviceProperties where   sizeOf ~_ = 824@@ -1406,7 +1457,11 @@     engineVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))     apiVersion <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))     pure $ ApplicationInfo-             pApplicationName' applicationVersion pEngineName' engineVersion apiVersion+             pApplicationName'+             applicationVersion+             pEngineName'+             engineVersion+             apiVersion  instance Zero ApplicationInfo where   zero = ApplicationInfo@@ -1552,7 +1607,8 @@     | Just Refl <- eqT @e @DebugReportCallbackCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss InstanceCreateInfo es, PokeChain es) => ToCStruct (InstanceCreateInfo es) where+instance ( Extendss InstanceCreateInfo es+         , PokeChain es ) => ToCStruct (InstanceCreateInfo es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p InstanceCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_INSTANCE_CREATE_INFO)@@ -1584,7 +1640,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss InstanceCreateInfo es, PeekChain es) => FromCStruct (InstanceCreateInfo es) where+instance ( Extendss InstanceCreateInfo es+         , PeekChain es ) => FromCStruct (InstanceCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1598,7 +1655,11 @@     ppEnabledExtensionNames <- peek @(Ptr (Ptr CChar)) ((p `plusPtr` 56 :: Ptr (Ptr (Ptr CChar))))     ppEnabledExtensionNames' <- generateM (fromIntegral enabledExtensionCount) (\i -> packCString =<< peek ((ppEnabledExtensionNames `advancePtrBytes` (8 * (i)) :: Ptr (Ptr CChar))))     pure $ InstanceCreateInfo-             next flags pApplicationInfo' ppEnabledLayerNames' ppEnabledExtensionNames'+             next+             flags+             pApplicationInfo'+             ppEnabledLayerNames'+             ppEnabledExtensionNames'  instance es ~ '[] => Zero (InstanceCreateInfo es) where   zero = InstanceCreateInfo@@ -1734,7 +1795,10 @@     timestampValidBits <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))     minImageTransferGranularity <- peekCStruct @Extent3D ((p `plusPtr` 12 :: Ptr Extent3D))     pure $ QueueFamilyProperties-             queueFlags queueCount timestampValidBits minImageTransferGranularity+             queueFlags+             queueCount+             timestampValidBits+             minImageTransferGranularity  instance Storable QueueFamilyProperties where   sizeOf ~_ = 24@@ -3517,7 +3581,61 @@     variableMultisampleRate <- peek @Bool32 ((p `plusPtr` 212 :: Ptr Bool32))     inheritedQueries <- peek @Bool32 ((p `plusPtr` 216 :: Ptr Bool32))     pure $ PhysicalDeviceFeatures-             (bool32ToBool robustBufferAccess) (bool32ToBool fullDrawIndexUint32) (bool32ToBool imageCubeArray) (bool32ToBool independentBlend) (bool32ToBool geometryShader) (bool32ToBool tessellationShader) (bool32ToBool sampleRateShading) (bool32ToBool dualSrcBlend) (bool32ToBool logicOp) (bool32ToBool multiDrawIndirect) (bool32ToBool drawIndirectFirstInstance) (bool32ToBool depthClamp) (bool32ToBool depthBiasClamp) (bool32ToBool fillModeNonSolid) (bool32ToBool depthBounds) (bool32ToBool wideLines) (bool32ToBool largePoints) (bool32ToBool alphaToOne) (bool32ToBool multiViewport) (bool32ToBool samplerAnisotropy) (bool32ToBool textureCompressionETC2) (bool32ToBool textureCompressionASTC_LDR) (bool32ToBool textureCompressionBC) (bool32ToBool occlusionQueryPrecise) (bool32ToBool pipelineStatisticsQuery) (bool32ToBool vertexPipelineStoresAndAtomics) (bool32ToBool fragmentStoresAndAtomics) (bool32ToBool shaderTessellationAndGeometryPointSize) (bool32ToBool shaderImageGatherExtended) (bool32ToBool shaderStorageImageExtendedFormats) (bool32ToBool shaderStorageImageMultisample) (bool32ToBool shaderStorageImageReadWithoutFormat) (bool32ToBool shaderStorageImageWriteWithoutFormat) (bool32ToBool shaderUniformBufferArrayDynamicIndexing) (bool32ToBool shaderSampledImageArrayDynamicIndexing) (bool32ToBool shaderStorageBufferArrayDynamicIndexing) (bool32ToBool shaderStorageImageArrayDynamicIndexing) (bool32ToBool shaderClipDistance) (bool32ToBool shaderCullDistance) (bool32ToBool shaderFloat64) (bool32ToBool shaderInt64) (bool32ToBool shaderInt16) (bool32ToBool shaderResourceResidency) (bool32ToBool shaderResourceMinLod) (bool32ToBool sparseBinding) (bool32ToBool sparseResidencyBuffer) (bool32ToBool sparseResidencyImage2D) (bool32ToBool sparseResidencyImage3D) (bool32ToBool sparseResidency2Samples) (bool32ToBool sparseResidency4Samples) (bool32ToBool sparseResidency8Samples) (bool32ToBool sparseResidency16Samples) (bool32ToBool sparseResidencyAliased) (bool32ToBool variableMultisampleRate) (bool32ToBool inheritedQueries)+             (bool32ToBool robustBufferAccess)+             (bool32ToBool fullDrawIndexUint32)+             (bool32ToBool imageCubeArray)+             (bool32ToBool independentBlend)+             (bool32ToBool geometryShader)+             (bool32ToBool tessellationShader)+             (bool32ToBool sampleRateShading)+             (bool32ToBool dualSrcBlend)+             (bool32ToBool logicOp)+             (bool32ToBool multiDrawIndirect)+             (bool32ToBool drawIndirectFirstInstance)+             (bool32ToBool depthClamp)+             (bool32ToBool depthBiasClamp)+             (bool32ToBool fillModeNonSolid)+             (bool32ToBool depthBounds)+             (bool32ToBool wideLines)+             (bool32ToBool largePoints)+             (bool32ToBool alphaToOne)+             (bool32ToBool multiViewport)+             (bool32ToBool samplerAnisotropy)+             (bool32ToBool textureCompressionETC2)+             (bool32ToBool textureCompressionASTC_LDR)+             (bool32ToBool textureCompressionBC)+             (bool32ToBool occlusionQueryPrecise)+             (bool32ToBool pipelineStatisticsQuery)+             (bool32ToBool vertexPipelineStoresAndAtomics)+             (bool32ToBool fragmentStoresAndAtomics)+             (bool32ToBool shaderTessellationAndGeometryPointSize)+             (bool32ToBool shaderImageGatherExtended)+             (bool32ToBool shaderStorageImageExtendedFormats)+             (bool32ToBool shaderStorageImageMultisample)+             (bool32ToBool shaderStorageImageReadWithoutFormat)+             (bool32ToBool shaderStorageImageWriteWithoutFormat)+             (bool32ToBool shaderUniformBufferArrayDynamicIndexing)+             (bool32ToBool shaderSampledImageArrayDynamicIndexing)+             (bool32ToBool shaderStorageBufferArrayDynamicIndexing)+             (bool32ToBool shaderStorageImageArrayDynamicIndexing)+             (bool32ToBool shaderClipDistance)+             (bool32ToBool shaderCullDistance)+             (bool32ToBool shaderFloat64)+             (bool32ToBool shaderInt64)+             (bool32ToBool shaderInt16)+             (bool32ToBool shaderResourceResidency)+             (bool32ToBool shaderResourceMinLod)+             (bool32ToBool sparseBinding)+             (bool32ToBool sparseResidencyBuffer)+             (bool32ToBool sparseResidencyImage2D)+             (bool32ToBool sparseResidencyImage3D)+             (bool32ToBool sparseResidency2Samples)+             (bool32ToBool sparseResidency4Samples)+             (bool32ToBool sparseResidency8Samples)+             (bool32ToBool sparseResidency16Samples)+             (bool32ToBool sparseResidencyAliased)+             (bool32ToBool variableMultisampleRate)+             (bool32ToBool inheritedQueries)  instance Storable PhysicalDeviceFeatures where   sizeOf ~_ = 220@@ -3680,7 +3798,11 @@     residencyAlignedMipSize <- peek @Bool32 ((p `plusPtr` 12 :: Ptr Bool32))     residencyNonResidentStrict <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     pure $ PhysicalDeviceSparseProperties-             (bool32ToBool residencyStandard2DBlockShape) (bool32ToBool residencyStandard2DMultisampleBlockShape) (bool32ToBool residencyStandard3DBlockShape) (bool32ToBool residencyAlignedMipSize) (bool32ToBool residencyNonResidentStrict)+             (bool32ToBool residencyStandard2DBlockShape)+             (bool32ToBool residencyStandard2DMultisampleBlockShape)+             (bool32ToBool residencyStandard3DBlockShape)+             (bool32ToBool residencyAlignedMipSize)+             (bool32ToBool residencyNonResidentStrict)  instance Storable PhysicalDeviceSparseProperties where   sizeOf ~_ = 20@@ -4970,7 +5092,119 @@     optimalBufferCopyRowPitchAlignment <- peek @DeviceSize ((p `plusPtr` 488 :: Ptr DeviceSize))     nonCoherentAtomSize <- peek @DeviceSize ((p `plusPtr` 496 :: Ptr DeviceSize))     pure $ PhysicalDeviceLimits-             maxImageDimension1D maxImageDimension2D maxImageDimension3D maxImageDimensionCube maxImageArrayLayers maxTexelBufferElements maxUniformBufferRange maxStorageBufferRange maxPushConstantsSize maxMemoryAllocationCount maxSamplerAllocationCount bufferImageGranularity sparseAddressSpaceSize maxBoundDescriptorSets maxPerStageDescriptorSamplers maxPerStageDescriptorUniformBuffers maxPerStageDescriptorStorageBuffers maxPerStageDescriptorSampledImages maxPerStageDescriptorStorageImages maxPerStageDescriptorInputAttachments maxPerStageResources maxDescriptorSetSamplers maxDescriptorSetUniformBuffers maxDescriptorSetUniformBuffersDynamic maxDescriptorSetStorageBuffers maxDescriptorSetStorageBuffersDynamic maxDescriptorSetSampledImages maxDescriptorSetStorageImages maxDescriptorSetInputAttachments maxVertexInputAttributes maxVertexInputBindings maxVertexInputAttributeOffset maxVertexInputBindingStride maxVertexOutputComponents maxTessellationGenerationLevel maxTessellationPatchSize maxTessellationControlPerVertexInputComponents maxTessellationControlPerVertexOutputComponents maxTessellationControlPerPatchOutputComponents maxTessellationControlTotalOutputComponents maxTessellationEvaluationInputComponents maxTessellationEvaluationOutputComponents maxGeometryShaderInvocations maxGeometryInputComponents maxGeometryOutputComponents maxGeometryOutputVertices maxGeometryTotalOutputComponents maxFragmentInputComponents maxFragmentOutputAttachments maxFragmentDualSrcAttachments maxFragmentCombinedOutputResources maxComputeSharedMemorySize ((maxComputeWorkGroupCount0, maxComputeWorkGroupCount1, maxComputeWorkGroupCount2)) maxComputeWorkGroupInvocations ((maxComputeWorkGroupSize0, maxComputeWorkGroupSize1, maxComputeWorkGroupSize2)) subPixelPrecisionBits subTexelPrecisionBits mipmapPrecisionBits maxDrawIndexedIndexValue maxDrawIndirectCount (coerce @CFloat @Float maxSamplerLodBias) (coerce @CFloat @Float maxSamplerAnisotropy) maxViewports ((maxViewportDimensions0, maxViewportDimensions1)) (((coerce @CFloat @Float viewportBoundsRange0), (coerce @CFloat @Float viewportBoundsRange1))) viewportSubPixelBits (coerce @CSize @Word64 minMemoryMapAlignment) minTexelBufferOffsetAlignment minUniformBufferOffsetAlignment minStorageBufferOffsetAlignment minTexelOffset maxTexelOffset minTexelGatherOffset maxTexelGatherOffset (coerce @CFloat @Float minInterpolationOffset) (coerce @CFloat @Float maxInterpolationOffset) subPixelInterpolationOffsetBits maxFramebufferWidth maxFramebufferHeight maxFramebufferLayers framebufferColorSampleCounts framebufferDepthSampleCounts framebufferStencilSampleCounts framebufferNoAttachmentsSampleCounts maxColorAttachments sampledImageColorSampleCounts sampledImageIntegerSampleCounts sampledImageDepthSampleCounts sampledImageStencilSampleCounts storageImageSampleCounts maxSampleMaskWords (bool32ToBool timestampComputeAndGraphics) (coerce @CFloat @Float timestampPeriod) maxClipDistances maxCullDistances maxCombinedClipAndCullDistances discreteQueuePriorities (((coerce @CFloat @Float pointSizeRange0), (coerce @CFloat @Float pointSizeRange1))) (((coerce @CFloat @Float lineWidthRange0), (coerce @CFloat @Float lineWidthRange1))) (coerce @CFloat @Float pointSizeGranularity) (coerce @CFloat @Float lineWidthGranularity) (bool32ToBool strictLines) (bool32ToBool standardSampleLocations) optimalBufferCopyOffsetAlignment optimalBufferCopyRowPitchAlignment nonCoherentAtomSize+             maxImageDimension1D+             maxImageDimension2D+             maxImageDimension3D+             maxImageDimensionCube+             maxImageArrayLayers+             maxTexelBufferElements+             maxUniformBufferRange+             maxStorageBufferRange+             maxPushConstantsSize+             maxMemoryAllocationCount+             maxSamplerAllocationCount+             bufferImageGranularity+             sparseAddressSpaceSize+             maxBoundDescriptorSets+             maxPerStageDescriptorSamplers+             maxPerStageDescriptorUniformBuffers+             maxPerStageDescriptorStorageBuffers+             maxPerStageDescriptorSampledImages+             maxPerStageDescriptorStorageImages+             maxPerStageDescriptorInputAttachments+             maxPerStageResources+             maxDescriptorSetSamplers+             maxDescriptorSetUniformBuffers+             maxDescriptorSetUniformBuffersDynamic+             maxDescriptorSetStorageBuffers+             maxDescriptorSetStorageBuffersDynamic+             maxDescriptorSetSampledImages+             maxDescriptorSetStorageImages+             maxDescriptorSetInputAttachments+             maxVertexInputAttributes+             maxVertexInputBindings+             maxVertexInputAttributeOffset+             maxVertexInputBindingStride+             maxVertexOutputComponents+             maxTessellationGenerationLevel+             maxTessellationPatchSize+             maxTessellationControlPerVertexInputComponents+             maxTessellationControlPerVertexOutputComponents+             maxTessellationControlPerPatchOutputComponents+             maxTessellationControlTotalOutputComponents+             maxTessellationEvaluationInputComponents+             maxTessellationEvaluationOutputComponents+             maxGeometryShaderInvocations+             maxGeometryInputComponents+             maxGeometryOutputComponents+             maxGeometryOutputVertices+             maxGeometryTotalOutputComponents+             maxFragmentInputComponents+             maxFragmentOutputAttachments+             maxFragmentDualSrcAttachments+             maxFragmentCombinedOutputResources+             maxComputeSharedMemorySize+             (( maxComputeWorkGroupCount0+              , maxComputeWorkGroupCount1+              , maxComputeWorkGroupCount2 ))+             maxComputeWorkGroupInvocations+             (( maxComputeWorkGroupSize0+              , maxComputeWorkGroupSize1+              , maxComputeWorkGroupSize2 ))+             subPixelPrecisionBits+             subTexelPrecisionBits+             mipmapPrecisionBits+             maxDrawIndexedIndexValue+             maxDrawIndirectCount+             (coerce @CFloat @Float maxSamplerLodBias)+             (coerce @CFloat @Float maxSamplerAnisotropy)+             maxViewports+             ((maxViewportDimensions0, maxViewportDimensions1))+             (( (coerce @CFloat @Float viewportBoundsRange0)+              , (coerce @CFloat @Float viewportBoundsRange1) ))+             viewportSubPixelBits+             (coerce @CSize @Word64 minMemoryMapAlignment)+             minTexelBufferOffsetAlignment+             minUniformBufferOffsetAlignment+             minStorageBufferOffsetAlignment+             minTexelOffset+             maxTexelOffset+             minTexelGatherOffset+             maxTexelGatherOffset+             (coerce @CFloat @Float minInterpolationOffset)+             (coerce @CFloat @Float maxInterpolationOffset)+             subPixelInterpolationOffsetBits+             maxFramebufferWidth+             maxFramebufferHeight+             maxFramebufferLayers+             framebufferColorSampleCounts+             framebufferDepthSampleCounts+             framebufferStencilSampleCounts+             framebufferNoAttachmentsSampleCounts+             maxColorAttachments+             sampledImageColorSampleCounts+             sampledImageIntegerSampleCounts+             sampledImageDepthSampleCounts+             sampledImageStencilSampleCounts+             storageImageSampleCounts+             maxSampleMaskWords+             (bool32ToBool timestampComputeAndGraphics)+             (coerce @CFloat @Float timestampPeriod)+             maxClipDistances+             maxCullDistances+             maxCombinedClipAndCullDistances+             discreteQueuePriorities+             (( (coerce @CFloat @Float pointSizeRange0)+              , (coerce @CFloat @Float pointSizeRange1) ))+             (( (coerce @CFloat @Float lineWidthRange0)+              , (coerce @CFloat @Float lineWidthRange1) ))+             (coerce @CFloat @Float pointSizeGranularity)+             (coerce @CFloat @Float lineWidthGranularity)+             (bool32ToBool strictLines)+             (bool32ToBool standardSampleLocations)+             optimalBufferCopyOffsetAlignment+             optimalBufferCopyRowPitchAlignment+             nonCoherentAtomSize  instance Storable PhysicalDeviceLimits where   sizeOf ~_ = 504
src/Vulkan/Core10/DeviceInitialization.hs-boot view
@@ -48,10 +48,12 @@ type role InstanceCreateInfo nominal data InstanceCreateInfo (es :: [Type]) -instance (Extendss InstanceCreateInfo es, PokeChain es) => ToCStruct (InstanceCreateInfo es)+instance ( Extendss InstanceCreateInfo es+         , PokeChain es ) => ToCStruct (InstanceCreateInfo es) instance Show (Chain es) => Show (InstanceCreateInfo es) -instance (Extendss InstanceCreateInfo es, PeekChain es) => FromCStruct (InstanceCreateInfo es)+instance ( Extendss InstanceCreateInfo es+         , PeekChain es ) => FromCStruct (InstanceCreateInfo es)   data MemoryHeap
src/Vulkan/Core10/Enums/AccessFlagBits.hs view
@@ -90,6 +90,7 @@ -- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT',                     | -- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT',                     | -- |                                                                             | 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR',              |+-- |                                                                             | 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT',                  | -- |                                                                             | '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',      |@@ -183,25 +184,29 @@ -- 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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment> -- within a render pass during subpass shading or fragment shading. Such@@ -210,7 +215,8 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformbuffer uniform buffer>, -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer>,@@ -222,7 +228,8 @@ -- or -- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -230,7 +237,8 @@ -- or -- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>, -- such as via@@ -243,7 +251,8 @@ -- 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@@ -253,7 +262,8 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via@@ -265,7 +275,8 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via@@ -278,13 +289,15 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT' -- pipeline stages. pattern ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = AccessFlagBits 0x00000400+ -- | 'ACCESS_TRANSFER_READ_BIT' specifies read access to an image or buffer -- in a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy> -- operation. Such access occurs in the -- '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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear>@@ -293,47 +306,55 @@ -- operation. Such access occurs in the -- '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+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 -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic@@ -341,7 +362,8 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>@@ -349,6 +371,7 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage. pattern ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = AccessFlagBits 0x00400000+ -- | '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@@ -359,6 +382,7 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' -- pipeline stage. pattern ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = AccessFlagBits 0x00200000+ -- | 'ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read access -- to -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,@@ -368,11 +392,13 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT' -- pipeline stage. pattern ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = AccessFlagBits 0x00080000+ -- | 'ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT' specifies read access to a -- 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+ -- | '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'@@ -380,6 +406,7 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- pipeline stage. pattern ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = AccessFlagBits 0x08000000+ -- | 'ACCESS_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'@@ -387,14 +414,16 @@ -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT' -- pipeline stage. pattern ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = AccessFlagBits 0x04000000+ -- | 'ACCESS_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.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+pattern ACCESS_NONE = AccessFlagBits 0x00000000  conNameAccessFlagBits :: String conNameAccessFlagBits = "AccessFlagBits"@@ -404,44 +433,104 @@  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_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_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, "ACCELERATION_STRUCTURE_WRITE_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_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_NONE                              , "NONE")+  [+    ( 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_ACCELERATION_STRUCTURE_WRITE_BIT_KHR+    , "ACCELERATION_STRUCTURE_WRITE_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_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_NONE, "NONE")   ]  instance Show AccessFlagBits where-  showsPrec = enumShowsPrec enumPrefixAccessFlagBits-                            showTableAccessFlagBits-                            conNameAccessFlagBits-                            (\(AccessFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAccessFlagBits+      showTableAccessFlagBits+      conNameAccessFlagBits+      (\(AccessFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AccessFlagBits where-  readPrec = enumReadPrec enumPrefixAccessFlagBits showTableAccessFlagBits conNameAccessFlagBits AccessFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixAccessFlagBits+      showTableAccessFlagBits+      conNameAccessFlagBits+      AccessFlagBits
src/Vulkan/Core10/Enums/AttachmentDescriptionFlagBits.hs view
@@ -40,18 +40,26 @@ enumPrefixAttachmentDescriptionFlagBits = "ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT"  showTableAttachmentDescriptionFlagBits :: [(AttachmentDescriptionFlagBits, String)]-showTableAttachmentDescriptionFlagBits = [(ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT, "")]+showTableAttachmentDescriptionFlagBits =+  [+    ( ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT+    , ""+    )+  ]  instance Show AttachmentDescriptionFlagBits where-  showsPrec = enumShowsPrec enumPrefixAttachmentDescriptionFlagBits-                            showTableAttachmentDescriptionFlagBits-                            conNameAttachmentDescriptionFlagBits-                            (\(AttachmentDescriptionFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAttachmentDescriptionFlagBits+      showTableAttachmentDescriptionFlagBits+      conNameAttachmentDescriptionFlagBits+      (\(AttachmentDescriptionFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AttachmentDescriptionFlagBits where-  readPrec = enumReadPrec enumPrefixAttachmentDescriptionFlagBits-                          showTableAttachmentDescriptionFlagBits-                          conNameAttachmentDescriptionFlagBits-                          AttachmentDescriptionFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixAttachmentDescriptionFlagBits+      showTableAttachmentDescriptionFlagBits+      conNameAttachmentDescriptionFlagBits+      AttachmentDescriptionFlagBits
src/Vulkan/Core10/Enums/AttachmentLoadOp.hs view
@@ -34,7 +34,8 @@ -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT'. -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_READ_BIT'.-pattern ATTACHMENT_LOAD_OP_LOAD      = AttachmentLoadOp 0+pattern ATTACHMENT_LOAD_OP_LOAD = AttachmentLoadOp 0+ -- | 'ATTACHMENT_LOAD_OP_CLEAR' specifies that the contents within the render -- area will be cleared to a uniform value, which is specified when a -- render pass instance is begun. For attachments with a depth\/stencil@@ -42,7 +43,8 @@ -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'. -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.-pattern ATTACHMENT_LOAD_OP_CLEAR     = AttachmentLoadOp 1+pattern ATTACHMENT_LOAD_OP_CLEAR = AttachmentLoadOp 1+ -- | 'ATTACHMENT_LOAD_OP_DONT_CARE' specifies that the previous contents -- within the area need not be preserved; the contents of the attachment -- will be undefined inside the render area. For attachments with a@@ -51,16 +53,21 @@ -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'. pattern ATTACHMENT_LOAD_OP_DONT_CARE = AttachmentLoadOp 2+ -- | 'ATTACHMENT_LOAD_OP_NONE_EXT' specifies that the previous contents of -- the image within the render area will be preserved, but the contents of -- the attachment will be undefined inside the render pass. No access type -- is used as the image is not accessed.-pattern ATTACHMENT_LOAD_OP_NONE_EXT  = AttachmentLoadOp 1000400000-{-# complete ATTACHMENT_LOAD_OP_LOAD,-             ATTACHMENT_LOAD_OP_CLEAR,-             ATTACHMENT_LOAD_OP_DONT_CARE,-             ATTACHMENT_LOAD_OP_NONE_EXT :: AttachmentLoadOp #-}+pattern ATTACHMENT_LOAD_OP_NONE_EXT = AttachmentLoadOp 1000400000 +{-# COMPLETE+  ATTACHMENT_LOAD_OP_LOAD+  , ATTACHMENT_LOAD_OP_CLEAR+  , ATTACHMENT_LOAD_OP_DONT_CARE+  , ATTACHMENT_LOAD_OP_NONE_EXT ::+    AttachmentLoadOp+  #-}+ conNameAttachmentLoadOp :: String conNameAttachmentLoadOp = "AttachmentLoadOp" @@ -69,19 +76,25 @@  showTableAttachmentLoadOp :: [(AttachmentLoadOp, String)] showTableAttachmentLoadOp =-  [ (ATTACHMENT_LOAD_OP_LOAD     , "LOAD")-  , (ATTACHMENT_LOAD_OP_CLEAR    , "CLEAR")+  [ (ATTACHMENT_LOAD_OP_LOAD, "LOAD")+  , (ATTACHMENT_LOAD_OP_CLEAR, "CLEAR")   , (ATTACHMENT_LOAD_OP_DONT_CARE, "DONT_CARE")-  , (ATTACHMENT_LOAD_OP_NONE_EXT , "NONE_EXT")+  , (ATTACHMENT_LOAD_OP_NONE_EXT, "NONE_EXT")   ]  instance Show AttachmentLoadOp where-  showsPrec = enumShowsPrec enumPrefixAttachmentLoadOp-                            showTableAttachmentLoadOp-                            conNameAttachmentLoadOp-                            (\(AttachmentLoadOp x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAttachmentLoadOp+      showTableAttachmentLoadOp+      conNameAttachmentLoadOp+      (\(AttachmentLoadOp x) -> x)+      (showsPrec 11)  instance Read AttachmentLoadOp where-  readPrec = enumReadPrec enumPrefixAttachmentLoadOp showTableAttachmentLoadOp conNameAttachmentLoadOp AttachmentLoadOp-+  readPrec =+    enumReadPrec+      enumPrefixAttachmentLoadOp+      showTableAttachmentLoadOp+      conNameAttachmentLoadOp+      AttachmentLoadOp
src/Vulkan/Core10/Enums/AttachmentStoreOp.hs view
@@ -41,7 +41,8 @@ -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT'. -- For attachments with a color format, this uses the access type -- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_COLOR_ATTACHMENT_WRITE_BIT'.-pattern ATTACHMENT_STORE_OP_STORE     = AttachmentStoreOp 0+pattern ATTACHMENT_STORE_OP_STORE = AttachmentStoreOp 0+ -- | 'ATTACHMENT_STORE_OP_DONT_CARE' specifies the contents within the render -- area are not needed after rendering, and /may/ be discarded; the -- contents of the attachment will be undefined inside the render area. For@@ -50,15 +51,20 @@ -- 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' 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 :: AttachmentStoreOp #-}+pattern ATTACHMENT_STORE_OP_NONE = AttachmentStoreOp 1000301000 +{-# COMPLETE+  ATTACHMENT_STORE_OP_STORE+  , ATTACHMENT_STORE_OP_DONT_CARE+  , ATTACHMENT_STORE_OP_NONE ::+    AttachmentStoreOp+  #-}+ conNameAttachmentStoreOp :: String conNameAttachmentStoreOp = "AttachmentStoreOp" @@ -67,19 +73,24 @@  showTableAttachmentStoreOp :: [(AttachmentStoreOp, String)] showTableAttachmentStoreOp =-  [ (ATTACHMENT_STORE_OP_STORE    , "STORE")+  [ (ATTACHMENT_STORE_OP_STORE, "STORE")   , (ATTACHMENT_STORE_OP_DONT_CARE, "DONT_CARE")-  , (ATTACHMENT_STORE_OP_NONE     , "NONE")+  , (ATTACHMENT_STORE_OP_NONE, "NONE")   ]  instance Show AttachmentStoreOp where-  showsPrec = enumShowsPrec enumPrefixAttachmentStoreOp-                            showTableAttachmentStoreOp-                            conNameAttachmentStoreOp-                            (\(AttachmentStoreOp x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAttachmentStoreOp+      showTableAttachmentStoreOp+      conNameAttachmentStoreOp+      (\(AttachmentStoreOp x) -> x)+      (showsPrec 11)  instance Read AttachmentStoreOp where   readPrec =-    enumReadPrec enumPrefixAttachmentStoreOp showTableAttachmentStoreOp conNameAttachmentStoreOp AttachmentStoreOp-+    enumReadPrec+      enumPrefixAttachmentStoreOp+      showTableAttachmentStoreOp+      conNameAttachmentStoreOp+      AttachmentStoreOp
src/Vulkan/Core10/Enums/BlendFactor.hs view
@@ -107,68 +107,91 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' newtype BlendFactor = BlendFactor Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ZERO"-pattern BLEND_FACTOR_ZERO                     = BlendFactor 0+pattern BLEND_FACTOR_ZERO = BlendFactor 0+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE"-pattern BLEND_FACTOR_ONE                      = BlendFactor 1+pattern BLEND_FACTOR_ONE = BlendFactor 1+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_COLOR"-pattern BLEND_FACTOR_SRC_COLOR                = BlendFactor 2+pattern BLEND_FACTOR_SRC_COLOR = BlendFactor 2+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR"-pattern BLEND_FACTOR_ONE_MINUS_SRC_COLOR      = BlendFactor 3+pattern BLEND_FACTOR_ONE_MINUS_SRC_COLOR = BlendFactor 3+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_COLOR"-pattern BLEND_FACTOR_DST_COLOR                = BlendFactor 4+pattern BLEND_FACTOR_DST_COLOR = BlendFactor 4+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR"-pattern BLEND_FACTOR_ONE_MINUS_DST_COLOR      = BlendFactor 5+pattern BLEND_FACTOR_ONE_MINUS_DST_COLOR = BlendFactor 5+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA"-pattern BLEND_FACTOR_SRC_ALPHA                = BlendFactor 6+pattern BLEND_FACTOR_SRC_ALPHA = BlendFactor 6+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA"-pattern BLEND_FACTOR_ONE_MINUS_SRC_ALPHA      = BlendFactor 7+pattern BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = BlendFactor 7+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_DST_ALPHA"-pattern BLEND_FACTOR_DST_ALPHA                = BlendFactor 8+pattern BLEND_FACTOR_DST_ALPHA = BlendFactor 8+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA"-pattern BLEND_FACTOR_ONE_MINUS_DST_ALPHA      = BlendFactor 9+pattern BLEND_FACTOR_ONE_MINUS_DST_ALPHA = BlendFactor 9+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_COLOR"-pattern BLEND_FACTOR_CONSTANT_COLOR           = BlendFactor 10+pattern BLEND_FACTOR_CONSTANT_COLOR = BlendFactor 10+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR" pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = BlendFactor 11+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_CONSTANT_ALPHA"-pattern BLEND_FACTOR_CONSTANT_ALPHA           = BlendFactor 12+pattern BLEND_FACTOR_CONSTANT_ALPHA = BlendFactor 12+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA" pattern BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = BlendFactor 13+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE"-pattern BLEND_FACTOR_SRC_ALPHA_SATURATE       = BlendFactor 14+pattern BLEND_FACTOR_SRC_ALPHA_SATURATE = BlendFactor 14+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_COLOR"-pattern BLEND_FACTOR_SRC1_COLOR               = BlendFactor 15+pattern BLEND_FACTOR_SRC1_COLOR = BlendFactor 15+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR"-pattern BLEND_FACTOR_ONE_MINUS_SRC1_COLOR     = BlendFactor 16+pattern BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = BlendFactor 16+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_SRC1_ALPHA"-pattern BLEND_FACTOR_SRC1_ALPHA               = BlendFactor 17+pattern BLEND_FACTOR_SRC1_ALPHA = BlendFactor 17+ -- No documentation found for Nested "VkBlendFactor" "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA"-pattern BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA     = BlendFactor 18-{-# complete BLEND_FACTOR_ZERO,-             BLEND_FACTOR_ONE,-             BLEND_FACTOR_SRC_COLOR,-             BLEND_FACTOR_ONE_MINUS_SRC_COLOR,-             BLEND_FACTOR_DST_COLOR,-             BLEND_FACTOR_ONE_MINUS_DST_COLOR,-             BLEND_FACTOR_SRC_ALPHA,-             BLEND_FACTOR_ONE_MINUS_SRC_ALPHA,-             BLEND_FACTOR_DST_ALPHA,-             BLEND_FACTOR_ONE_MINUS_DST_ALPHA,-             BLEND_FACTOR_CONSTANT_COLOR,-             BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR,-             BLEND_FACTOR_CONSTANT_ALPHA,-             BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA,-             BLEND_FACTOR_SRC_ALPHA_SATURATE,-             BLEND_FACTOR_SRC1_COLOR,-             BLEND_FACTOR_ONE_MINUS_SRC1_COLOR,-             BLEND_FACTOR_SRC1_ALPHA,-             BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA :: BlendFactor #-}+pattern BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = BlendFactor 18 +{-# COMPLETE+  BLEND_FACTOR_ZERO+  , BLEND_FACTOR_ONE+  , BLEND_FACTOR_SRC_COLOR+  , BLEND_FACTOR_ONE_MINUS_SRC_COLOR+  , BLEND_FACTOR_DST_COLOR+  , BLEND_FACTOR_ONE_MINUS_DST_COLOR+  , BLEND_FACTOR_SRC_ALPHA+  , BLEND_FACTOR_ONE_MINUS_SRC_ALPHA+  , BLEND_FACTOR_DST_ALPHA+  , BLEND_FACTOR_ONE_MINUS_DST_ALPHA+  , BLEND_FACTOR_CONSTANT_COLOR+  , BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR+  , BLEND_FACTOR_CONSTANT_ALPHA+  , BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA+  , BLEND_FACTOR_SRC_ALPHA_SATURATE+  , BLEND_FACTOR_SRC1_COLOR+  , BLEND_FACTOR_ONE_MINUS_SRC1_COLOR+  , BLEND_FACTOR_SRC1_ALPHA+  , BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA ::+    BlendFactor+  #-}+ conNameBlendFactor :: String conNameBlendFactor = "BlendFactor" @@ -177,31 +200,64 @@  showTableBlendFactor :: [(BlendFactor, String)] showTableBlendFactor =-  [ (BLEND_FACTOR_ZERO                    , "ZERO")-  , (BLEND_FACTOR_ONE                     , "ONE")-  , (BLEND_FACTOR_SRC_COLOR               , "SRC_COLOR")-  , (BLEND_FACTOR_ONE_MINUS_SRC_COLOR     , "ONE_MINUS_SRC_COLOR")-  , (BLEND_FACTOR_DST_COLOR               , "DST_COLOR")-  , (BLEND_FACTOR_ONE_MINUS_DST_COLOR     , "ONE_MINUS_DST_COLOR")-  , (BLEND_FACTOR_SRC_ALPHA               , "SRC_ALPHA")-  , (BLEND_FACTOR_ONE_MINUS_SRC_ALPHA     , "ONE_MINUS_SRC_ALPHA")-  , (BLEND_FACTOR_DST_ALPHA               , "DST_ALPHA")-  , (BLEND_FACTOR_ONE_MINUS_DST_ALPHA     , "ONE_MINUS_DST_ALPHA")-  , (BLEND_FACTOR_CONSTANT_COLOR          , "CONSTANT_COLOR")-  , (BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, "ONE_MINUS_CONSTANT_COLOR")-  , (BLEND_FACTOR_CONSTANT_ALPHA          , "CONSTANT_ALPHA")-  , (BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, "ONE_MINUS_CONSTANT_ALPHA")-  , (BLEND_FACTOR_SRC_ALPHA_SATURATE      , "SRC_ALPHA_SATURATE")-  , (BLEND_FACTOR_SRC1_COLOR              , "SRC1_COLOR")-  , (BLEND_FACTOR_ONE_MINUS_SRC1_COLOR    , "ONE_MINUS_SRC1_COLOR")-  , (BLEND_FACTOR_SRC1_ALPHA              , "SRC1_ALPHA")-  , (BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA    , "ONE_MINUS_SRC1_ALPHA")+  [ (BLEND_FACTOR_ZERO, "ZERO")+  , (BLEND_FACTOR_ONE, "ONE")+  , (BLEND_FACTOR_SRC_COLOR, "SRC_COLOR")+  ,+    ( BLEND_FACTOR_ONE_MINUS_SRC_COLOR+    , "ONE_MINUS_SRC_COLOR"+    )+  , (BLEND_FACTOR_DST_COLOR, "DST_COLOR")+  ,+    ( BLEND_FACTOR_ONE_MINUS_DST_COLOR+    , "ONE_MINUS_DST_COLOR"+    )+  , (BLEND_FACTOR_SRC_ALPHA, "SRC_ALPHA")+  ,+    ( BLEND_FACTOR_ONE_MINUS_SRC_ALPHA+    , "ONE_MINUS_SRC_ALPHA"+    )+  , (BLEND_FACTOR_DST_ALPHA, "DST_ALPHA")+  ,+    ( BLEND_FACTOR_ONE_MINUS_DST_ALPHA+    , "ONE_MINUS_DST_ALPHA"+    )+  , (BLEND_FACTOR_CONSTANT_COLOR, "CONSTANT_COLOR")+  ,+    ( BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR+    , "ONE_MINUS_CONSTANT_COLOR"+    )+  , (BLEND_FACTOR_CONSTANT_ALPHA, "CONSTANT_ALPHA")+  ,+    ( BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA+    , "ONE_MINUS_CONSTANT_ALPHA"+    )+  , (BLEND_FACTOR_SRC_ALPHA_SATURATE, "SRC_ALPHA_SATURATE")+  , (BLEND_FACTOR_SRC1_COLOR, "SRC1_COLOR")+  ,+    ( BLEND_FACTOR_ONE_MINUS_SRC1_COLOR+    , "ONE_MINUS_SRC1_COLOR"+    )+  , (BLEND_FACTOR_SRC1_ALPHA, "SRC1_ALPHA")+  ,+    ( BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA+    , "ONE_MINUS_SRC1_ALPHA"+    )   ]  instance Show BlendFactor where   showsPrec =-    enumShowsPrec enumPrefixBlendFactor showTableBlendFactor conNameBlendFactor (\(BlendFactor x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixBlendFactor+      showTableBlendFactor+      conNameBlendFactor+      (\(BlendFactor x) -> x)+      (showsPrec 11)  instance Read BlendFactor where-  readPrec = enumReadPrec enumPrefixBlendFactor showTableBlendFactor conNameBlendFactor BlendFactor-+  readPrec =+    enumReadPrec+      enumPrefixBlendFactor+      showTableBlendFactor+      conNameBlendFactor+      BlendFactor
src/Vulkan/Core10/Enums/BlendOp.hs view
@@ -134,164 +134,220 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>,+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendEquationEXT', -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' newtype BlendOp = BlendOp Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_ADD"-pattern BLEND_OP_ADD                    = BlendOp 0+pattern BLEND_OP_ADD = BlendOp 0+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SUBTRACT"-pattern BLEND_OP_SUBTRACT               = BlendOp 1+pattern BLEND_OP_SUBTRACT = BlendOp 1+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_REVERSE_SUBTRACT"-pattern BLEND_OP_REVERSE_SUBTRACT       = BlendOp 2+pattern BLEND_OP_REVERSE_SUBTRACT = BlendOp 2+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MIN"-pattern BLEND_OP_MIN                    = BlendOp 3+pattern BLEND_OP_MIN = BlendOp 3+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MAX"-pattern BLEND_OP_MAX                    = BlendOp 4+pattern BLEND_OP_MAX = BlendOp 4+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_BLUE_EXT"-pattern BLEND_OP_BLUE_EXT               = BlendOp 1000148045+pattern BLEND_OP_BLUE_EXT = BlendOp 1000148045+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_GREEN_EXT"-pattern BLEND_OP_GREEN_EXT              = BlendOp 1000148044+pattern BLEND_OP_GREEN_EXT = BlendOp 1000148044+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_RED_EXT"-pattern BLEND_OP_RED_EXT                = BlendOp 1000148043+pattern BLEND_OP_RED_EXT = BlendOp 1000148043+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_OVG_EXT"-pattern BLEND_OP_INVERT_OVG_EXT         = BlendOp 1000148042+pattern BLEND_OP_INVERT_OVG_EXT = BlendOp 1000148042+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_CONTRAST_EXT"-pattern BLEND_OP_CONTRAST_EXT           = BlendOp 1000148041+pattern BLEND_OP_CONTRAST_EXT = BlendOp 1000148041+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MINUS_CLAMPED_EXT"-pattern BLEND_OP_MINUS_CLAMPED_EXT      = BlendOp 1000148040+pattern BLEND_OP_MINUS_CLAMPED_EXT = BlendOp 1000148040+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MINUS_EXT"-pattern BLEND_OP_MINUS_EXT              = BlendOp 1000148039+pattern BLEND_OP_MINUS_EXT = BlendOp 1000148039+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_DARKER_EXT"-pattern BLEND_OP_PLUS_DARKER_EXT        = BlendOp 1000148038+pattern BLEND_OP_PLUS_DARKER_EXT = BlendOp 1000148038+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT" pattern BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = BlendOp 1000148037+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_CLAMPED_EXT"-pattern BLEND_OP_PLUS_CLAMPED_EXT       = BlendOp 1000148036+pattern BLEND_OP_PLUS_CLAMPED_EXT = BlendOp 1000148036+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PLUS_EXT"-pattern BLEND_OP_PLUS_EXT               = BlendOp 1000148035+pattern BLEND_OP_PLUS_EXT = BlendOp 1000148035+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_LUMINOSITY_EXT"-pattern BLEND_OP_HSL_LUMINOSITY_EXT     = BlendOp 1000148034+pattern BLEND_OP_HSL_LUMINOSITY_EXT = BlendOp 1000148034+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_COLOR_EXT"-pattern BLEND_OP_HSL_COLOR_EXT          = BlendOp 1000148033+pattern BLEND_OP_HSL_COLOR_EXT = BlendOp 1000148033+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_SATURATION_EXT"-pattern BLEND_OP_HSL_SATURATION_EXT     = BlendOp 1000148032+pattern BLEND_OP_HSL_SATURATION_EXT = BlendOp 1000148032+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HSL_HUE_EXT"-pattern BLEND_OP_HSL_HUE_EXT            = BlendOp 1000148031+pattern BLEND_OP_HSL_HUE_EXT = BlendOp 1000148031+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HARDMIX_EXT"-pattern BLEND_OP_HARDMIX_EXT            = BlendOp 1000148030+pattern BLEND_OP_HARDMIX_EXT = BlendOp 1000148030+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_PINLIGHT_EXT"-pattern BLEND_OP_PINLIGHT_EXT           = BlendOp 1000148029+pattern BLEND_OP_PINLIGHT_EXT = BlendOp 1000148029+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARLIGHT_EXT"-pattern BLEND_OP_LINEARLIGHT_EXT        = BlendOp 1000148028+pattern BLEND_OP_LINEARLIGHT_EXT = BlendOp 1000148028+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_VIVIDLIGHT_EXT"-pattern BLEND_OP_VIVIDLIGHT_EXT         = BlendOp 1000148027+pattern BLEND_OP_VIVIDLIGHT_EXT = BlendOp 1000148027+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARBURN_EXT"-pattern BLEND_OP_LINEARBURN_EXT         = BlendOp 1000148026+pattern BLEND_OP_LINEARBURN_EXT = BlendOp 1000148026+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LINEARDODGE_EXT"-pattern BLEND_OP_LINEARDODGE_EXT        = BlendOp 1000148025+pattern BLEND_OP_LINEARDODGE_EXT = BlendOp 1000148025+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_RGB_EXT"-pattern BLEND_OP_INVERT_RGB_EXT         = BlendOp 1000148024+pattern BLEND_OP_INVERT_RGB_EXT = BlendOp 1000148024+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_INVERT_EXT"-pattern BLEND_OP_INVERT_EXT             = BlendOp 1000148023+pattern BLEND_OP_INVERT_EXT = BlendOp 1000148023+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_EXCLUSION_EXT"-pattern BLEND_OP_EXCLUSION_EXT          = BlendOp 1000148022+pattern BLEND_OP_EXCLUSION_EXT = BlendOp 1000148022+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DIFFERENCE_EXT"-pattern BLEND_OP_DIFFERENCE_EXT         = BlendOp 1000148021+pattern BLEND_OP_DIFFERENCE_EXT = BlendOp 1000148021+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SOFTLIGHT_EXT"-pattern BLEND_OP_SOFTLIGHT_EXT          = BlendOp 1000148020+pattern BLEND_OP_SOFTLIGHT_EXT = BlendOp 1000148020+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_HARDLIGHT_EXT"-pattern BLEND_OP_HARDLIGHT_EXT          = BlendOp 1000148019+pattern BLEND_OP_HARDLIGHT_EXT = BlendOp 1000148019+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_COLORBURN_EXT"-pattern BLEND_OP_COLORBURN_EXT          = BlendOp 1000148018+pattern BLEND_OP_COLORBURN_EXT = BlendOp 1000148018+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_COLORDODGE_EXT"-pattern BLEND_OP_COLORDODGE_EXT         = BlendOp 1000148017+pattern BLEND_OP_COLORDODGE_EXT = BlendOp 1000148017+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_LIGHTEN_EXT"-pattern BLEND_OP_LIGHTEN_EXT            = BlendOp 1000148016+pattern BLEND_OP_LIGHTEN_EXT = BlendOp 1000148016+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DARKEN_EXT"-pattern BLEND_OP_DARKEN_EXT             = BlendOp 1000148015+pattern BLEND_OP_DARKEN_EXT = BlendOp 1000148015+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_OVERLAY_EXT"-pattern BLEND_OP_OVERLAY_EXT            = BlendOp 1000148014+pattern BLEND_OP_OVERLAY_EXT = BlendOp 1000148014+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SCREEN_EXT"-pattern BLEND_OP_SCREEN_EXT             = BlendOp 1000148013+pattern BLEND_OP_SCREEN_EXT = BlendOp 1000148013+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_MULTIPLY_EXT"-pattern BLEND_OP_MULTIPLY_EXT           = BlendOp 1000148012+pattern BLEND_OP_MULTIPLY_EXT = BlendOp 1000148012+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_XOR_EXT"-pattern BLEND_OP_XOR_EXT                = BlendOp 1000148011+pattern BLEND_OP_XOR_EXT = BlendOp 1000148011+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_ATOP_EXT"-pattern BLEND_OP_DST_ATOP_EXT           = BlendOp 1000148010+pattern BLEND_OP_DST_ATOP_EXT = BlendOp 1000148010+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_ATOP_EXT"-pattern BLEND_OP_SRC_ATOP_EXT           = BlendOp 1000148009+pattern BLEND_OP_SRC_ATOP_EXT = BlendOp 1000148009+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_OUT_EXT"-pattern BLEND_OP_DST_OUT_EXT            = BlendOp 1000148008+pattern BLEND_OP_DST_OUT_EXT = BlendOp 1000148008+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_OUT_EXT"-pattern BLEND_OP_SRC_OUT_EXT            = BlendOp 1000148007+pattern BLEND_OP_SRC_OUT_EXT = BlendOp 1000148007+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_IN_EXT"-pattern BLEND_OP_DST_IN_EXT             = BlendOp 1000148006+pattern BLEND_OP_DST_IN_EXT = BlendOp 1000148006+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_IN_EXT"-pattern BLEND_OP_SRC_IN_EXT             = BlendOp 1000148005+pattern BLEND_OP_SRC_IN_EXT = BlendOp 1000148005+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_OVER_EXT"-pattern BLEND_OP_DST_OVER_EXT           = BlendOp 1000148004+pattern BLEND_OP_DST_OVER_EXT = BlendOp 1000148004+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_OVER_EXT"-pattern BLEND_OP_SRC_OVER_EXT           = BlendOp 1000148003+pattern BLEND_OP_SRC_OVER_EXT = BlendOp 1000148003+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_DST_EXT"-pattern BLEND_OP_DST_EXT                = BlendOp 1000148002+pattern BLEND_OP_DST_EXT = BlendOp 1000148002+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_SRC_EXT"-pattern BLEND_OP_SRC_EXT                = BlendOp 1000148001+pattern BLEND_OP_SRC_EXT = BlendOp 1000148001+ -- No documentation found for Nested "VkBlendOp" "VK_BLEND_OP_ZERO_EXT"-pattern BLEND_OP_ZERO_EXT               = BlendOp 1000148000-{-# complete BLEND_OP_ADD,-             BLEND_OP_SUBTRACT,-             BLEND_OP_REVERSE_SUBTRACT,-             BLEND_OP_MIN,-             BLEND_OP_MAX,-             BLEND_OP_BLUE_EXT,-             BLEND_OP_GREEN_EXT,-             BLEND_OP_RED_EXT,-             BLEND_OP_INVERT_OVG_EXT,-             BLEND_OP_CONTRAST_EXT,-             BLEND_OP_MINUS_CLAMPED_EXT,-             BLEND_OP_MINUS_EXT,-             BLEND_OP_PLUS_DARKER_EXT,-             BLEND_OP_PLUS_CLAMPED_ALPHA_EXT,-             BLEND_OP_PLUS_CLAMPED_EXT,-             BLEND_OP_PLUS_EXT,-             BLEND_OP_HSL_LUMINOSITY_EXT,-             BLEND_OP_HSL_COLOR_EXT,-             BLEND_OP_HSL_SATURATION_EXT,-             BLEND_OP_HSL_HUE_EXT,-             BLEND_OP_HARDMIX_EXT,-             BLEND_OP_PINLIGHT_EXT,-             BLEND_OP_LINEARLIGHT_EXT,-             BLEND_OP_VIVIDLIGHT_EXT,-             BLEND_OP_LINEARBURN_EXT,-             BLEND_OP_LINEARDODGE_EXT,-             BLEND_OP_INVERT_RGB_EXT,-             BLEND_OP_INVERT_EXT,-             BLEND_OP_EXCLUSION_EXT,-             BLEND_OP_DIFFERENCE_EXT,-             BLEND_OP_SOFTLIGHT_EXT,-             BLEND_OP_HARDLIGHT_EXT,-             BLEND_OP_COLORBURN_EXT,-             BLEND_OP_COLORDODGE_EXT,-             BLEND_OP_LIGHTEN_EXT,-             BLEND_OP_DARKEN_EXT,-             BLEND_OP_OVERLAY_EXT,-             BLEND_OP_SCREEN_EXT,-             BLEND_OP_MULTIPLY_EXT,-             BLEND_OP_XOR_EXT,-             BLEND_OP_DST_ATOP_EXT,-             BLEND_OP_SRC_ATOP_EXT,-             BLEND_OP_DST_OUT_EXT,-             BLEND_OP_SRC_OUT_EXT,-             BLEND_OP_DST_IN_EXT,-             BLEND_OP_SRC_IN_EXT,-             BLEND_OP_DST_OVER_EXT,-             BLEND_OP_SRC_OVER_EXT,-             BLEND_OP_DST_EXT,-             BLEND_OP_SRC_EXT,-             BLEND_OP_ZERO_EXT :: BlendOp #-}+pattern BLEND_OP_ZERO_EXT = BlendOp 1000148000 +{-# COMPLETE+  BLEND_OP_ADD+  , BLEND_OP_SUBTRACT+  , BLEND_OP_REVERSE_SUBTRACT+  , BLEND_OP_MIN+  , BLEND_OP_MAX+  , BLEND_OP_BLUE_EXT+  , BLEND_OP_GREEN_EXT+  , BLEND_OP_RED_EXT+  , BLEND_OP_INVERT_OVG_EXT+  , BLEND_OP_CONTRAST_EXT+  , BLEND_OP_MINUS_CLAMPED_EXT+  , BLEND_OP_MINUS_EXT+  , BLEND_OP_PLUS_DARKER_EXT+  , BLEND_OP_PLUS_CLAMPED_ALPHA_EXT+  , BLEND_OP_PLUS_CLAMPED_EXT+  , BLEND_OP_PLUS_EXT+  , BLEND_OP_HSL_LUMINOSITY_EXT+  , BLEND_OP_HSL_COLOR_EXT+  , BLEND_OP_HSL_SATURATION_EXT+  , BLEND_OP_HSL_HUE_EXT+  , BLEND_OP_HARDMIX_EXT+  , BLEND_OP_PINLIGHT_EXT+  , BLEND_OP_LINEARLIGHT_EXT+  , BLEND_OP_VIVIDLIGHT_EXT+  , BLEND_OP_LINEARBURN_EXT+  , BLEND_OP_LINEARDODGE_EXT+  , BLEND_OP_INVERT_RGB_EXT+  , BLEND_OP_INVERT_EXT+  , BLEND_OP_EXCLUSION_EXT+  , BLEND_OP_DIFFERENCE_EXT+  , BLEND_OP_SOFTLIGHT_EXT+  , BLEND_OP_HARDLIGHT_EXT+  , BLEND_OP_COLORBURN_EXT+  , BLEND_OP_COLORDODGE_EXT+  , BLEND_OP_LIGHTEN_EXT+  , BLEND_OP_DARKEN_EXT+  , BLEND_OP_OVERLAY_EXT+  , BLEND_OP_SCREEN_EXT+  , BLEND_OP_MULTIPLY_EXT+  , BLEND_OP_XOR_EXT+  , BLEND_OP_DST_ATOP_EXT+  , BLEND_OP_SRC_ATOP_EXT+  , BLEND_OP_DST_OUT_EXT+  , BLEND_OP_SRC_OUT_EXT+  , BLEND_OP_DST_IN_EXT+  , BLEND_OP_SRC_IN_EXT+  , BLEND_OP_DST_OVER_EXT+  , BLEND_OP_SRC_OVER_EXT+  , BLEND_OP_DST_EXT+  , BLEND_OP_SRC_EXT+  , BLEND_OP_ZERO_EXT ::+    BlendOp+  #-}+ conNameBlendOp :: String conNameBlendOp = "BlendOp" @@ -300,62 +356,72 @@  showTableBlendOp :: [(BlendOp, String)] showTableBlendOp =-  [ (BLEND_OP_ADD                   , "ADD")-  , (BLEND_OP_SUBTRACT              , "SUBTRACT")-  , (BLEND_OP_REVERSE_SUBTRACT      , "REVERSE_SUBTRACT")-  , (BLEND_OP_MIN                   , "MIN")-  , (BLEND_OP_MAX                   , "MAX")-  , (BLEND_OP_BLUE_EXT              , "BLUE_EXT")-  , (BLEND_OP_GREEN_EXT             , "GREEN_EXT")-  , (BLEND_OP_RED_EXT               , "RED_EXT")-  , (BLEND_OP_INVERT_OVG_EXT        , "INVERT_OVG_EXT")-  , (BLEND_OP_CONTRAST_EXT          , "CONTRAST_EXT")-  , (BLEND_OP_MINUS_CLAMPED_EXT     , "MINUS_CLAMPED_EXT")-  , (BLEND_OP_MINUS_EXT             , "MINUS_EXT")-  , (BLEND_OP_PLUS_DARKER_EXT       , "PLUS_DARKER_EXT")+  [ (BLEND_OP_ADD, "ADD")+  , (BLEND_OP_SUBTRACT, "SUBTRACT")+  , (BLEND_OP_REVERSE_SUBTRACT, "REVERSE_SUBTRACT")+  , (BLEND_OP_MIN, "MIN")+  , (BLEND_OP_MAX, "MAX")+  , (BLEND_OP_BLUE_EXT, "BLUE_EXT")+  , (BLEND_OP_GREEN_EXT, "GREEN_EXT")+  , (BLEND_OP_RED_EXT, "RED_EXT")+  , (BLEND_OP_INVERT_OVG_EXT, "INVERT_OVG_EXT")+  , (BLEND_OP_CONTRAST_EXT, "CONTRAST_EXT")+  , (BLEND_OP_MINUS_CLAMPED_EXT, "MINUS_CLAMPED_EXT")+  , (BLEND_OP_MINUS_EXT, "MINUS_EXT")+  , (BLEND_OP_PLUS_DARKER_EXT, "PLUS_DARKER_EXT")   , (BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, "PLUS_CLAMPED_ALPHA_EXT")-  , (BLEND_OP_PLUS_CLAMPED_EXT      , "PLUS_CLAMPED_EXT")-  , (BLEND_OP_PLUS_EXT              , "PLUS_EXT")-  , (BLEND_OP_HSL_LUMINOSITY_EXT    , "HSL_LUMINOSITY_EXT")-  , (BLEND_OP_HSL_COLOR_EXT         , "HSL_COLOR_EXT")-  , (BLEND_OP_HSL_SATURATION_EXT    , "HSL_SATURATION_EXT")-  , (BLEND_OP_HSL_HUE_EXT           , "HSL_HUE_EXT")-  , (BLEND_OP_HARDMIX_EXT           , "HARDMIX_EXT")-  , (BLEND_OP_PINLIGHT_EXT          , "PINLIGHT_EXT")-  , (BLEND_OP_LINEARLIGHT_EXT       , "LINEARLIGHT_EXT")-  , (BLEND_OP_VIVIDLIGHT_EXT        , "VIVIDLIGHT_EXT")-  , (BLEND_OP_LINEARBURN_EXT        , "LINEARBURN_EXT")-  , (BLEND_OP_LINEARDODGE_EXT       , "LINEARDODGE_EXT")-  , (BLEND_OP_INVERT_RGB_EXT        , "INVERT_RGB_EXT")-  , (BLEND_OP_INVERT_EXT            , "INVERT_EXT")-  , (BLEND_OP_EXCLUSION_EXT         , "EXCLUSION_EXT")-  , (BLEND_OP_DIFFERENCE_EXT        , "DIFFERENCE_EXT")-  , (BLEND_OP_SOFTLIGHT_EXT         , "SOFTLIGHT_EXT")-  , (BLEND_OP_HARDLIGHT_EXT         , "HARDLIGHT_EXT")-  , (BLEND_OP_COLORBURN_EXT         , "COLORBURN_EXT")-  , (BLEND_OP_COLORDODGE_EXT        , "COLORDODGE_EXT")-  , (BLEND_OP_LIGHTEN_EXT           , "LIGHTEN_EXT")-  , (BLEND_OP_DARKEN_EXT            , "DARKEN_EXT")-  , (BLEND_OP_OVERLAY_EXT           , "OVERLAY_EXT")-  , (BLEND_OP_SCREEN_EXT            , "SCREEN_EXT")-  , (BLEND_OP_MULTIPLY_EXT          , "MULTIPLY_EXT")-  , (BLEND_OP_XOR_EXT               , "XOR_EXT")-  , (BLEND_OP_DST_ATOP_EXT          , "DST_ATOP_EXT")-  , (BLEND_OP_SRC_ATOP_EXT          , "SRC_ATOP_EXT")-  , (BLEND_OP_DST_OUT_EXT           , "DST_OUT_EXT")-  , (BLEND_OP_SRC_OUT_EXT           , "SRC_OUT_EXT")-  , (BLEND_OP_DST_IN_EXT            , "DST_IN_EXT")-  , (BLEND_OP_SRC_IN_EXT            , "SRC_IN_EXT")-  , (BLEND_OP_DST_OVER_EXT          , "DST_OVER_EXT")-  , (BLEND_OP_SRC_OVER_EXT          , "SRC_OVER_EXT")-  , (BLEND_OP_DST_EXT               , "DST_EXT")-  , (BLEND_OP_SRC_EXT               , "SRC_EXT")-  , (BLEND_OP_ZERO_EXT              , "ZERO_EXT")+  , (BLEND_OP_PLUS_CLAMPED_EXT, "PLUS_CLAMPED_EXT")+  , (BLEND_OP_PLUS_EXT, "PLUS_EXT")+  , (BLEND_OP_HSL_LUMINOSITY_EXT, "HSL_LUMINOSITY_EXT")+  , (BLEND_OP_HSL_COLOR_EXT, "HSL_COLOR_EXT")+  , (BLEND_OP_HSL_SATURATION_EXT, "HSL_SATURATION_EXT")+  , (BLEND_OP_HSL_HUE_EXT, "HSL_HUE_EXT")+  , (BLEND_OP_HARDMIX_EXT, "HARDMIX_EXT")+  , (BLEND_OP_PINLIGHT_EXT, "PINLIGHT_EXT")+  , (BLEND_OP_LINEARLIGHT_EXT, "LINEARLIGHT_EXT")+  , (BLEND_OP_VIVIDLIGHT_EXT, "VIVIDLIGHT_EXT")+  , (BLEND_OP_LINEARBURN_EXT, "LINEARBURN_EXT")+  , (BLEND_OP_LINEARDODGE_EXT, "LINEARDODGE_EXT")+  , (BLEND_OP_INVERT_RGB_EXT, "INVERT_RGB_EXT")+  , (BLEND_OP_INVERT_EXT, "INVERT_EXT")+  , (BLEND_OP_EXCLUSION_EXT, "EXCLUSION_EXT")+  , (BLEND_OP_DIFFERENCE_EXT, "DIFFERENCE_EXT")+  , (BLEND_OP_SOFTLIGHT_EXT, "SOFTLIGHT_EXT")+  , (BLEND_OP_HARDLIGHT_EXT, "HARDLIGHT_EXT")+  , (BLEND_OP_COLORBURN_EXT, "COLORBURN_EXT")+  , (BLEND_OP_COLORDODGE_EXT, "COLORDODGE_EXT")+  , (BLEND_OP_LIGHTEN_EXT, "LIGHTEN_EXT")+  , (BLEND_OP_DARKEN_EXT, "DARKEN_EXT")+  , (BLEND_OP_OVERLAY_EXT, "OVERLAY_EXT")+  , (BLEND_OP_SCREEN_EXT, "SCREEN_EXT")+  , (BLEND_OP_MULTIPLY_EXT, "MULTIPLY_EXT")+  , (BLEND_OP_XOR_EXT, "XOR_EXT")+  , (BLEND_OP_DST_ATOP_EXT, "DST_ATOP_EXT")+  , (BLEND_OP_SRC_ATOP_EXT, "SRC_ATOP_EXT")+  , (BLEND_OP_DST_OUT_EXT, "DST_OUT_EXT")+  , (BLEND_OP_SRC_OUT_EXT, "SRC_OUT_EXT")+  , (BLEND_OP_DST_IN_EXT, "DST_IN_EXT")+  , (BLEND_OP_SRC_IN_EXT, "SRC_IN_EXT")+  , (BLEND_OP_DST_OVER_EXT, "DST_OVER_EXT")+  , (BLEND_OP_SRC_OVER_EXT, "SRC_OVER_EXT")+  , (BLEND_OP_DST_EXT, "DST_EXT")+  , (BLEND_OP_SRC_EXT, "SRC_EXT")+  , (BLEND_OP_ZERO_EXT, "ZERO_EXT")   ]  instance Show BlendOp where-  showsPrec = enumShowsPrec enumPrefixBlendOp showTableBlendOp conNameBlendOp (\(BlendOp x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixBlendOp+      showTableBlendOp+      conNameBlendOp+      (\(BlendOp x) -> x)+      (showsPrec 11)  instance Read BlendOp where-  readPrec = enumReadPrec enumPrefixBlendOp showTableBlendOp conNameBlendOp BlendOp-+  readPrec =+    enumReadPrec+      enumPrefixBlendOp+      showTableBlendOp+      conNameBlendOp+      BlendOp
src/Vulkan/Core10/Enums/BorderColor.hs view
@@ -37,42 +37,53 @@ -- | 'BORDER_COLOR_FLOAT_TRANSPARENT_BLACK' specifies a transparent, -- floating-point format, black color. pattern BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = BorderColor 0+ -- | 'BORDER_COLOR_INT_TRANSPARENT_BLACK' specifies a transparent, integer -- format, black color.-pattern BORDER_COLOR_INT_TRANSPARENT_BLACK   = BorderColor 1+pattern BORDER_COLOR_INT_TRANSPARENT_BLACK = BorderColor 1+ -- | 'BORDER_COLOR_FLOAT_OPAQUE_BLACK' specifies an opaque, floating-point -- format, black color.-pattern BORDER_COLOR_FLOAT_OPAQUE_BLACK      = BorderColor 2+pattern BORDER_COLOR_FLOAT_OPAQUE_BLACK = BorderColor 2+ -- | 'BORDER_COLOR_INT_OPAQUE_BLACK' specifies an opaque, integer format, -- black color.-pattern BORDER_COLOR_INT_OPAQUE_BLACK        = BorderColor 3+pattern BORDER_COLOR_INT_OPAQUE_BLACK = BorderColor 3+ -- | 'BORDER_COLOR_FLOAT_OPAQUE_WHITE' specifies an opaque, floating-point -- format, white color.-pattern BORDER_COLOR_FLOAT_OPAQUE_WHITE      = BorderColor 4+pattern BORDER_COLOR_FLOAT_OPAQUE_WHITE = BorderColor 4+ -- | 'BORDER_COLOR_INT_OPAQUE_WHITE' specifies an opaque, integer format, -- white color.-pattern BORDER_COLOR_INT_OPAQUE_WHITE        = BorderColor 5+pattern BORDER_COLOR_INT_OPAQUE_WHITE = BorderColor 5+ -- | 'BORDER_COLOR_INT_CUSTOM_EXT' indicates that a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT' -- structure is included in the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain containing the -- color data in integer format.-pattern BORDER_COLOR_INT_CUSTOM_EXT          = BorderColor 1000287004+pattern BORDER_COLOR_INT_CUSTOM_EXT = BorderColor 1000287004+ -- | 'BORDER_COLOR_FLOAT_CUSTOM_EXT' indicates that a -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT' -- structure is included in the -- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@pNext@ chain containing the -- color data in floating-point format.-pattern BORDER_COLOR_FLOAT_CUSTOM_EXT        = BorderColor 1000287003-{-# complete BORDER_COLOR_FLOAT_TRANSPARENT_BLACK,-             BORDER_COLOR_INT_TRANSPARENT_BLACK,-             BORDER_COLOR_FLOAT_OPAQUE_BLACK,-             BORDER_COLOR_INT_OPAQUE_BLACK,-             BORDER_COLOR_FLOAT_OPAQUE_WHITE,-             BORDER_COLOR_INT_OPAQUE_WHITE,-             BORDER_COLOR_INT_CUSTOM_EXT,-             BORDER_COLOR_FLOAT_CUSTOM_EXT :: BorderColor #-}+pattern BORDER_COLOR_FLOAT_CUSTOM_EXT = BorderColor 1000287003 +{-# COMPLETE+  BORDER_COLOR_FLOAT_TRANSPARENT_BLACK+  , BORDER_COLOR_INT_TRANSPARENT_BLACK+  , BORDER_COLOR_FLOAT_OPAQUE_BLACK+  , BORDER_COLOR_INT_OPAQUE_BLACK+  , BORDER_COLOR_FLOAT_OPAQUE_WHITE+  , BORDER_COLOR_INT_OPAQUE_WHITE+  , BORDER_COLOR_INT_CUSTOM_EXT+  , BORDER_COLOR_FLOAT_CUSTOM_EXT ::+    BorderColor+  #-}+ conNameBorderColor :: String conNameBorderColor = "BorderColor" @@ -81,20 +92,35 @@  showTableBorderColor :: [(BorderColor, String)] showTableBorderColor =-  [ (BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, "FLOAT_TRANSPARENT_BLACK")-  , (BORDER_COLOR_INT_TRANSPARENT_BLACK  , "INT_TRANSPARENT_BLACK")-  , (BORDER_COLOR_FLOAT_OPAQUE_BLACK     , "FLOAT_OPAQUE_BLACK")-  , (BORDER_COLOR_INT_OPAQUE_BLACK       , "INT_OPAQUE_BLACK")-  , (BORDER_COLOR_FLOAT_OPAQUE_WHITE     , "FLOAT_OPAQUE_WHITE")-  , (BORDER_COLOR_INT_OPAQUE_WHITE       , "INT_OPAQUE_WHITE")-  , (BORDER_COLOR_INT_CUSTOM_EXT         , "INT_CUSTOM_EXT")-  , (BORDER_COLOR_FLOAT_CUSTOM_EXT       , "FLOAT_CUSTOM_EXT")+  [+    ( BORDER_COLOR_FLOAT_TRANSPARENT_BLACK+    , "FLOAT_TRANSPARENT_BLACK"+    )+  ,+    ( BORDER_COLOR_INT_TRANSPARENT_BLACK+    , "INT_TRANSPARENT_BLACK"+    )+  , (BORDER_COLOR_FLOAT_OPAQUE_BLACK, "FLOAT_OPAQUE_BLACK")+  , (BORDER_COLOR_INT_OPAQUE_BLACK, "INT_OPAQUE_BLACK")+  , (BORDER_COLOR_FLOAT_OPAQUE_WHITE, "FLOAT_OPAQUE_WHITE")+  , (BORDER_COLOR_INT_OPAQUE_WHITE, "INT_OPAQUE_WHITE")+  , (BORDER_COLOR_INT_CUSTOM_EXT, "INT_CUSTOM_EXT")+  , (BORDER_COLOR_FLOAT_CUSTOM_EXT, "FLOAT_CUSTOM_EXT")   ]  instance Show BorderColor where   showsPrec =-    enumShowsPrec enumPrefixBorderColor showTableBorderColor conNameBorderColor (\(BorderColor x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixBorderColor+      showTableBorderColor+      conNameBorderColor+      (\(BorderColor x) -> x)+      (showsPrec 11)  instance Read BorderColor where-  readPrec = enumReadPrec enumPrefixBorderColor showTableBorderColor conNameBorderColor BorderColor-+  readPrec =+    enumReadPrec+      enumPrefixBorderColor+      showTableBorderColor+      conNameBorderColor+      BorderColor
src/Vulkan/Core10/Enums/BufferCreateFlagBits.hs view
@@ -43,27 +43,31 @@  -- | 'BUFFER_CREATE_SPARSE_BINDING_BIT' specifies that the buffer will be -- backed using sparse memory binding.-pattern BUFFER_CREATE_SPARSE_BINDING_BIT                = BufferCreateFlagBits 0x00000001+pattern BUFFER_CREATE_SPARSE_BINDING_BIT = BufferCreateFlagBits 0x00000001+ -- | 'BUFFER_CREATE_SPARSE_RESIDENCY_BIT' specifies that the buffer /can/ be -- partially backed using sparse memory binding. Buffers created with this -- flag /must/ also be created with the 'BUFFER_CREATE_SPARSE_BINDING_BIT' -- flag.-pattern BUFFER_CREATE_SPARSE_RESIDENCY_BIT              = BufferCreateFlagBits 0x00000002+pattern BUFFER_CREATE_SPARSE_RESIDENCY_BIT = BufferCreateFlagBits 0x00000002+ -- | 'BUFFER_CREATE_SPARSE_ALIASED_BIT' specifies that the buffer will be -- backed using sparse memory binding with memory ranges that might also -- simultaneously be backing another buffer (or another portion of the same -- buffer). Buffers created with this flag /must/ also be created with the -- 'BUFFER_CREATE_SPARSE_BINDING_BIT' flag.-pattern BUFFER_CREATE_SPARSE_ALIASED_BIT                = BufferCreateFlagBits 0x00000004+pattern BUFFER_CREATE_SPARSE_ALIASED_BIT = BufferCreateFlagBits 0x00000004+ -- | 'BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' specifies that the -- buffer’s address /can/ be saved and reused on a subsequent run (e.g. for -- trace capture and replay), see -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo' -- for more detail. pattern BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = BufferCreateFlagBits 0x00000010+ -- | 'BUFFER_CREATE_PROTECTED_BIT' specifies that the buffer is a protected -- buffer.-pattern BUFFER_CREATE_PROTECTED_BIT                     = BufferCreateFlagBits 0x00000008+pattern BUFFER_CREATE_PROTECTED_BIT = BufferCreateFlagBits 0x00000008  conNameBufferCreateFlagBits :: String conNameBufferCreateFlagBits = "BufferCreateFlagBits"@@ -73,23 +77,41 @@  showTableBufferCreateFlagBits :: [(BufferCreateFlagBits, String)] showTableBufferCreateFlagBits =-  [ (BUFFER_CREATE_SPARSE_BINDING_BIT               , "SPARSE_BINDING_BIT")-  , (BUFFER_CREATE_SPARSE_RESIDENCY_BIT             , "SPARSE_RESIDENCY_BIT")-  , (BUFFER_CREATE_SPARSE_ALIASED_BIT               , "SPARSE_ALIASED_BIT")-  , (BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, "DEVICE_ADDRESS_CAPTURE_REPLAY_BIT")-  , (BUFFER_CREATE_PROTECTED_BIT                    , "PROTECTED_BIT")+  [+    ( BUFFER_CREATE_SPARSE_BINDING_BIT+    , "SPARSE_BINDING_BIT"+    )+  ,+    ( BUFFER_CREATE_SPARSE_RESIDENCY_BIT+    , "SPARSE_RESIDENCY_BIT"+    )+  ,+    ( BUFFER_CREATE_SPARSE_ALIASED_BIT+    , "SPARSE_ALIASED_BIT"+    )+  ,+    ( BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT+    , "DEVICE_ADDRESS_CAPTURE_REPLAY_BIT"+    )+  ,+    ( BUFFER_CREATE_PROTECTED_BIT+    , "PROTECTED_BIT"+    )   ]  instance Show BufferCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixBufferCreateFlagBits-                            showTableBufferCreateFlagBits-                            conNameBufferCreateFlagBits-                            (\(BufferCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixBufferCreateFlagBits+      showTableBufferCreateFlagBits+      conNameBufferCreateFlagBits+      (\(BufferCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read BufferCreateFlagBits where-  readPrec = enumReadPrec enumPrefixBufferCreateFlagBits-                          showTableBufferCreateFlagBits-                          conNameBufferCreateFlagBits-                          BufferCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixBufferCreateFlagBits+      showTableBufferCreateFlagBits+      conNameBufferCreateFlagBits+      BufferCreateFlagBits
src/Vulkan/Core10/Enums/BufferUsageFlagBits.hs view
@@ -10,6 +10,8 @@                                                                      , BUFFER_USAGE_INDEX_BUFFER_BIT                                                                      , BUFFER_USAGE_VERTEX_BUFFER_BIT                                                                      , BUFFER_USAGE_INDIRECT_BUFFER_BIT+                                                                     , BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT+                                                                     , BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT                                                                      , BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR                                                                      , BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR                                                                      , BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR@@ -46,42 +48,50 @@ -- | 'BUFFER_USAGE_TRANSFER_SRC_BIT' specifies that the buffer /can/ be used -- as the source of a /transfer command/ (see the definition of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).-pattern BUFFER_USAGE_TRANSFER_SRC_BIT                          = BufferUsageFlagBits 0x00000001+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.-pattern BUFFER_USAGE_TRANSFER_DST_BIT                          = BufferUsageFlagBits 0x00000002+pattern BUFFER_USAGE_TRANSFER_DST_BIT = BufferUsageFlagBits 0x00000002+ -- | 'BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT' specifies that the buffer /can/ -- be used to create a 'Vulkan.Core10.Handles.BufferView' suitable for -- occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER'.-pattern BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT                  = BufferUsageFlagBits 0x00000004+pattern BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = BufferUsageFlagBits 0x00000004+ -- | 'BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT' specifies that the buffer /can/ -- be used to create a 'Vulkan.Core10.Handles.BufferView' suitable for -- occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER'.-pattern BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT                  = BufferUsageFlagBits 0x00000008+pattern BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = BufferUsageFlagBits 0x00000008+ -- | 'BUFFER_USAGE_UNIFORM_BUFFER_BIT' specifies that the buffer /can/ be -- used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' suitable -- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot either of -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER' -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC'.-pattern BUFFER_USAGE_UNIFORM_BUFFER_BIT                        = BufferUsageFlagBits 0x00000010+pattern BUFFER_USAGE_UNIFORM_BUFFER_BIT = BufferUsageFlagBits 0x00000010+ -- | 'BUFFER_USAGE_STORAGE_BUFFER_BIT' specifies that the buffer /can/ be -- used in a 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo' suitable -- for occupying a 'Vulkan.Core10.Handles.DescriptorSet' slot either of -- type 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER' -- or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC'.-pattern BUFFER_USAGE_STORAGE_BUFFER_BIT                        = BufferUsageFlagBits 0x00000020+pattern BUFFER_USAGE_STORAGE_BUFFER_BIT = BufferUsageFlagBits 0x00000020+ -- | 'BUFFER_USAGE_INDEX_BUFFER_BIT' specifies that the buffer is suitable -- for passing as the @buffer@ parameter to -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'.-pattern BUFFER_USAGE_INDEX_BUFFER_BIT                          = BufferUsageFlagBits 0x00000040+pattern BUFFER_USAGE_INDEX_BUFFER_BIT = BufferUsageFlagBits 0x00000040+ -- | 'BUFFER_USAGE_VERTEX_BUFFER_BIT' specifies that the buffer is suitable -- for passing as an element of the @pBuffers@ array to -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers'.-pattern BUFFER_USAGE_VERTEX_BUFFER_BIT                         = BufferUsageFlagBits 0x00000080+pattern BUFFER_USAGE_VERTEX_BUFFER_BIT = BufferUsageFlagBits 0x00000080+ -- | 'BUFFER_USAGE_INDIRECT_BUFFER_BIT' specifies that the buffer is suitable -- for passing as the @buffer@ parameter to -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndirect',@@ -96,39 +106,52 @@ -- or @sequencesCountBuffer@ or @sequencesIndexBuffer@ or -- @preprocessedBuffer@ member of -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV'-pattern BUFFER_USAGE_INDIRECT_BUFFER_BIT                       = BufferUsageFlagBits 0x00000100+pattern BUFFER_USAGE_INDIRECT_BUFFER_BIT = BufferUsageFlagBits 0x00000100++-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT"+pattern BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = BufferUsageFlagBits 0x01000000++-- No documentation found for Nested "VkBufferUsageFlagBits" "VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"+pattern BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = BufferUsageFlagBits 0x00800000+ -- | 'BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR' specifies that the buffer is -- suitable for use as a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table Shader Binding Table>.-pattern BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR              = BufferUsageFlagBits 0x00000400+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 -- 'Vulkan.Extensions.Handles.AccelerationStructureKHR'.-pattern BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR    = BufferUsageFlagBits 0x00100000+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://registry.khronos.org/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 -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.cmdBeginConditionalRenderingEXT'.-pattern BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT             = BufferUsageFlagBits 0x00000200+pattern BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = BufferUsageFlagBits 0x00000200+ -- | 'BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT' specifies that -- the buffer is suitable for using as a counter buffer with -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBeginTransformFeedbackEXT' -- and -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdEndTransformFeedbackEXT'. pattern BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00001000+ -- | 'BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT' specifies that the -- buffer is suitable for using for binding as a transform feedback buffer -- with -- 'Vulkan.Extensions.VK_EXT_transform_feedback.cmdBindTransformFeedbackBuffersEXT'.-pattern BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT         = BufferUsageFlagBits 0x00000800+pattern BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = BufferUsageFlagBits 0x00000800+ -- | 'BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT' specifies that the buffer /can/ -- be used to retrieve a buffer device address via -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress' -- and use that address to access the buffer’s memory from a shader.-pattern BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT                 = BufferUsageFlagBits 0x00020000+pattern BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = BufferUsageFlagBits 0x00020000  conNameBufferUsageFlagBits :: String conNameBufferUsageFlagBits = "BufferUsageFlagBits"@@ -138,36 +161,93 @@  showTableBufferUsageFlagBits :: [(BufferUsageFlagBits, String)] showTableBufferUsageFlagBits =-  [ (BUFFER_USAGE_TRANSFER_SRC_BIT                      , "TRANSFER_SRC_BIT")-  , (BUFFER_USAGE_TRANSFER_DST_BIT                      , "TRANSFER_DST_BIT")-  , (BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT              , "UNIFORM_TEXEL_BUFFER_BIT")-  , (BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT              , "STORAGE_TEXEL_BUFFER_BIT")-  , (BUFFER_USAGE_UNIFORM_BUFFER_BIT                    , "UNIFORM_BUFFER_BIT")-  , (BUFFER_USAGE_STORAGE_BUFFER_BIT                    , "STORAGE_BUFFER_BIT")-  , (BUFFER_USAGE_INDEX_BUFFER_BIT                      , "INDEX_BUFFER_BIT")-  , (BUFFER_USAGE_VERTEX_BUFFER_BIT                     , "VERTEX_BUFFER_BIT")-  , (BUFFER_USAGE_INDIRECT_BUFFER_BIT                   , "INDIRECT_BUFFER_BIT")-  , (BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR          , "SHADER_BINDING_TABLE_BIT_KHR")-  , (BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR, "ACCELERATION_STRUCTURE_STORAGE_BIT_KHR")-  , ( BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR+  [+    ( BUFFER_USAGE_TRANSFER_SRC_BIT+    , "TRANSFER_SRC_BIT"+    )+  ,+    ( BUFFER_USAGE_TRANSFER_DST_BIT+    , "TRANSFER_DST_BIT"+    )+  ,+    ( BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT+    , "UNIFORM_TEXEL_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT+    , "STORAGE_TEXEL_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_UNIFORM_BUFFER_BIT+    , "UNIFORM_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_STORAGE_BUFFER_BIT+    , "STORAGE_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_INDEX_BUFFER_BIT+    , "INDEX_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_VERTEX_BUFFER_BIT+    , "VERTEX_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_INDIRECT_BUFFER_BIT+    , "INDIRECT_BUFFER_BIT"+    )+  ,+    ( BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT+    , "MICROMAP_STORAGE_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT+    , "MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR+    , "SHADER_BINDING_TABLE_BIT_KHR"+    )+  ,+    ( BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR+    , "ACCELERATION_STRUCTURE_STORAGE_BIT_KHR"+    )+  ,+    ( BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR     , "ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR"     )-  , (BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT            , "CONDITIONAL_RENDERING_BIT_EXT")-  , (BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT, "TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT")-  , (BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT        , "TRANSFORM_FEEDBACK_BUFFER_BIT_EXT")-  , (BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT                , "SHADER_DEVICE_ADDRESS_BIT")+  ,+    ( BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT+    , "CONDITIONAL_RENDERING_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT+    , "TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT+    , "TRANSFORM_FEEDBACK_BUFFER_BIT_EXT"+    )+  ,+    ( BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT+    , "SHADER_DEVICE_ADDRESS_BIT"+    )   ]  instance Show BufferUsageFlagBits where-  showsPrec = enumShowsPrec enumPrefixBufferUsageFlagBits-                            showTableBufferUsageFlagBits-                            conNameBufferUsageFlagBits-                            (\(BufferUsageFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixBufferUsageFlagBits+      showTableBufferUsageFlagBits+      conNameBufferUsageFlagBits+      (\(BufferUsageFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read BufferUsageFlagBits where-  readPrec = enumReadPrec enumPrefixBufferUsageFlagBits-                          showTableBufferUsageFlagBits-                          conNameBufferUsageFlagBits-                          BufferUsageFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixBufferUsageFlagBits+      showTableBufferUsageFlagBits+      conNameBufferUsageFlagBits+      BufferUsageFlagBits
src/Vulkan/Core10/Enums/BufferViewCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype BufferViewCreateFlags = BufferViewCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameBufferViewCreateFlags :: String conNameBufferViewCreateFlags = "BufferViewCreateFlags" @@ -39,15 +37,18 @@ showTableBufferViewCreateFlags = []  instance Show BufferViewCreateFlags where-  showsPrec = enumShowsPrec enumPrefixBufferViewCreateFlags-                            showTableBufferViewCreateFlags-                            conNameBufferViewCreateFlags-                            (\(BufferViewCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixBufferViewCreateFlags+      showTableBufferViewCreateFlags+      conNameBufferViewCreateFlags+      (\(BufferViewCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read BufferViewCreateFlags where-  readPrec = enumReadPrec enumPrefixBufferViewCreateFlags-                          showTableBufferViewCreateFlags-                          conNameBufferViewCreateFlags-                          BufferViewCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixBufferViewCreateFlags+      showTableBufferViewCreateFlags+      conNameBufferViewCreateFlags+      BufferViewCreateFlags
src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs view
@@ -46,14 +46,17 @@ -- color attachment for the appropriate sample. Otherwise, the value in -- memory is unmodified. pattern COLOR_COMPONENT_R_BIT = ColorComponentFlagBits 0x00000001+ -- | 'COLOR_COMPONENT_G_BIT' specifies that the G value is written to the -- color attachment for the appropriate sample. Otherwise, the value in -- memory is unmodified. pattern COLOR_COMPONENT_G_BIT = ColorComponentFlagBits 0x00000002+ -- | 'COLOR_COMPONENT_B_BIT' specifies that the B value is written to the -- color attachment for the appropriate sample. Otherwise, the value in -- memory is unmodified. pattern COLOR_COMPONENT_B_BIT = ColorComponentFlagBits 0x00000004+ -- | 'COLOR_COMPONENT_A_BIT' specifies that the A value is written to the -- color attachment for the appropriate sample. Otherwise, the value in -- memory is unmodified.@@ -74,15 +77,18 @@   ]  instance Show ColorComponentFlagBits where-  showsPrec = enumShowsPrec enumPrefixColorComponentFlagBits-                            showTableColorComponentFlagBits-                            conNameColorComponentFlagBits-                            (\(ColorComponentFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixColorComponentFlagBits+      showTableColorComponentFlagBits+      conNameColorComponentFlagBits+      (\(ColorComponentFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ColorComponentFlagBits where-  readPrec = enumReadPrec enumPrefixColorComponentFlagBits-                          showTableColorComponentFlagBits-                          conNameColorComponentFlagBits-                          ColorComponentFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixColorComponentFlagBits+      showTableColorComponentFlagBits+      conNameColorComponentFlagBits+      ColorComponentFlagBits
+ src/Vulkan/Core10/Enums/ColorComponentFlagBits.hs-boot view
@@ -0,0 +1,12 @@+{-# language CPP #-}+-- No documentation found for Chapter "ColorComponentFlagBits"+module Vulkan.Core10.Enums.ColorComponentFlagBits  ( ColorComponentFlags+                                                   , ColorComponentFlagBits+                                                   ) where++++type ColorComponentFlags = ColorComponentFlagBits++data ColorComponentFlagBits+
src/Vulkan/Core10/Enums/CommandBufferLevel.hs view
@@ -24,12 +24,17 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'COMMAND_BUFFER_LEVEL_PRIMARY' specifies a primary command buffer.-pattern COMMAND_BUFFER_LEVEL_PRIMARY   = CommandBufferLevel 0+pattern COMMAND_BUFFER_LEVEL_PRIMARY = CommandBufferLevel 0+ -- | 'COMMAND_BUFFER_LEVEL_SECONDARY' specifies a secondary command buffer. pattern COMMAND_BUFFER_LEVEL_SECONDARY = CommandBufferLevel 1-{-# complete COMMAND_BUFFER_LEVEL_PRIMARY,-             COMMAND_BUFFER_LEVEL_SECONDARY :: CommandBufferLevel #-} +{-# COMPLETE+  COMMAND_BUFFER_LEVEL_PRIMARY+  , COMMAND_BUFFER_LEVEL_SECONDARY ::+    CommandBufferLevel+  #-}+ conNameCommandBufferLevel :: String conNameCommandBufferLevel = "CommandBufferLevel" @@ -38,16 +43,23 @@  showTableCommandBufferLevel :: [(CommandBufferLevel, String)] showTableCommandBufferLevel =-  [(COMMAND_BUFFER_LEVEL_PRIMARY, "PRIMARY"), (COMMAND_BUFFER_LEVEL_SECONDARY, "SECONDARY")]+  [ (COMMAND_BUFFER_LEVEL_PRIMARY, "PRIMARY")+  , (COMMAND_BUFFER_LEVEL_SECONDARY, "SECONDARY")+  ]  instance Show CommandBufferLevel where-  showsPrec = enumShowsPrec enumPrefixCommandBufferLevel-                            showTableCommandBufferLevel-                            conNameCommandBufferLevel-                            (\(CommandBufferLevel x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixCommandBufferLevel+      showTableCommandBufferLevel+      conNameCommandBufferLevel+      (\(CommandBufferLevel x) -> x)+      (showsPrec 11)  instance Read CommandBufferLevel where   readPrec =-    enumReadPrec enumPrefixCommandBufferLevel showTableCommandBufferLevel conNameCommandBufferLevel CommandBufferLevel-+    enumReadPrec+      enumPrefixCommandBufferLevel+      showTableCommandBufferLevel+      conNameCommandBufferLevel+      CommandBufferLevel
src/Vulkan/Core10/Enums/CommandBufferResetFlagBits.hs view
@@ -44,18 +44,26 @@ enumPrefixCommandBufferResetFlagBits = "COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT"  showTableCommandBufferResetFlagBits :: [(CommandBufferResetFlagBits, String)]-showTableCommandBufferResetFlagBits = [(COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT, "")]+showTableCommandBufferResetFlagBits =+  [+    ( COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT+    , ""+    )+  ]  instance Show CommandBufferResetFlagBits where-  showsPrec = enumShowsPrec enumPrefixCommandBufferResetFlagBits-                            showTableCommandBufferResetFlagBits-                            conNameCommandBufferResetFlagBits-                            (\(CommandBufferResetFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCommandBufferResetFlagBits+      showTableCommandBufferResetFlagBits+      conNameCommandBufferResetFlagBits+      (\(CommandBufferResetFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CommandBufferResetFlagBits where-  readPrec = enumReadPrec enumPrefixCommandBufferResetFlagBits-                          showTableCommandBufferResetFlagBits-                          conNameCommandBufferResetFlagBits-                          CommandBufferResetFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixCommandBufferResetFlagBits+      showTableCommandBufferResetFlagBits+      conNameCommandBufferResetFlagBits+      CommandBufferResetFlagBits
src/Vulkan/Core10/Enums/CommandBufferUsageFlagBits.hs view
@@ -34,15 +34,17 @@ -- | 'COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT' specifies that each recording -- of the command buffer will only be submitted once, and the command -- buffer will be reset and recorded again between each submission.-pattern COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT      = CommandBufferUsageFlagBits 0x00000001+pattern COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = CommandBufferUsageFlagBits 0x00000001+ -- | 'COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT' specifies that a -- secondary command buffer is considered to be entirely inside a render -- pass. If this is a primary command buffer, then this bit is ignored. pattern COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = CommandBufferUsageFlagBits 0x00000002+ -- | 'COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT' specifies that a command -- buffer /can/ be resubmitted to a queue while it is in the /pending -- state/, and recorded into multiple primary command buffers.-pattern COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT     = CommandBufferUsageFlagBits 0x00000004+pattern COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = CommandBufferUsageFlagBits 0x00000004  conNameCommandBufferUsageFlagBits :: String conNameCommandBufferUsageFlagBits = "CommandBufferUsageFlagBits"@@ -52,21 +54,33 @@  showTableCommandBufferUsageFlagBits :: [(CommandBufferUsageFlagBits, String)] showTableCommandBufferUsageFlagBits =-  [ (COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT     , "ONE_TIME_SUBMIT_BIT")-  , (COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, "RENDER_PASS_CONTINUE_BIT")-  , (COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT    , "SIMULTANEOUS_USE_BIT")+  [+    ( COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT+    , "ONE_TIME_SUBMIT_BIT"+    )+  ,+    ( COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT+    , "RENDER_PASS_CONTINUE_BIT"+    )+  ,+    ( COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT+    , "SIMULTANEOUS_USE_BIT"+    )   ]  instance Show CommandBufferUsageFlagBits where-  showsPrec = enumShowsPrec enumPrefixCommandBufferUsageFlagBits-                            showTableCommandBufferUsageFlagBits-                            conNameCommandBufferUsageFlagBits-                            (\(CommandBufferUsageFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCommandBufferUsageFlagBits+      showTableCommandBufferUsageFlagBits+      conNameCommandBufferUsageFlagBits+      (\(CommandBufferUsageFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CommandBufferUsageFlagBits where-  readPrec = enumReadPrec enumPrefixCommandBufferUsageFlagBits-                          showTableCommandBufferUsageFlagBits-                          conNameCommandBufferUsageFlagBits-                          CommandBufferUsageFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixCommandBufferUsageFlagBits+      showTableCommandBufferUsageFlagBits+      conNameCommandBufferUsageFlagBits+      CommandBufferUsageFlagBits
src/Vulkan/Core10/Enums/CommandPoolCreateFlagBits.hs view
@@ -36,7 +36,8 @@ -- reset or freed in a relatively short timeframe. This flag /may/ be used -- by the implementation to control memory allocation behavior within the -- pool.-pattern COMMAND_POOL_CREATE_TRANSIENT_BIT            = CommandPoolCreateFlagBits 0x00000001+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#commandbuffers-lifecycle initial state>;@@ -46,9 +47,10 @@ -- set on a pool, then 'Vulkan.Core10.CommandBuffer.resetCommandBuffer' -- /must/ not be called for any command buffer allocated from that pool. pattern COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = CommandPoolCreateFlagBits 0x00000002+ -- | 'COMMAND_POOL_CREATE_PROTECTED_BIT' specifies that command buffers -- allocated from the pool are protected command buffers.-pattern COMMAND_POOL_CREATE_PROTECTED_BIT            = CommandPoolCreateFlagBits 0x00000004+pattern COMMAND_POOL_CREATE_PROTECTED_BIT = CommandPoolCreateFlagBits 0x00000004  conNameCommandPoolCreateFlagBits :: String conNameCommandPoolCreateFlagBits = "CommandPoolCreateFlagBits"@@ -58,21 +60,33 @@  showTableCommandPoolCreateFlagBits :: [(CommandPoolCreateFlagBits, String)] showTableCommandPoolCreateFlagBits =-  [ (COMMAND_POOL_CREATE_TRANSIENT_BIT           , "TRANSIENT_BIT")-  , (COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, "RESET_COMMAND_BUFFER_BIT")-  , (COMMAND_POOL_CREATE_PROTECTED_BIT           , "PROTECTED_BIT")+  [+    ( COMMAND_POOL_CREATE_TRANSIENT_BIT+    , "TRANSIENT_BIT"+    )+  ,+    ( COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT+    , "RESET_COMMAND_BUFFER_BIT"+    )+  ,+    ( COMMAND_POOL_CREATE_PROTECTED_BIT+    , "PROTECTED_BIT"+    )   ]  instance Show CommandPoolCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixCommandPoolCreateFlagBits-                            showTableCommandPoolCreateFlagBits-                            conNameCommandPoolCreateFlagBits-                            (\(CommandPoolCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCommandPoolCreateFlagBits+      showTableCommandPoolCreateFlagBits+      conNameCommandPoolCreateFlagBits+      (\(CommandPoolCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CommandPoolCreateFlagBits where-  readPrec = enumReadPrec enumPrefixCommandPoolCreateFlagBits-                          showTableCommandPoolCreateFlagBits-                          conNameCommandPoolCreateFlagBits-                          CommandPoolCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixCommandPoolCreateFlagBits+      showTableCommandPoolCreateFlagBits+      conNameCommandPoolCreateFlagBits+      CommandPoolCreateFlagBits
src/Vulkan/Core10/Enums/CommandPoolResetFlagBits.hs view
@@ -41,18 +41,26 @@ enumPrefixCommandPoolResetFlagBits = "COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT"  showTableCommandPoolResetFlagBits :: [(CommandPoolResetFlagBits, String)]-showTableCommandPoolResetFlagBits = [(COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT, "")]+showTableCommandPoolResetFlagBits =+  [+    ( COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT+    , ""+    )+  ]  instance Show CommandPoolResetFlagBits where-  showsPrec = enumShowsPrec enumPrefixCommandPoolResetFlagBits-                            showTableCommandPoolResetFlagBits-                            conNameCommandPoolResetFlagBits-                            (\(CommandPoolResetFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCommandPoolResetFlagBits+      showTableCommandPoolResetFlagBits+      conNameCommandPoolResetFlagBits+      (\(CommandPoolResetFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CommandPoolResetFlagBits where-  readPrec = enumReadPrec enumPrefixCommandPoolResetFlagBits-                          showTableCommandPoolResetFlagBits-                          conNameCommandPoolResetFlagBits-                          CommandPoolResetFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixCommandPoolResetFlagBits+      showTableCommandPoolResetFlagBits+      conNameCommandPoolResetFlagBits+      CommandPoolResetFlagBits
src/Vulkan/Core10/Enums/CompareOp.hs view
@@ -88,30 +88,41 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_NEVER"-pattern COMPARE_OP_NEVER            = CompareOp 0+pattern COMPARE_OP_NEVER = CompareOp 0+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_LESS"-pattern COMPARE_OP_LESS             = CompareOp 1+pattern COMPARE_OP_LESS = CompareOp 1+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_EQUAL"-pattern COMPARE_OP_EQUAL            = CompareOp 2+pattern COMPARE_OP_EQUAL = CompareOp 2+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_LESS_OR_EQUAL"-pattern COMPARE_OP_LESS_OR_EQUAL    = CompareOp 3+pattern COMPARE_OP_LESS_OR_EQUAL = CompareOp 3+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_GREATER"-pattern COMPARE_OP_GREATER          = CompareOp 4+pattern COMPARE_OP_GREATER = CompareOp 4+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_NOT_EQUAL"-pattern COMPARE_OP_NOT_EQUAL        = CompareOp 5+pattern COMPARE_OP_NOT_EQUAL = CompareOp 5+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_GREATER_OR_EQUAL" pattern COMPARE_OP_GREATER_OR_EQUAL = CompareOp 6+ -- No documentation found for Nested "VkCompareOp" "VK_COMPARE_OP_ALWAYS"-pattern COMPARE_OP_ALWAYS           = CompareOp 7-{-# complete COMPARE_OP_NEVER,-             COMPARE_OP_LESS,-             COMPARE_OP_EQUAL,-             COMPARE_OP_LESS_OR_EQUAL,-             COMPARE_OP_GREATER,-             COMPARE_OP_NOT_EQUAL,-             COMPARE_OP_GREATER_OR_EQUAL,-             COMPARE_OP_ALWAYS :: CompareOp #-}+pattern COMPARE_OP_ALWAYS = CompareOp 7 +{-# COMPLETE+  COMPARE_OP_NEVER+  , COMPARE_OP_LESS+  , COMPARE_OP_EQUAL+  , COMPARE_OP_LESS_OR_EQUAL+  , COMPARE_OP_GREATER+  , COMPARE_OP_NOT_EQUAL+  , COMPARE_OP_GREATER_OR_EQUAL+  , COMPARE_OP_ALWAYS ::+    CompareOp+  #-}+ conNameCompareOp :: String conNameCompareOp = "CompareOp" @@ -120,20 +131,29 @@  showTableCompareOp :: [(CompareOp, String)] showTableCompareOp =-  [ (COMPARE_OP_NEVER           , "NEVER")-  , (COMPARE_OP_LESS            , "LESS")-  , (COMPARE_OP_EQUAL           , "EQUAL")-  , (COMPARE_OP_LESS_OR_EQUAL   , "LESS_OR_EQUAL")-  , (COMPARE_OP_GREATER         , "GREATER")-  , (COMPARE_OP_NOT_EQUAL       , "NOT_EQUAL")+  [ (COMPARE_OP_NEVER, "NEVER")+  , (COMPARE_OP_LESS, "LESS")+  , (COMPARE_OP_EQUAL, "EQUAL")+  , (COMPARE_OP_LESS_OR_EQUAL, "LESS_OR_EQUAL")+  , (COMPARE_OP_GREATER, "GREATER")+  , (COMPARE_OP_NOT_EQUAL, "NOT_EQUAL")   , (COMPARE_OP_GREATER_OR_EQUAL, "GREATER_OR_EQUAL")-  , (COMPARE_OP_ALWAYS          , "ALWAYS")+  , (COMPARE_OP_ALWAYS, "ALWAYS")   ]  instance Show CompareOp where   showsPrec =-    enumShowsPrec enumPrefixCompareOp showTableCompareOp conNameCompareOp (\(CompareOp x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixCompareOp+      showTableCompareOp+      conNameCompareOp+      (\(CompareOp x) -> x)+      (showsPrec 11)  instance Read CompareOp where-  readPrec = enumReadPrec enumPrefixCompareOp showTableCompareOp conNameCompareOp CompareOp-+  readPrec =+    enumReadPrec+      enumPrefixCompareOp+      showTableCompareOp+      conNameCompareOp+      CompareOp
src/Vulkan/Core10/Enums/ComponentSwizzle.hs view
@@ -50,34 +50,44 @@ -- | 'COMPONENT_SWIZZLE_IDENTITY' specifies that the component is set to the -- identity swizzle. pattern COMPONENT_SWIZZLE_IDENTITY = ComponentSwizzle 0+ -- | 'COMPONENT_SWIZZLE_ZERO' specifies that the component is set to zero.-pattern COMPONENT_SWIZZLE_ZERO     = ComponentSwizzle 1+pattern COMPONENT_SWIZZLE_ZERO = ComponentSwizzle 1+ -- | '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://registry.khronos.org/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+pattern COMPONENT_SWIZZLE_ONE = ComponentSwizzle 2+ -- | 'COMPONENT_SWIZZLE_R' specifies that the component is set to the value -- of the R component of the image.-pattern COMPONENT_SWIZZLE_R        = ComponentSwizzle 3+pattern COMPONENT_SWIZZLE_R = ComponentSwizzle 3+ -- | 'COMPONENT_SWIZZLE_G' specifies that the component is set to the value -- of the G component of the image.-pattern COMPONENT_SWIZZLE_G        = ComponentSwizzle 4+pattern COMPONENT_SWIZZLE_G = ComponentSwizzle 4+ -- | 'COMPONENT_SWIZZLE_B' specifies that the component is set to the value -- of the B component of the image.-pattern COMPONENT_SWIZZLE_B        = ComponentSwizzle 5+pattern COMPONENT_SWIZZLE_B = ComponentSwizzle 5+ -- | 'COMPONENT_SWIZZLE_A' specifies that the component is set to the value -- of the A component of the image.-pattern COMPONENT_SWIZZLE_A        = ComponentSwizzle 6-{-# complete COMPONENT_SWIZZLE_IDENTITY,-             COMPONENT_SWIZZLE_ZERO,-             COMPONENT_SWIZZLE_ONE,-             COMPONENT_SWIZZLE_R,-             COMPONENT_SWIZZLE_G,-             COMPONENT_SWIZZLE_B,-             COMPONENT_SWIZZLE_A :: ComponentSwizzle #-}+pattern COMPONENT_SWIZZLE_A = ComponentSwizzle 6 +{-# COMPLETE+  COMPONENT_SWIZZLE_IDENTITY+  , COMPONENT_SWIZZLE_ZERO+  , COMPONENT_SWIZZLE_ONE+  , COMPONENT_SWIZZLE_R+  , COMPONENT_SWIZZLE_G+  , COMPONENT_SWIZZLE_B+  , COMPONENT_SWIZZLE_A ::+    ComponentSwizzle+  #-}+ conNameComponentSwizzle :: String conNameComponentSwizzle = "ComponentSwizzle" @@ -87,21 +97,27 @@ showTableComponentSwizzle :: [(ComponentSwizzle, String)] showTableComponentSwizzle =   [ (COMPONENT_SWIZZLE_IDENTITY, "IDENTITY")-  , (COMPONENT_SWIZZLE_ZERO    , "ZERO")-  , (COMPONENT_SWIZZLE_ONE     , "ONE")-  , (COMPONENT_SWIZZLE_R       , "R")-  , (COMPONENT_SWIZZLE_G       , "G")-  , (COMPONENT_SWIZZLE_B       , "B")-  , (COMPONENT_SWIZZLE_A       , "A")+  , (COMPONENT_SWIZZLE_ZERO, "ZERO")+  , (COMPONENT_SWIZZLE_ONE, "ONE")+  , (COMPONENT_SWIZZLE_R, "R")+  , (COMPONENT_SWIZZLE_G, "G")+  , (COMPONENT_SWIZZLE_B, "B")+  , (COMPONENT_SWIZZLE_A, "A")   ]  instance Show ComponentSwizzle where-  showsPrec = enumShowsPrec enumPrefixComponentSwizzle-                            showTableComponentSwizzle-                            conNameComponentSwizzle-                            (\(ComponentSwizzle x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixComponentSwizzle+      showTableComponentSwizzle+      conNameComponentSwizzle+      (\(ComponentSwizzle x) -> x)+      (showsPrec 11)  instance Read ComponentSwizzle where-  readPrec = enumReadPrec enumPrefixComponentSwizzle showTableComponentSwizzle conNameComponentSwizzle ComponentSwizzle-+  readPrec =+    enumReadPrec+      enumPrefixComponentSwizzle+      showTableComponentSwizzle+      conNameComponentSwizzle+      ComponentSwizzle
src/Vulkan/Core10/Enums/CullModeFlagBits.hs view
@@ -37,12 +37,15 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'CULL_MODE_NONE' specifies that no triangles are discarded-pattern CULL_MODE_NONE           = CullModeFlagBits 0x00000000+pattern CULL_MODE_NONE = CullModeFlagBits 0x00000000+ -- | 'CULL_MODE_FRONT_BIT' specifies that front-facing triangles are -- discarded-pattern CULL_MODE_FRONT_BIT      = CullModeFlagBits 0x00000001+pattern CULL_MODE_FRONT_BIT = CullModeFlagBits 0x00000001+ -- | 'CULL_MODE_BACK_BIT' specifies that back-facing triangles are discarded-pattern CULL_MODE_BACK_BIT       = CullModeFlagBits 0x00000002+pattern CULL_MODE_BACK_BIT = CullModeFlagBits 0x00000002+ -- | 'CULL_MODE_FRONT_AND_BACK' specifies that all triangles are discarded. pattern CULL_MODE_FRONT_AND_BACK = CullModeFlagBits 0x00000003 @@ -54,19 +57,25 @@  showTableCullModeFlagBits :: [(CullModeFlagBits, String)] showTableCullModeFlagBits =-  [ (CULL_MODE_NONE          , "NONE")-  , (CULL_MODE_FRONT_BIT     , "FRONT_BIT")-  , (CULL_MODE_BACK_BIT      , "BACK_BIT")+  [ (CULL_MODE_NONE, "NONE")+  , (CULL_MODE_FRONT_BIT, "FRONT_BIT")+  , (CULL_MODE_BACK_BIT, "BACK_BIT")   , (CULL_MODE_FRONT_AND_BACK, "FRONT_AND_BACK")   ]  instance Show CullModeFlagBits where-  showsPrec = enumShowsPrec enumPrefixCullModeFlagBits-                            showTableCullModeFlagBits-                            conNameCullModeFlagBits-                            (\(CullModeFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCullModeFlagBits+      showTableCullModeFlagBits+      conNameCullModeFlagBits+      (\(CullModeFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CullModeFlagBits where-  readPrec = enumReadPrec enumPrefixCullModeFlagBits showTableCullModeFlagBits conNameCullModeFlagBits CullModeFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixCullModeFlagBits+      showTableCullModeFlagBits+      conNameCullModeFlagBits+      CullModeFlagBits
src/Vulkan/Core10/Enums/DependencyFlagBits.hs view
@@ -34,18 +34,21 @@  -- | 'DEPENDENCY_BY_REGION_BIT' specifies that dependencies will be -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-framebuffer-regions framebuffer-local>.-pattern DEPENDENCY_BY_REGION_BIT         = DependencyFlagBits 0x00000001+pattern DEPENDENCY_BY_REGION_BIT = DependencyFlagBits 0x00000001+ -- | 'DEPENDENCY_FEEDBACK_LOOP_BIT_EXT' specifies that the render pass will -- write to and read from the same image using the -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' -- layout. pattern DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = DependencyFlagBits 0x00000008+ -- | 'DEPENDENCY_VIEW_LOCAL_BIT' specifies that a -- <https://registry.khronos.org/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+pattern DEPENDENCY_VIEW_LOCAL_BIT = DependencyFlagBits 0x00000002+ -- | 'DEPENDENCY_DEVICE_GROUP_BIT' specifies that dependencies are -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-device-local-dependencies non-device-local>.-pattern DEPENDENCY_DEVICE_GROUP_BIT      = DependencyFlagBits 0x00000004+pattern DEPENDENCY_DEVICE_GROUP_BIT = DependencyFlagBits 0x00000004  conNameDependencyFlagBits :: String conNameDependencyFlagBits = "DependencyFlagBits"@@ -55,20 +58,31 @@  showTableDependencyFlagBits :: [(DependencyFlagBits, String)] showTableDependencyFlagBits =-  [ (DEPENDENCY_BY_REGION_BIT        , "BY_REGION_BIT")-  , (DEPENDENCY_FEEDBACK_LOOP_BIT_EXT, "FEEDBACK_LOOP_BIT_EXT")-  , (DEPENDENCY_VIEW_LOCAL_BIT       , "VIEW_LOCAL_BIT")-  , (DEPENDENCY_DEVICE_GROUP_BIT     , "DEVICE_GROUP_BIT")+  [ (DEPENDENCY_BY_REGION_BIT, "BY_REGION_BIT")+  ,+    ( DEPENDENCY_FEEDBACK_LOOP_BIT_EXT+    , "FEEDBACK_LOOP_BIT_EXT"+    )+  , (DEPENDENCY_VIEW_LOCAL_BIT, "VIEW_LOCAL_BIT")+  ,+    ( DEPENDENCY_DEVICE_GROUP_BIT+    , "DEVICE_GROUP_BIT"+    )   ]  instance Show DependencyFlagBits where-  showsPrec = enumShowsPrec enumPrefixDependencyFlagBits-                            showTableDependencyFlagBits-                            conNameDependencyFlagBits-                            (\(DependencyFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDependencyFlagBits+      showTableDependencyFlagBits+      conNameDependencyFlagBits+      (\(DependencyFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DependencyFlagBits where   readPrec =-    enumReadPrec enumPrefixDependencyFlagBits showTableDependencyFlagBits conNameDependencyFlagBits DependencyFlagBits-+    enumReadPrec+      enumPrefixDependencyFlagBits+      showTableDependencyFlagBits+      conNameDependencyFlagBits+      DependencyFlagBits
src/Vulkan/Core10/Enums/DescriptorPoolCreateFlagBits.hs view
@@ -41,6 +41,7 @@ -- 'Vulkan.Core10.DescriptorSet.allocateDescriptorSets' and -- 'Vulkan.Core10.DescriptorSet.resetDescriptorPool' are allowed. pattern DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = DescriptorPoolCreateFlagBits 0x00000001+ -- | 'DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT' specifies that this -- descriptor pool and the descriptor sets allocated from it reside -- entirely in host memory and cannot be bound. Similar to descriptor sets@@ -53,7 +54,8 @@ -- and their descriptors can be updated concurrently in different threads, -- though the same descriptor /must/ not be updated concurrently by two -- threads.-pattern DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT       = DescriptorPoolCreateFlagBits 0x00000004+pattern DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = DescriptorPoolCreateFlagBits 0x00000004+ -- | 'DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' specifies that descriptor -- sets allocated from this pool /can/ include bindings with the -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT'@@ -62,7 +64,7 @@ -- 'Vulkan.Core12.Enums.DescriptorBindingFlagBits.DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT' -- bit from a pool that has 'DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT' -- set.-pattern DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT   = DescriptorPoolCreateFlagBits 0x00000002+pattern DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = DescriptorPoolCreateFlagBits 0x00000002  conNameDescriptorPoolCreateFlagBits :: String conNameDescriptorPoolCreateFlagBits = "DescriptorPoolCreateFlagBits"@@ -72,21 +74,33 @@  showTableDescriptorPoolCreateFlagBits :: [(DescriptorPoolCreateFlagBits, String)] showTableDescriptorPoolCreateFlagBits =-  [ (DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, "FREE_DESCRIPTOR_SET_BIT")-  , (DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT      , "HOST_ONLY_BIT_EXT")-  , (DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT  , "UPDATE_AFTER_BIND_BIT")+  [+    ( DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT+    , "FREE_DESCRIPTOR_SET_BIT"+    )+  ,+    ( DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT+    , "HOST_ONLY_BIT_EXT"+    )+  ,+    ( DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT+    , "UPDATE_AFTER_BIND_BIT"+    )   ]  instance Show DescriptorPoolCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixDescriptorPoolCreateFlagBits-                            showTableDescriptorPoolCreateFlagBits-                            conNameDescriptorPoolCreateFlagBits-                            (\(DescriptorPoolCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorPoolCreateFlagBits+      showTableDescriptorPoolCreateFlagBits+      conNameDescriptorPoolCreateFlagBits+      (\(DescriptorPoolCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DescriptorPoolCreateFlagBits where-  readPrec = enumReadPrec enumPrefixDescriptorPoolCreateFlagBits-                          showTableDescriptorPoolCreateFlagBits-                          conNameDescriptorPoolCreateFlagBits-                          DescriptorPoolCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorPoolCreateFlagBits+      showTableDescriptorPoolCreateFlagBits+      conNameDescriptorPoolCreateFlagBits+      DescriptorPoolCreateFlagBits
src/Vulkan/Core10/Enums/DescriptorPoolResetFlags.hs view
@@ -27,8 +27,6 @@ newtype DescriptorPoolResetFlags = DescriptorPoolResetFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDescriptorPoolResetFlags :: String conNameDescriptorPoolResetFlags = "DescriptorPoolResetFlags" @@ -39,15 +37,18 @@ showTableDescriptorPoolResetFlags = []  instance Show DescriptorPoolResetFlags where-  showsPrec = enumShowsPrec enumPrefixDescriptorPoolResetFlags-                            showTableDescriptorPoolResetFlags-                            conNameDescriptorPoolResetFlags-                            (\(DescriptorPoolResetFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorPoolResetFlags+      showTableDescriptorPoolResetFlags+      conNameDescriptorPoolResetFlags+      (\(DescriptorPoolResetFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DescriptorPoolResetFlags where-  readPrec = enumReadPrec enumPrefixDescriptorPoolResetFlags-                          showTableDescriptorPoolResetFlags-                          conNameDescriptorPoolResetFlags-                          DescriptorPoolResetFlags-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorPoolResetFlags+      showTableDescriptorPoolResetFlags+      conNameDescriptorPoolResetFlags+      DescriptorPoolResetFlags
src/Vulkan/Core10/Enums/DescriptorSetLayoutCreateFlagBits.hs view
@@ -41,12 +41,14 @@ -- limited for implementation specific reasons. Implementations /may/ limit -- the number of supported descriptors to UpdateAfterBind limits or -- non-UpdateAfterBind limits, whichever is larger.-pattern DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT     = DescriptorSetLayoutCreateFlagBits 0x00000004+pattern DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = DescriptorSetLayoutCreateFlagBits 0x00000004+ -- | 'DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR' specifies that -- descriptor sets /must/ not be allocated using this layout, and -- descriptors are instead pushed by -- 'Vulkan.Extensions.VK_KHR_push_descriptor.cmdPushDescriptorSetKHR'.-pattern DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR    = DescriptorSetLayoutCreateFlagBits 0x00000001+pattern DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = DescriptorSetLayoutCreateFlagBits 0x00000001+ -- | 'DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT' specifies that -- descriptor sets using this layout /must/ be allocated from a descriptor -- pool created with the@@ -67,21 +69,33 @@  showTableDescriptorSetLayoutCreateFlagBits :: [(DescriptorSetLayoutCreateFlagBits, String)] showTableDescriptorSetLayoutCreateFlagBits =-  [ (DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT    , "HOST_ONLY_POOL_BIT_EXT")-  , (DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR   , "PUSH_DESCRIPTOR_BIT_KHR")-  , (DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, "UPDATE_AFTER_BIND_POOL_BIT")+  [+    ( DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT+    , "HOST_ONLY_POOL_BIT_EXT"+    )+  ,+    ( DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR+    , "PUSH_DESCRIPTOR_BIT_KHR"+    )+  ,+    ( DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT+    , "UPDATE_AFTER_BIND_POOL_BIT"+    )   ]  instance Show DescriptorSetLayoutCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixDescriptorSetLayoutCreateFlagBits-                            showTableDescriptorSetLayoutCreateFlagBits-                            conNameDescriptorSetLayoutCreateFlagBits-                            (\(DescriptorSetLayoutCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorSetLayoutCreateFlagBits+      showTableDescriptorSetLayoutCreateFlagBits+      conNameDescriptorSetLayoutCreateFlagBits+      (\(DescriptorSetLayoutCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DescriptorSetLayoutCreateFlagBits where-  readPrec = enumReadPrec enumPrefixDescriptorSetLayoutCreateFlagBits-                          showTableDescriptorSetLayoutCreateFlagBits-                          conNameDescriptorSetLayoutCreateFlagBits-                          DescriptorSetLayoutCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorSetLayoutCreateFlagBits+      showTableDescriptorSetLayoutCreateFlagBits+      conNameDescriptorSetLayoutCreateFlagBits+      DescriptorSetLayoutCreateFlagBits
src/Vulkan/Core10/Enums/DescriptorType.hs view
@@ -151,57 +151,77 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_SAMPLER"-pattern DESCRIPTOR_TYPE_SAMPLER                    = DescriptorType 0+pattern DESCRIPTOR_TYPE_SAMPLER = DescriptorType 0+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER"-pattern DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER     = DescriptorType 1+pattern DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = DescriptorType 1+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE"-pattern DESCRIPTOR_TYPE_SAMPLED_IMAGE              = DescriptorType 2+pattern DESCRIPTOR_TYPE_SAMPLED_IMAGE = DescriptorType 2+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE"-pattern DESCRIPTOR_TYPE_STORAGE_IMAGE              = DescriptorType 3+pattern DESCRIPTOR_TYPE_STORAGE_IMAGE = DescriptorType 3+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER"-pattern DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER       = DescriptorType 4+pattern DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = DescriptorType 4+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER"-pattern DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER       = DescriptorType 5+pattern DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = DescriptorType 5+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER"-pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER             = DescriptorType 6+pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER = DescriptorType 6+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER"-pattern DESCRIPTOR_TYPE_STORAGE_BUFFER             = DescriptorType 7+pattern DESCRIPTOR_TYPE_STORAGE_BUFFER = DescriptorType 7+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC"-pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC     = DescriptorType 8+pattern DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = DescriptorType 8+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC"-pattern DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC     = DescriptorType 9+pattern DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = DescriptorType 9+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT"-pattern DESCRIPTOR_TYPE_INPUT_ATTACHMENT           = DescriptorType 10+pattern DESCRIPTOR_TYPE_INPUT_ATTACHMENT = DescriptorType 10+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_MUTABLE_EXT"-pattern DESCRIPTOR_TYPE_MUTABLE_EXT                = DescriptorType 1000351000+pattern DESCRIPTOR_TYPE_MUTABLE_EXT = DescriptorType 1000351000+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM"-pattern DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM     = DescriptorType 1000440001+pattern DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = DescriptorType 1000440001+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM"-pattern DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM   = DescriptorType 1000440000+pattern DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = DescriptorType 1000440000+ -- No documentation found for Nested "VkDescriptorType" "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV"-pattern DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV  = DescriptorType 1000165000+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"-pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK       = DescriptorType 1000138000-{-# complete DESCRIPTOR_TYPE_SAMPLER,-             DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,-             DESCRIPTOR_TYPE_SAMPLED_IMAGE,-             DESCRIPTOR_TYPE_STORAGE_IMAGE,-             DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER,-             DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER,-             DESCRIPTOR_TYPE_UNIFORM_BUFFER,-             DESCRIPTOR_TYPE_STORAGE_BUFFER,-             DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC,-             DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC,-             DESCRIPTOR_TYPE_INPUT_ATTACHMENT,-             DESCRIPTOR_TYPE_MUTABLE_EXT,-             DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM,-             DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM,-             DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV,-             DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR,-             DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK :: DescriptorType #-}+pattern DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = DescriptorType 1000138000 +{-# COMPLETE+  DESCRIPTOR_TYPE_SAMPLER+  , DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER+  , DESCRIPTOR_TYPE_SAMPLED_IMAGE+  , DESCRIPTOR_TYPE_STORAGE_IMAGE+  , DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER+  , DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER+  , DESCRIPTOR_TYPE_UNIFORM_BUFFER+  , DESCRIPTOR_TYPE_STORAGE_BUFFER+  , DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC+  , DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC+  , DESCRIPTOR_TYPE_INPUT_ATTACHMENT+  , DESCRIPTOR_TYPE_MUTABLE_EXT+  , DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM+  , DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM+  , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV+  , DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR+  , DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK ::+    DescriptorType+  #-}+ conNameDescriptorType :: String conNameDescriptorType = "DescriptorType" @@ -210,32 +230,71 @@  showTableDescriptorType :: [(DescriptorType, String)] showTableDescriptorType =-  [ (DESCRIPTOR_TYPE_SAMPLER                   , "SAMPLER")-  , (DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER    , "COMBINED_IMAGE_SAMPLER")-  , (DESCRIPTOR_TYPE_SAMPLED_IMAGE             , "SAMPLED_IMAGE")-  , (DESCRIPTOR_TYPE_STORAGE_IMAGE             , "STORAGE_IMAGE")-  , (DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER      , "UNIFORM_TEXEL_BUFFER")-  , (DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER      , "STORAGE_TEXEL_BUFFER")-  , (DESCRIPTOR_TYPE_UNIFORM_BUFFER            , "UNIFORM_BUFFER")-  , (DESCRIPTOR_TYPE_STORAGE_BUFFER            , "STORAGE_BUFFER")-  , (DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC    , "UNIFORM_BUFFER_DYNAMIC")-  , (DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC    , "STORAGE_BUFFER_DYNAMIC")-  , (DESCRIPTOR_TYPE_INPUT_ATTACHMENT          , "INPUT_ATTACHMENT")-  , (DESCRIPTOR_TYPE_MUTABLE_EXT               , "MUTABLE_EXT")-  , (DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM    , "BLOCK_MATCH_IMAGE_QCOM")-  , (DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM  , "SAMPLE_WEIGHT_IMAGE_QCOM")-  , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV , "ACCELERATION_STRUCTURE_NV")-  , (DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, "ACCELERATION_STRUCTURE_KHR")-  , (DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK      , "INLINE_UNIFORM_BLOCK")+  [ (DESCRIPTOR_TYPE_SAMPLER, "SAMPLER")+  ,+    ( DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER+    , "COMBINED_IMAGE_SAMPLER"+    )+  , (DESCRIPTOR_TYPE_SAMPLED_IMAGE, "SAMPLED_IMAGE")+  , (DESCRIPTOR_TYPE_STORAGE_IMAGE, "STORAGE_IMAGE")+  ,+    ( DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER+    , "UNIFORM_TEXEL_BUFFER"+    )+  ,+    ( DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER+    , "STORAGE_TEXEL_BUFFER"+    )+  , (DESCRIPTOR_TYPE_UNIFORM_BUFFER, "UNIFORM_BUFFER")+  , (DESCRIPTOR_TYPE_STORAGE_BUFFER, "STORAGE_BUFFER")+  ,+    ( DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC+    , "UNIFORM_BUFFER_DYNAMIC"+    )+  ,+    ( DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC+    , "STORAGE_BUFFER_DYNAMIC"+    )+  ,+    ( DESCRIPTOR_TYPE_INPUT_ATTACHMENT+    , "INPUT_ATTACHMENT"+    )+  , (DESCRIPTOR_TYPE_MUTABLE_EXT, "MUTABLE_EXT")+  ,+    ( DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM+    , "BLOCK_MATCH_IMAGE_QCOM"+    )+  ,+    ( DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM+    , "SAMPLE_WEIGHT_IMAGE_QCOM"+    )+  ,+    ( DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV+    , "ACCELERATION_STRUCTURE_NV"+    )+  ,+    ( DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR+    , "ACCELERATION_STRUCTURE_KHR"+    )+  ,+    ( DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK+    , "INLINE_UNIFORM_BLOCK"+    )   ]  instance Show DescriptorType where-  showsPrec = enumShowsPrec enumPrefixDescriptorType-                            showTableDescriptorType-                            conNameDescriptorType-                            (\(DescriptorType x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorType+      showTableDescriptorType+      conNameDescriptorType+      (\(DescriptorType x) -> x)+      (showsPrec 11)  instance Read DescriptorType where-  readPrec = enumReadPrec enumPrefixDescriptorType showTableDescriptorType conNameDescriptorType DescriptorType-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorType+      showTableDescriptorType+      conNameDescriptorType+      DescriptorType
src/Vulkan/Core10/Enums/DeviceCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype DeviceCreateFlags = DeviceCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDeviceCreateFlags :: String conNameDeviceCreateFlags = "DeviceCreateFlags" @@ -39,13 +37,18 @@ showTableDeviceCreateFlags = []  instance Show DeviceCreateFlags where-  showsPrec = enumShowsPrec enumPrefixDeviceCreateFlags-                            showTableDeviceCreateFlags-                            conNameDeviceCreateFlags-                            (\(DeviceCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceCreateFlags+      showTableDeviceCreateFlags+      conNameDeviceCreateFlags+      (\(DeviceCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DeviceCreateFlags where   readPrec =-    enumReadPrec enumPrefixDeviceCreateFlags showTableDeviceCreateFlags conNameDeviceCreateFlags DeviceCreateFlags-+    enumReadPrec+      enumPrefixDeviceCreateFlags+      showTableDeviceCreateFlags+      conNameDeviceCreateFlags+      DeviceCreateFlags
src/Vulkan/Core10/Enums/DeviceQueueCreateFlagBits.hs view
@@ -42,15 +42,18 @@ showTableDeviceQueueCreateFlagBits = [(DEVICE_QUEUE_CREATE_PROTECTED_BIT, "")]  instance Show DeviceQueueCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixDeviceQueueCreateFlagBits-                            showTableDeviceQueueCreateFlagBits-                            conNameDeviceQueueCreateFlagBits-                            (\(DeviceQueueCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceQueueCreateFlagBits+      showTableDeviceQueueCreateFlagBits+      conNameDeviceQueueCreateFlagBits+      (\(DeviceQueueCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DeviceQueueCreateFlagBits where-  readPrec = enumReadPrec enumPrefixDeviceQueueCreateFlagBits-                          showTableDeviceQueueCreateFlagBits-                          conNameDeviceQueueCreateFlagBits-                          DeviceQueueCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixDeviceQueueCreateFlagBits+      showTableDeviceQueueCreateFlagBits+      conNameDeviceQueueCreateFlagBits+      DeviceQueueCreateFlagBits
src/Vulkan/Core10/Enums/DynamicState.hs view
@@ -9,6 +9,37 @@                                                       , DYNAMIC_STATE_STENCIL_COMPARE_MASK                                                       , DYNAMIC_STATE_STENCIL_WRITE_MASK                                                       , DYNAMIC_STATE_STENCIL_REFERENCE+                                                      , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV+                                                      , DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV+                                                      , DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV+                                                      , DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV+                                                      , DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV+                                                      , DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV+                                                      , DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV+                                                      , DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV+                                                      , DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV+                                                      , DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV+                                                      , DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT+                                                      , DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT+                                                      , DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT+                                                      , DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT+                                                      , DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT+                                                      , DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT+                                                      , DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT+                                                      , DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT+                                                      , DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT+                                                      , DYNAMIC_STATE_RASTERIZATION_STREAM_EXT+                                                      , DYNAMIC_STATE_COLOR_WRITE_MASK_EXT+                                                      , DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT+                                                      , DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT+                                                      , DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT+                                                      , DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT+                                                      , DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT+                                                      , DYNAMIC_STATE_SAMPLE_MASK_EXT+                                                      , DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT+                                                      , DYNAMIC_STATE_POLYGON_MODE_EXT+                                                      , DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT+                                                      , DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT                                                       , DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT                                                       , DYNAMIC_STATE_LOGIC_OP_EXT                                                       , DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT@@ -66,7 +97,8 @@ -- commands. The number of viewports used by a pipeline is still specified -- by the @viewportCount@ member of -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'.-pattern DYNAMIC_STATE_VIEWPORT                            = DynamicState 0+pattern DYNAMIC_STATE_VIEWPORT = DynamicState 0+ -- | 'DYNAMIC_STATE_SCISSOR' specifies that the @pScissors@ state in -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo' will be ignored -- and /must/ be set dynamically with@@ -74,13 +106,15 @@ -- commands. The number of scissor rectangles used by a pipeline is still -- specified by the @scissorCount@ member of -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo'.-pattern DYNAMIC_STATE_SCISSOR                             = DynamicState 1+pattern DYNAMIC_STATE_SCISSOR = DynamicState 1+ -- | 'DYNAMIC_STATE_LINE_WIDTH' specifies that the @lineWidth@ state in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be -- ignored and /must/ be set dynamically with -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth' before any drawing -- commands that generate line primitives for the rasterizer.-pattern DYNAMIC_STATE_LINE_WIDTH                          = DynamicState 2+pattern DYNAMIC_STATE_LINE_WIDTH = DynamicState 2+ -- | 'DYNAMIC_STATE_DEPTH_BIAS' specifies that the @depthBiasConstantFactor@, -- @depthBiasClamp@ and @depthBiasSlopeFactor@ states in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be@@ -89,7 +123,8 @@ -- are performed with @depthBiasEnable@ in -- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'.-pattern DYNAMIC_STATE_DEPTH_BIAS                          = DynamicState 3+pattern DYNAMIC_STATE_DEPTH_BIAS = DynamicState 3+ -- | 'DYNAMIC_STATE_BLEND_CONSTANTS' specifies that the @blendConstants@ -- state in 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo' will -- be ignored and /must/ be set dynamically with@@ -98,7 +133,8 @@ -- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' member -- @blendEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE' and any of -- the blend functions using a constant blend color.-pattern DYNAMIC_STATE_BLEND_CONSTANTS                     = DynamicState 4+pattern DYNAMIC_STATE_BLEND_CONSTANTS = DynamicState 4+ -- | 'DYNAMIC_STATE_DEPTH_BOUNDS' specifies that the @minDepthBounds@ and -- @maxDepthBounds@ states of -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' will be@@ -107,7 +143,8 @@ -- are performed with a pipeline state with -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member -- @depthBoundsTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'.-pattern DYNAMIC_STATE_DEPTH_BOUNDS                        = DynamicState 5+pattern DYNAMIC_STATE_DEPTH_BOUNDS = DynamicState 5+ -- | 'DYNAMIC_STATE_STENCIL_COMPARE_MASK' specifies that the @compareMask@ -- state in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' -- for both @front@ and @back@ will be ignored and /must/ be set@@ -116,7 +153,8 @@ -- 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_COMPARE_MASK                = DynamicState 6+pattern DYNAMIC_STATE_STENCIL_COMPARE_MASK = DynamicState 6+ -- | 'DYNAMIC_STATE_STENCIL_WRITE_MASK' specifies that the @writeMask@ state -- in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both -- @front@ and @back@ will be ignored and /must/ be set dynamically with@@ -124,7 +162,8 @@ -- draws are performed with a pipeline state with -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'-pattern DYNAMIC_STATE_STENCIL_WRITE_MASK                  = DynamicState 7+pattern DYNAMIC_STATE_STENCIL_WRITE_MASK = DynamicState 7+ -- | 'DYNAMIC_STATE_STENCIL_REFERENCE' specifies that the @reference@ state -- in 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' for both -- @front@ and @back@ will be ignored and /must/ be set dynamically with@@ -132,32 +171,283 @@ -- draws are performed with a pipeline state with -- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo' member -- @stencilTestEnable@ set to 'Vulkan.Core10.FundamentalTypes.TRUE'-pattern DYNAMIC_STATE_STENCIL_REFERENCE                   = DynamicState 8+pattern DYNAMIC_STATE_STENCIL_REFERENCE = DynamicState 8++-- | 'DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV' specifies that the+-- @coverageReductionMode@ state in+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV'+-- before any draw call.+pattern DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = DynamicState 1000455032++-- | 'DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV' specifies that+-- the @representativeFragmentTestEnable@ state in+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV'+-- before any draw call.+pattern DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = DynamicState 1000455031++-- | 'DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV' specifies that the+-- @shadingRateImageEnable@ state in+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV'+-- before any draw call.+pattern DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = DynamicState 1000455030++-- | 'DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV' specifies that the+-- @coverageModulationTableCount@, and @pCoverageModulationTable@ states in+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+-- before any draw call.+pattern DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = DynamicState 1000455029++-- | 'DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV' specifies that the+-- @coverageModulationTableEnable@ state in+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+-- before any draw call.+pattern DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = DynamicState 1000455028++-- | 'DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV' specifies that the+-- @coverageModulationMode@ state in+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV'+-- before any draw call.+pattern DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = DynamicState 1000455027++-- | 'DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV' specifies that the+-- @coverageToColorLocation@ state in+-- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+-- before any draw call.+pattern DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = DynamicState 1000455026++-- | 'DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV' specifies that the+-- @coverageToColorEnable@ state in+-- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+-- before any draw call.+pattern DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = DynamicState 1000455025++-- | 'DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' specifies that the @viewportCount@,+-- and @pViewportSwizzles@ states in+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+-- before any draw call.+pattern DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = DynamicState 1000455024++-- | 'DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV' specifies that the+-- @viewportWScalingEnable@ state in+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV'+-- before any draw call.+pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = DynamicState 1000455023++-- | 'DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT' specifies that the+-- @negativeOneToOne@ state in+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = DynamicState 1000455022++-- | 'DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT' specifies that the+-- @stippledLineEnable@ state in+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = DynamicState 1000455021++-- | 'DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT' specifies that the+-- @lineRasterizationMode@ state in+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT'+-- before any draw call.+pattern DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = DynamicState 1000455020++-- | 'DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT' specifies that the+-- @provokingVertexMode@ state in+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT'+-- before any draw call.+pattern DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = DynamicState 1000455019++-- | 'DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT' specifies that the+-- @colorBlendOp@ state in+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState', and+-- @srcPremultiplied@, @dstPremultiplied@, and @blendOverlap@ states in+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+-- before any draw call.+pattern DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = DynamicState 1000455018++-- | 'DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT' specifies that the+-- @sampleLocationsEnable@ state in+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = DynamicState 1000455017++-- | 'DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT' specifies that the+-- @depthClipEnable@ state in+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = DynamicState 1000455016++-- | 'DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT' specifies that+-- the @extraPrimitiveOverestimationSize@ state in+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT'+-- before any draw call.+pattern DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = DynamicState 1000455015++-- | 'DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT' specifies that the+-- @conservativeRasterizationMode@ state in+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+-- before any draw call.+pattern DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = DynamicState 1000455014++-- | 'DYNAMIC_STATE_RASTERIZATION_STREAM_EXT' specifies that the+-- @rasterizationStream@ state in+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+-- before any draw call.+pattern DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = DynamicState 1000455013++-- | 'DYNAMIC_STATE_COLOR_WRITE_MASK_EXT' specifies that the @colorWriteMask@+-- state in 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' will+-- be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+-- before any draw call.+pattern DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = DynamicState 1000455012++-- | 'DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT' specifies that the+-- @srcColorBlendFactor@, @dstColorBlendFactor@, @colorBlendOp@,+-- @srcAlphaBlendFactor@, @dstAlphaBlendFactor@, and @alphaBlendOp@ states+-- in 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+-- before any draw call.+pattern DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = DynamicState 1000455011++-- | 'DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT' specifies that the @blendEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState' will+-- be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = DynamicState 1000455010++-- | 'DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT' specifies that the @logicOpEnable@+-- state in 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo' will+-- be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = DynamicState 1000455009++-- | 'DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT' specifies that the+-- @alphaToOneEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = DynamicState 1000455008++-- | 'DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT' specifies that the+-- @alphaToCoverageEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = DynamicState 1000455007++-- | 'DYNAMIC_STATE_SAMPLE_MASK_EXT' specifies that the @pSampleMask@ state+-- in 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+-- before any draw call.+pattern DYNAMIC_STATE_SAMPLE_MASK_EXT = DynamicState 1000455006++-- | 'DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT' specifies that the+-- @rasterizationSamples@ state in+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+-- before any draw call.+pattern DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = DynamicState 1000455005++-- | 'DYNAMIC_STATE_POLYGON_MODE_EXT' specifies that the @polygonMode@ state+-- in 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT'+-- before any draw call.+pattern DYNAMIC_STATE_POLYGON_MODE_EXT = DynamicState 1000455004++-- | 'DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT' specifies that the+-- @depthClampEnable@ state in+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo' will be+-- ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT'+-- before any draw call.+pattern DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = DynamicState 1000455003++-- | 'DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT' specifies that the+-- @domainOrigin@ state in+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'+-- will be ignored and /must/ be set dynamically with+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT'+-- before any draw call.+pattern DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = DynamicState 1000455002+ -- | 'DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT' specifies that the -- @pColorWriteEnables@ state in -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT' -- before any draw call.-pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT              = DynamicState 1000381000+pattern DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = DynamicState 1000381000+ -- | '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+pattern DYNAMIC_STATE_LOGIC_OP_EXT = DynamicState 1000377003+ -- | 'DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT' specifies that the -- @patchControlPoints@ state in -- 'Vulkan.Core10.Pipeline.PipelineTessellationStateCreateInfo' will be -- ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT' -- before any drawing commands.-pattern DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT            = DynamicState 1000377000+pattern DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = DynamicState 1000377000+ -- | 'DYNAMIC_STATE_VERTEX_INPUT_EXT' specifies that the @pVertexInputState@ -- state will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT' -- before any drawing commands-pattern DYNAMIC_STATE_VERTEX_INPUT_EXT                    = DynamicState 1000352000+pattern DYNAMIC_STATE_VERTEX_INPUT_EXT = DynamicState 1000352000+ -- | 'DYNAMIC_STATE_LINE_STIPPLE_EXT' specifies that the @lineStippleFactor@ -- and @lineStipplePattern@ state in -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'@@ -167,7 +457,8 @@ -- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT' -- member @stippledLineEnable@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'.-pattern DYNAMIC_STATE_LINE_STIPPLE_EXT                    = DynamicState 1000259000+pattern DYNAMIC_STATE_LINE_STIPPLE_EXT = DynamicState 1000259000+ -- | 'DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR' specifies that state in -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR' -- and@@ -177,7 +468,8 @@ -- or -- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.cmdSetFragmentShadingRateEnumNV' -- before any drawing commands.-pattern DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR           = DynamicState 1000226000+pattern DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = DynamicState 1000226000+ -- | 'DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV' specifies that the -- @pExclusiveScissors@ state in -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'@@ -187,27 +479,31 @@ -- used by a pipeline is still specified by the @exclusiveScissorCount@ -- member of -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV'.-pattern DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV                = DynamicState 1000205001+pattern DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = DynamicState 1000205001+ -- | 'DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV' specifies that the -- coarse sample order state in -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV' -- before any drawing commands.-pattern DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV     = DynamicState 1000164006+pattern DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = DynamicState 1000164006+ -- | 'DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV' specifies that the -- @pShadingRatePalettes@ state in -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV' -- will be ignored and /must/ be set dynamically with -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV' -- before any drawing commands.-pattern DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV    = DynamicState 1000164004+pattern DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = DynamicState 1000164004+ -- | 'DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR' specifies that the -- default stack size computation for the pipeline will be ignored and -- /must/ be set dynamically with -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR' -- before any ray tracing calls are performed. pattern DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = DynamicState 1000347000+ -- | 'DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT' specifies that the -- @sampleLocationsInfo@ state in -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'@@ -216,7 +512,8 @@ -- before any draw or clear commands. Enabling custom sample locations is -- still indicated by the @sampleLocationsEnable@ member of -- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'.-pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT                = DynamicState 1000143000+pattern DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = DynamicState 1000143000+ -- | 'DYNAMIC_STATE_DISCARD_RECTANGLE_EXT' specifies that the -- @pDiscardRectangles@ state in -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'@@ -227,7 +524,8 @@ -- and the number of active discard rectangles is still specified by the -- @discardRectangleMode@ and @discardRectangleCount@ members of -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT'.-pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT               = DynamicState 1000099000+pattern DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = DynamicState 1000099000+ -- | 'DYNAMIC_STATE_VIEWPORT_W_SCALING_NV' specifies that the -- @pViewportWScalings@ state in -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'@@ -237,27 +535,31 @@ -- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV' -- member @viewportScalingEnable@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'-pattern DYNAMIC_STATE_VIEWPORT_W_SCALING_NV               = DynamicState 1000087000+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+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+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+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@@ -266,59 +568,68 @@ -- 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+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+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+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+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+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+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+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+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+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@@ -327,57 +638,94 @@ -- with -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology' -- before any drawing commands.-pattern DYNAMIC_STATE_PRIMITIVE_TOPOLOGY                  = DynamicState 1000267002+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+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,-             DYNAMIC_STATE_DEPTH_BIAS,-             DYNAMIC_STATE_BLEND_CONSTANTS,-             DYNAMIC_STATE_DEPTH_BOUNDS,-             DYNAMIC_STATE_STENCIL_COMPARE_MASK,-             DYNAMIC_STATE_STENCIL_WRITE_MASK,-             DYNAMIC_STATE_STENCIL_REFERENCE,-             DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT,-             DYNAMIC_STATE_LOGIC_OP_EXT,-             DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT,-             DYNAMIC_STATE_VERTEX_INPUT_EXT,-             DYNAMIC_STATE_LINE_STIPPLE_EXT,-             DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR,-             DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV,-             DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV,-             DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,-             DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR,-             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 :: DynamicState #-}+pattern DYNAMIC_STATE_CULL_MODE = DynamicState 1000267000 +{-# COMPLETE+  DYNAMIC_STATE_VIEWPORT+  , DYNAMIC_STATE_SCISSOR+  , DYNAMIC_STATE_LINE_WIDTH+  , DYNAMIC_STATE_DEPTH_BIAS+  , DYNAMIC_STATE_BLEND_CONSTANTS+  , DYNAMIC_STATE_DEPTH_BOUNDS+  , DYNAMIC_STATE_STENCIL_COMPARE_MASK+  , DYNAMIC_STATE_STENCIL_WRITE_MASK+  , DYNAMIC_STATE_STENCIL_REFERENCE+  , DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV+  , DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV+  , DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV+  , DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV+  , DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV+  , DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV+  , DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV+  , DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV+  , DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV+  , DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV+  , DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT+  , DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT+  , DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT+  , DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT+  , DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT+  , DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT+  , DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT+  , DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT+  , DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT+  , DYNAMIC_STATE_RASTERIZATION_STREAM_EXT+  , DYNAMIC_STATE_COLOR_WRITE_MASK_EXT+  , DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT+  , DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT+  , DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT+  , DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT+  , DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT+  , DYNAMIC_STATE_SAMPLE_MASK_EXT+  , DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT+  , DYNAMIC_STATE_POLYGON_MODE_EXT+  , DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT+  , DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT+  , DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT+  , DYNAMIC_STATE_LOGIC_OP_EXT+  , DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT+  , DYNAMIC_STATE_VERTEX_INPUT_EXT+  , DYNAMIC_STATE_LINE_STIPPLE_EXT+  , DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR+  , DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV+  , DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV+  , DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV+  , DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR+  , 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 ::+    DynamicState+  #-}+ conNameDynamicState :: String conNameDynamicState = "DynamicState" @@ -386,52 +734,239 @@  showTableDynamicState :: [(DynamicState, String)] showTableDynamicState =-  [ (DYNAMIC_STATE_VIEWPORT                           , "VIEWPORT")-  , (DYNAMIC_STATE_SCISSOR                            , "SCISSOR")-  , (DYNAMIC_STATE_LINE_WIDTH                         , "LINE_WIDTH")-  , (DYNAMIC_STATE_DEPTH_BIAS                         , "DEPTH_BIAS")-  , (DYNAMIC_STATE_BLEND_CONSTANTS                    , "BLEND_CONSTANTS")-  , (DYNAMIC_STATE_DEPTH_BOUNDS                       , "DEPTH_BOUNDS")-  , (DYNAMIC_STATE_STENCIL_COMPARE_MASK               , "STENCIL_COMPARE_MASK")-  , (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_LOGIC_OP_EXT                       , "LOGIC_OP_EXT")-  , (DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT           , "PATCH_CONTROL_POINTS_EXT")-  , (DYNAMIC_STATE_VERTEX_INPUT_EXT                   , "VERTEX_INPUT_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")-  , (DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV    , "VIEWPORT_COARSE_SAMPLE_ORDER_NV")-  , (DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV   , "VIEWPORT_SHADING_RATE_PALETTE_NV")-  , (DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR, "RAY_TRACING_PIPELINE_STACK_SIZE_KHR")-  , (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")+  [ (DYNAMIC_STATE_VIEWPORT, "VIEWPORT")+  , (DYNAMIC_STATE_SCISSOR, "SCISSOR")+  , (DYNAMIC_STATE_LINE_WIDTH, "LINE_WIDTH")+  , (DYNAMIC_STATE_DEPTH_BIAS, "DEPTH_BIAS")+  , (DYNAMIC_STATE_BLEND_CONSTANTS, "BLEND_CONSTANTS")+  , (DYNAMIC_STATE_DEPTH_BOUNDS, "DEPTH_BOUNDS")+  ,+    ( DYNAMIC_STATE_STENCIL_COMPARE_MASK+    , "STENCIL_COMPARE_MASK"+    )+  ,+    ( DYNAMIC_STATE_STENCIL_WRITE_MASK+    , "STENCIL_WRITE_MASK"+    )+  , (DYNAMIC_STATE_STENCIL_REFERENCE, "STENCIL_REFERENCE")+  ,+    ( DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV+    , "COVERAGE_REDUCTION_MODE_NV"+    )+  ,+    ( DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV+    , "REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV"+    )+  ,+    ( DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV+    , "SHADING_RATE_IMAGE_ENABLE_NV"+    )+  ,+    ( DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV+    , "COVERAGE_MODULATION_TABLE_NV"+    )+  ,+    ( DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV+    , "COVERAGE_MODULATION_TABLE_ENABLE_NV"+    )+  ,+    ( DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV+    , "COVERAGE_MODULATION_MODE_NV"+    )+  ,+    ( DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV+    , "COVERAGE_TO_COLOR_LOCATION_NV"+    )+  ,+    ( DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV+    , "COVERAGE_TO_COLOR_ENABLE_NV"+    )+  ,+    ( DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV+    , "VIEWPORT_SWIZZLE_NV"+    )+  ,+    ( DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV+    , "VIEWPORT_W_SCALING_ENABLE_NV"+    )+  ,+    ( DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT+    , "DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT"+    )+  ,+    ( DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT+    , "LINE_STIPPLE_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT+    , "LINE_RASTERIZATION_MODE_EXT"+    )+  ,+    ( DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT+    , "PROVOKING_VERTEX_MODE_EXT"+    )+  ,+    ( DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT+    , "COLOR_BLEND_ADVANCED_EXT"+    )+  ,+    ( DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT+    , "SAMPLE_LOCATIONS_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT+    , "DEPTH_CLIP_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT+    , "EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT"+    )+  ,+    ( DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT+    , "CONSERVATIVE_RASTERIZATION_MODE_EXT"+    )+  ,+    ( DYNAMIC_STATE_RASTERIZATION_STREAM_EXT+    , "RASTERIZATION_STREAM_EXT"+    )+  ,+    ( DYNAMIC_STATE_COLOR_WRITE_MASK_EXT+    , "COLOR_WRITE_MASK_EXT"+    )+  ,+    ( DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT+    , "COLOR_BLEND_EQUATION_EXT"+    )+  ,+    ( DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT+    , "COLOR_BLEND_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT+    , "LOGIC_OP_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT+    , "ALPHA_TO_ONE_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT+    , "ALPHA_TO_COVERAGE_ENABLE_EXT"+    )+  , (DYNAMIC_STATE_SAMPLE_MASK_EXT, "SAMPLE_MASK_EXT")+  ,+    ( DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT+    , "RASTERIZATION_SAMPLES_EXT"+    )+  , (DYNAMIC_STATE_POLYGON_MODE_EXT, "POLYGON_MODE_EXT")+  ,+    ( DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT+    , "DEPTH_CLAMP_ENABLE_EXT"+    )+  ,+    ( DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT+    , "TESSELLATION_DOMAIN_ORIGIN_EXT"+    )+  ,+    ( DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT+    , "COLOR_WRITE_ENABLE_EXT"+    )+  , (DYNAMIC_STATE_LOGIC_OP_EXT, "LOGIC_OP_EXT")+  ,+    ( DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT+    , "PATCH_CONTROL_POINTS_EXT"+    )+  , (DYNAMIC_STATE_VERTEX_INPUT_EXT, "VERTEX_INPUT_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"+    )+  ,+    ( DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV+    , "VIEWPORT_COARSE_SAMPLE_ORDER_NV"+    )+  ,+    ( DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV+    , "VIEWPORT_SHADING_RATE_PALETTE_NV"+    )+  ,+    ( DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR+    , "RAY_TRACING_PIPELINE_STACK_SIZE_KHR"+    )+  ,+    ( 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-  showsPrec = enumShowsPrec enumPrefixDynamicState-                            showTableDynamicState-                            conNameDynamicState-                            (\(DynamicState x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDynamicState+      showTableDynamicState+      conNameDynamicState+      (\(DynamicState x) -> x)+      (showsPrec 11)  instance Read DynamicState where-  readPrec = enumReadPrec enumPrefixDynamicState showTableDynamicState conNameDynamicState DynamicState-+  readPrec =+    enumReadPrec+      enumPrefixDynamicState+      showTableDynamicState+      conNameDynamicState+      DynamicState
src/Vulkan/Core10/Enums/EventCreateFlagBits.hs view
@@ -42,15 +42,18 @@ showTableEventCreateFlagBits = [(EVENT_CREATE_DEVICE_ONLY_BIT, "")]  instance Show EventCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixEventCreateFlagBits-                            showTableEventCreateFlagBits-                            conNameEventCreateFlagBits-                            (\(EventCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixEventCreateFlagBits+      showTableEventCreateFlagBits+      conNameEventCreateFlagBits+      (\(EventCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read EventCreateFlagBits where-  readPrec = enumReadPrec enumPrefixEventCreateFlagBits-                          showTableEventCreateFlagBits-                          conNameEventCreateFlagBits-                          EventCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixEventCreateFlagBits+      showTableEventCreateFlagBits+      conNameEventCreateFlagBits+      EventCreateFlagBits
src/Vulkan/Core10/Enums/FenceCreateFlagBits.hs view
@@ -43,15 +43,18 @@ showTableFenceCreateFlagBits = [(FENCE_CREATE_SIGNALED_BIT, "")]  instance Show FenceCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixFenceCreateFlagBits-                            showTableFenceCreateFlagBits-                            conNameFenceCreateFlagBits-                            (\(FenceCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixFenceCreateFlagBits+      showTableFenceCreateFlagBits+      conNameFenceCreateFlagBits+      (\(FenceCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read FenceCreateFlagBits where-  readPrec = enumReadPrec enumPrefixFenceCreateFlagBits-                          showTableFenceCreateFlagBits-                          conNameFenceCreateFlagBits-                          FenceCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixFenceCreateFlagBits+      showTableFenceCreateFlagBits+      conNameFenceCreateFlagBits+      FenceCreateFlagBits
src/Vulkan/Core10/Enums/Filter.hs view
@@ -33,15 +33,21 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'FILTER_NEAREST' specifies nearest filtering.-pattern FILTER_NEAREST   = Filter 0+pattern FILTER_NEAREST = Filter 0+ -- | 'FILTER_LINEAR' specifies linear filtering.-pattern FILTER_LINEAR    = Filter 1+pattern FILTER_LINEAR = Filter 1+ -- | 'FILTER_CUBIC_EXT' specifies cubic filtering. pattern FILTER_CUBIC_EXT = Filter 1000015000-{-# complete FILTER_NEAREST,-             FILTER_LINEAR,-             FILTER_CUBIC_EXT :: Filter #-} +{-# COMPLETE+  FILTER_NEAREST+  , FILTER_LINEAR+  , FILTER_CUBIC_EXT ::+    Filter+  #-}+ conNameFilter :: String conNameFilter = "Filter" @@ -49,11 +55,25 @@ enumPrefixFilter = "FILTER_"  showTableFilter :: [(Filter, String)]-showTableFilter = [(FILTER_NEAREST, "NEAREST"), (FILTER_LINEAR, "LINEAR"), (FILTER_CUBIC_EXT, "CUBIC_EXT")]+showTableFilter =+  [ (FILTER_NEAREST, "NEAREST")+  , (FILTER_LINEAR, "LINEAR")+  , (FILTER_CUBIC_EXT, "CUBIC_EXT")+  ]  instance Show Filter where-  showsPrec = enumShowsPrec enumPrefixFilter showTableFilter conNameFilter (\(Filter x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixFilter+      showTableFilter+      conNameFilter+      (\(Filter x) -> x)+      (showsPrec 11)  instance Read Filter where-  readPrec = enumReadPrec enumPrefixFilter showTableFilter conNameFilter Filter-+  readPrec =+    enumReadPrec+      enumPrefixFilter+      showTableFilter+      conNameFilter+      Filter
src/Vulkan/Core10/Enums/Format.hs view
@@ -185,2108 +185,2534 @@                                           , FORMAT_ASTC_12x10_SRGB_BLOCK                                           , FORMAT_ASTC_12x12_UNORM_BLOCK                                           , FORMAT_ASTC_12x12_SRGB_BLOCK-                                          , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG-                                          , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG-                                          , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG-                                          , FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG-                                          , FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG-                                          , 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-                                          , FORMAT_G16_B16R16_2PLANE_420_UNORM-                                          , FORMAT_G16_B16_R16_3PLANE_420_UNORM-                                          , FORMAT_B16G16R16G16_422_UNORM-                                          , FORMAT_G16B16G16R16_422_UNORM-                                          , FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16-                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16-                                          , FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16-                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16-                                          , FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16-                                          , FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16-                                          , FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16-                                          , FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16-                                          , FORMAT_R12X4G12X4_UNORM_2PACK16-                                          , FORMAT_R12X4_UNORM_PACK16-                                          , FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16-                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16-                                          , FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16-                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16-                                          , FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16-                                          , FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16-                                          , FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16-                                          , FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16-                                          , FORMAT_R10X6G10X6_UNORM_2PACK16-                                          , FORMAT_R10X6_UNORM_PACK16-                                          , FORMAT_G8_B8_R8_3PLANE_444_UNORM-                                          , FORMAT_G8_B8R8_2PLANE_422_UNORM-                                          , FORMAT_G8_B8_R8_3PLANE_422_UNORM-                                          , FORMAT_G8_B8R8_2PLANE_420_UNORM-                                          , FORMAT_G8_B8_R8_3PLANE_420_UNORM-                                          , FORMAT_B8G8R8G8_422_UNORM-                                          , FORMAT_G8B8G8R8_422_UNORM-                                          , ..-                                          )) where--import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import GHC.Show (showsPrec)-import Vulkan.Zero (Zero)-import Foreign.Storable (Storable)-import Data.Int (Int32)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))---- | VkFormat - Available image formats------ = 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_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',--- 'Vulkan.Core10.Pass.AttachmentDescription',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',--- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',--- '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',--- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo',--- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT',--- '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.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',--- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',--- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription',--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,--- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV',--- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2',--- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2KHR',--- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties',--- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties'-newtype Format = Format Int32-  deriving newtype (Eq, Ord, Storable, Zero)---- | 'FORMAT_UNDEFINED' specifies that the format is not specified.-pattern FORMAT_UNDEFINED                          = Format 0--- | 'FORMAT_R4G4_UNORM_PACK8' specifies a two-component, 8-bit packed--- unsigned normalized format that has a 4-bit R component in bits 4..7,--- and a 4-bit G component in bits 0..3.-pattern FORMAT_R4G4_UNORM_PACK8                   = Format 1--- | 'FORMAT_R4G4B4A4_UNORM_PACK16' specifies a four-component, 16-bit packed--- unsigned normalized format that has a 4-bit R component in bits 12..15,--- a 4-bit G component in bits 8..11, a 4-bit B component in bits 4..7, and--- a 4-bit A component in bits 0..3.-pattern FORMAT_R4G4B4A4_UNORM_PACK16              = Format 2--- | 'FORMAT_B4G4R4A4_UNORM_PACK16' specifies a four-component, 16-bit packed--- unsigned normalized format that has a 4-bit B component in bits 12..15,--- a 4-bit G component in bits 8..11, a 4-bit R component in bits 4..7, and--- a 4-bit A component in bits 0..3.-pattern FORMAT_B4G4R4A4_UNORM_PACK16              = Format 3--- | 'FORMAT_R5G6B5_UNORM_PACK16' specifies a three-component, 16-bit packed--- unsigned normalized format that has a 5-bit R component in bits 11..15,--- a 6-bit G component in bits 5..10, and a 5-bit B component in bits 0..4.-pattern FORMAT_R5G6B5_UNORM_PACK16                = Format 4--- | 'FORMAT_B5G6R5_UNORM_PACK16' specifies a three-component, 16-bit packed--- unsigned normalized format that has a 5-bit B component in bits 11..15,--- a 6-bit G component in bits 5..10, and a 5-bit R component in bits 0..4.-pattern FORMAT_B5G6R5_UNORM_PACK16                = Format 5--- | 'FORMAT_R5G5B5A1_UNORM_PACK16' specifies a four-component, 16-bit packed--- unsigned normalized format that has a 5-bit R component in bits 11..15,--- a 5-bit G component in bits 6..10, a 5-bit B component in bits 1..5, and--- a 1-bit A component in bit 0.-pattern FORMAT_R5G5B5A1_UNORM_PACK16              = Format 6--- | 'FORMAT_B5G5R5A1_UNORM_PACK16' specifies a four-component, 16-bit packed--- unsigned normalized format that has a 5-bit B component in bits 11..15,--- a 5-bit G component in bits 6..10, a 5-bit R component in bits 1..5, and--- a 1-bit A component in bit 0.-pattern FORMAT_B5G5R5A1_UNORM_PACK16              = Format 7--- | 'FORMAT_A1R5G5B5_UNORM_PACK16' specifies a four-component, 16-bit packed--- unsigned normalized format that has a 1-bit A component in bit 15, a--- 5-bit R component in bits 10..14, a 5-bit G component in bits 5..9, and--- a 5-bit B component in bits 0..4.-pattern FORMAT_A1R5G5B5_UNORM_PACK16              = Format 8--- | 'FORMAT_R8_UNORM' specifies a one-component, 8-bit unsigned normalized--- format that has a single 8-bit R component.-pattern FORMAT_R8_UNORM                           = Format 9--- | 'FORMAT_R8_SNORM' specifies a one-component, 8-bit signed normalized--- format that has a single 8-bit R component.-pattern FORMAT_R8_SNORM                           = Format 10--- | 'FORMAT_R8_USCALED' specifies a one-component, 8-bit unsigned scaled--- integer format that has a single 8-bit R component.-pattern FORMAT_R8_USCALED                         = Format 11--- | 'FORMAT_R8_SSCALED' specifies a one-component, 8-bit signed scaled--- integer format that has a single 8-bit R component.-pattern FORMAT_R8_SSCALED                         = Format 12--- | 'FORMAT_R8_UINT' specifies a one-component, 8-bit unsigned integer--- format that has a single 8-bit R component.-pattern FORMAT_R8_UINT                            = Format 13--- | 'FORMAT_R8_SINT' specifies a one-component, 8-bit signed integer format--- that has a single 8-bit R component.-pattern FORMAT_R8_SINT                            = Format 14--- | 'FORMAT_R8_SRGB' specifies a one-component, 8-bit unsigned normalized--- format that has a single 8-bit R component stored with sRGB nonlinear--- encoding.-pattern FORMAT_R8_SRGB                            = Format 15--- | 'FORMAT_R8G8_UNORM' specifies a two-component, 16-bit unsigned--- normalized format that has an 8-bit R component in byte 0, and an 8-bit--- G component in byte 1.-pattern FORMAT_R8G8_UNORM                         = Format 16--- | 'FORMAT_R8G8_SNORM' specifies a two-component, 16-bit signed normalized--- format that has an 8-bit R component in byte 0, and an 8-bit G component--- in byte 1.-pattern FORMAT_R8G8_SNORM                         = Format 17--- | 'FORMAT_R8G8_USCALED' specifies a two-component, 16-bit unsigned scaled--- integer format that has an 8-bit R component in byte 0, and an 8-bit G--- component in byte 1.-pattern FORMAT_R8G8_USCALED                       = Format 18--- | 'FORMAT_R8G8_SSCALED' specifies a two-component, 16-bit signed scaled--- integer format that has an 8-bit R component in byte 0, and an 8-bit G--- component in byte 1.-pattern FORMAT_R8G8_SSCALED                       = Format 19--- | 'FORMAT_R8G8_UINT' specifies a two-component, 16-bit unsigned integer--- format that has an 8-bit R component in byte 0, and an 8-bit G component--- in byte 1.-pattern FORMAT_R8G8_UINT                          = Format 20--- | 'FORMAT_R8G8_SINT' specifies a two-component, 16-bit signed integer--- format that has an 8-bit R component in byte 0, and an 8-bit G component--- in byte 1.-pattern FORMAT_R8G8_SINT                          = Format 21--- | 'FORMAT_R8G8_SRGB' specifies a two-component, 16-bit unsigned normalized--- format that has an 8-bit R component stored with sRGB nonlinear encoding--- in byte 0, and an 8-bit G component stored with sRGB nonlinear encoding--- in byte 1.-pattern FORMAT_R8G8_SRGB                          = Format 22--- | 'FORMAT_R8G8B8_UNORM' specifies a three-component, 24-bit unsigned--- normalized format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit B component in byte 2.-pattern FORMAT_R8G8B8_UNORM                       = Format 23--- | 'FORMAT_R8G8B8_SNORM' specifies a three-component, 24-bit signed--- normalized format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit B component in byte 2.-pattern FORMAT_R8G8B8_SNORM                       = Format 24--- | 'FORMAT_R8G8B8_USCALED' specifies a three-component, 24-bit unsigned--- scaled format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit B component in byte 2.-pattern FORMAT_R8G8B8_USCALED                     = Format 25--- | 'FORMAT_R8G8B8_SSCALED' specifies a three-component, 24-bit signed--- scaled format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit B component in byte 2.-pattern FORMAT_R8G8B8_SSCALED                     = Format 26--- | 'FORMAT_R8G8B8_UINT' specifies a three-component, 24-bit unsigned--- integer format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit B component in byte 2.-pattern FORMAT_R8G8B8_UINT                        = Format 27--- | 'FORMAT_R8G8B8_SINT' specifies a three-component, 24-bit signed integer--- format that has an 8-bit R component in byte 0, an 8-bit G component in--- byte 1, and an 8-bit B component in byte 2.-pattern FORMAT_R8G8B8_SINT                        = Format 28--- | 'FORMAT_R8G8B8_SRGB' specifies a three-component, 24-bit unsigned--- normalized format that has an 8-bit R component stored with sRGB--- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB--- nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB--- nonlinear encoding in byte 2.-pattern FORMAT_R8G8B8_SRGB                        = Format 29--- | 'FORMAT_B8G8R8_UNORM' specifies a three-component, 24-bit unsigned--- normalized format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit R component in byte 2.-pattern FORMAT_B8G8R8_UNORM                       = Format 30--- | 'FORMAT_B8G8R8_SNORM' specifies a three-component, 24-bit signed--- normalized format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit R component in byte 2.-pattern FORMAT_B8G8R8_SNORM                       = Format 31--- | 'FORMAT_B8G8R8_USCALED' specifies a three-component, 24-bit unsigned--- scaled format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit R component in byte 2.-pattern FORMAT_B8G8R8_USCALED                     = Format 32--- | 'FORMAT_B8G8R8_SSCALED' specifies a three-component, 24-bit signed--- scaled format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit R component in byte 2.-pattern FORMAT_B8G8R8_SSCALED                     = Format 33--- | 'FORMAT_B8G8R8_UINT' specifies a three-component, 24-bit unsigned--- integer format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, and an 8-bit R component in byte 2.-pattern FORMAT_B8G8R8_UINT                        = Format 34--- | 'FORMAT_B8G8R8_SINT' specifies a three-component, 24-bit signed integer--- format that has an 8-bit B component in byte 0, an 8-bit G component in--- byte 1, and an 8-bit R component in byte 2.-pattern FORMAT_B8G8R8_SINT                        = Format 35--- | 'FORMAT_B8G8R8_SRGB' specifies a three-component, 24-bit unsigned--- normalized format that has an 8-bit B component stored with sRGB--- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB--- nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB--- nonlinear encoding in byte 2.-pattern FORMAT_B8G8R8_SRGB                        = Format 36--- | 'FORMAT_R8G8B8A8_UNORM' specifies a four-component, 32-bit unsigned--- normalized format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_R8G8B8A8_UNORM                     = Format 37--- | 'FORMAT_R8G8B8A8_SNORM' specifies a four-component, 32-bit signed--- normalized format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_R8G8B8A8_SNORM                     = Format 38--- | 'FORMAT_R8G8B8A8_USCALED' specifies a four-component, 32-bit unsigned--- scaled format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_R8G8B8A8_USCALED                   = Format 39--- | 'FORMAT_R8G8B8A8_SSCALED' specifies a four-component, 32-bit signed--- scaled format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_R8G8B8A8_SSCALED                   = Format 40--- | 'FORMAT_R8G8B8A8_UINT' specifies a four-component, 32-bit unsigned--- integer format that has an 8-bit R component in byte 0, an 8-bit G--- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_R8G8B8A8_UINT                      = Format 41--- | 'FORMAT_R8G8B8A8_SINT' specifies a four-component, 32-bit signed integer--- format that has an 8-bit R component in byte 0, an 8-bit G component in--- byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte--- 3.-pattern FORMAT_R8G8B8A8_SINT                      = Format 42--- | 'FORMAT_R8G8B8A8_SRGB' specifies a four-component, 32-bit unsigned--- normalized format that has an 8-bit R component stored with sRGB--- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB--- nonlinear encoding in byte 1, an 8-bit B component stored with sRGB--- nonlinear encoding in byte 2, and an 8-bit A component in byte 3.-pattern FORMAT_R8G8B8A8_SRGB                      = Format 43--- | 'FORMAT_B8G8R8A8_UNORM' specifies a four-component, 32-bit unsigned--- normalized format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_B8G8R8A8_UNORM                     = Format 44--- | 'FORMAT_B8G8R8A8_SNORM' specifies a four-component, 32-bit signed--- normalized format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_B8G8R8A8_SNORM                     = Format 45--- | 'FORMAT_B8G8R8A8_USCALED' specifies a four-component, 32-bit unsigned--- scaled format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_B8G8R8A8_USCALED                   = Format 46--- | 'FORMAT_B8G8R8A8_SSCALED' specifies a four-component, 32-bit signed--- scaled format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_B8G8R8A8_SSCALED                   = Format 47--- | 'FORMAT_B8G8R8A8_UINT' specifies a four-component, 32-bit unsigned--- integer format that has an 8-bit B component in byte 0, an 8-bit G--- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A--- component in byte 3.-pattern FORMAT_B8G8R8A8_UINT                      = Format 48--- | 'FORMAT_B8G8R8A8_SINT' specifies a four-component, 32-bit signed integer--- format that has an 8-bit B component in byte 0, an 8-bit G component in--- byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte--- 3.-pattern FORMAT_B8G8R8A8_SINT                      = Format 49--- | 'FORMAT_B8G8R8A8_SRGB' specifies a four-component, 32-bit unsigned--- normalized format that has an 8-bit B component stored with sRGB--- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB--- nonlinear encoding in byte 1, an 8-bit R component stored with sRGB--- nonlinear encoding in byte 2, and an 8-bit A component in byte 3.-pattern FORMAT_B8G8R8A8_SRGB                      = Format 50--- | 'FORMAT_A8B8G8R8_UNORM_PACK32' specifies a four-component, 32-bit packed--- unsigned normalized format that has an 8-bit A component in bits 24..31,--- an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,--- and an 8-bit R component in bits 0..7.-pattern FORMAT_A8B8G8R8_UNORM_PACK32              = Format 51--- | 'FORMAT_A8B8G8R8_SNORM_PACK32' specifies a four-component, 32-bit packed--- signed normalized format that has an 8-bit A component in bits 24..31,--- an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,--- and an 8-bit R component in bits 0..7.-pattern FORMAT_A8B8G8R8_SNORM_PACK32              = Format 52--- | 'FORMAT_A8B8G8R8_USCALED_PACK32' specifies a four-component, 32-bit--- packed unsigned scaled integer format that has an 8-bit A component in--- bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component--- in bits 8..15, and an 8-bit R component in bits 0..7.-pattern FORMAT_A8B8G8R8_USCALED_PACK32            = Format 53--- | 'FORMAT_A8B8G8R8_SSCALED_PACK32' specifies a four-component, 32-bit--- packed signed scaled integer format that has an 8-bit A component in--- bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component--- in bits 8..15, and an 8-bit R component in bits 0..7.-pattern FORMAT_A8B8G8R8_SSCALED_PACK32            = Format 54--- | 'FORMAT_A8B8G8R8_UINT_PACK32' specifies a four-component, 32-bit packed--- unsigned integer format that has an 8-bit A component in bits 24..31, an--- 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,--- and an 8-bit R component in bits 0..7.-pattern FORMAT_A8B8G8R8_UINT_PACK32               = Format 55--- | 'FORMAT_A8B8G8R8_SINT_PACK32' specifies a four-component, 32-bit packed--- signed integer format that has an 8-bit A component in bits 24..31, an--- 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,--- and an 8-bit R component in bits 0..7.-pattern FORMAT_A8B8G8R8_SINT_PACK32               = Format 56--- | 'FORMAT_A8B8G8R8_SRGB_PACK32' specifies a four-component, 32-bit packed--- unsigned normalized format that has an 8-bit A component in bits 24..31,--- an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23,--- an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15,--- and an 8-bit R component stored with sRGB nonlinear encoding in bits--- 0..7.-pattern FORMAT_A8B8G8R8_SRGB_PACK32               = Format 57--- | 'FORMAT_A2R10G10B10_UNORM_PACK32' specifies a four-component, 32-bit--- packed unsigned normalized format that has a 2-bit A component in bits--- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit B component in bits 0..9.-pattern FORMAT_A2R10G10B10_UNORM_PACK32           = Format 58--- | 'FORMAT_A2R10G10B10_SNORM_PACK32' specifies a four-component, 32-bit--- packed signed normalized format that has a 2-bit A component in bits--- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit B component in bits 0..9.-pattern FORMAT_A2R10G10B10_SNORM_PACK32           = Format 59--- | 'FORMAT_A2R10G10B10_USCALED_PACK32' specifies a four-component, 32-bit--- packed unsigned scaled integer format that has a 2-bit A component in--- bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component--- in bits 10..19, and a 10-bit B component in bits 0..9.-pattern FORMAT_A2R10G10B10_USCALED_PACK32         = Format 60--- | 'FORMAT_A2R10G10B10_SSCALED_PACK32' specifies a four-component, 32-bit--- packed signed scaled integer format that has a 2-bit A component in bits--- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit B component in bits 0..9.-pattern FORMAT_A2R10G10B10_SSCALED_PACK32         = Format 61--- | 'FORMAT_A2R10G10B10_UINT_PACK32' specifies a four-component, 32-bit--- packed unsigned integer format that has a 2-bit A component in bits--- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit B component in bits 0..9.-pattern FORMAT_A2R10G10B10_UINT_PACK32            = Format 62--- | 'FORMAT_A2R10G10B10_SINT_PACK32' specifies a four-component, 32-bit--- packed signed integer format that has a 2-bit A component in bits--- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit B component in bits 0..9.-pattern FORMAT_A2R10G10B10_SINT_PACK32            = Format 63--- | 'FORMAT_A2B10G10R10_UNORM_PACK32' specifies a four-component, 32-bit--- packed unsigned normalized format that has a 2-bit A component in bits--- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit R component in bits 0..9.-pattern FORMAT_A2B10G10R10_UNORM_PACK32           = Format 64--- | 'FORMAT_A2B10G10R10_SNORM_PACK32' specifies a four-component, 32-bit--- packed signed normalized format that has a 2-bit A component in bits--- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit R component in bits 0..9.-pattern FORMAT_A2B10G10R10_SNORM_PACK32           = Format 65--- | 'FORMAT_A2B10G10R10_USCALED_PACK32' specifies a four-component, 32-bit--- packed unsigned scaled integer format that has a 2-bit A component in--- bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component--- in bits 10..19, and a 10-bit R component in bits 0..9.-pattern FORMAT_A2B10G10R10_USCALED_PACK32         = Format 66--- | 'FORMAT_A2B10G10R10_SSCALED_PACK32' specifies a four-component, 32-bit--- packed signed scaled integer format that has a 2-bit A component in bits--- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit R component in bits 0..9.-pattern FORMAT_A2B10G10R10_SSCALED_PACK32         = Format 67--- | 'FORMAT_A2B10G10R10_UINT_PACK32' specifies a four-component, 32-bit--- packed unsigned integer format that has a 2-bit A component in bits--- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit R component in bits 0..9.-pattern FORMAT_A2B10G10R10_UINT_PACK32            = Format 68--- | 'FORMAT_A2B10G10R10_SINT_PACK32' specifies a four-component, 32-bit--- packed signed integer format that has a 2-bit A component in bits--- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in--- bits 10..19, and a 10-bit R component in bits 0..9.-pattern FORMAT_A2B10G10R10_SINT_PACK32            = Format 69--- | 'FORMAT_R16_UNORM' specifies a one-component, 16-bit unsigned normalized--- format that has a single 16-bit R component.-pattern FORMAT_R16_UNORM                          = Format 70--- | 'FORMAT_R16_SNORM' specifies a one-component, 16-bit signed normalized--- format that has a single 16-bit R component.-pattern FORMAT_R16_SNORM                          = Format 71--- | 'FORMAT_R16_USCALED' specifies a one-component, 16-bit unsigned scaled--- integer format that has a single 16-bit R component.-pattern FORMAT_R16_USCALED                        = Format 72--- | 'FORMAT_R16_SSCALED' specifies a one-component, 16-bit signed scaled--- integer format that has a single 16-bit R component.-pattern FORMAT_R16_SSCALED                        = Format 73--- | 'FORMAT_R16_UINT' specifies a one-component, 16-bit unsigned integer--- format that has a single 16-bit R component.-pattern FORMAT_R16_UINT                           = Format 74--- | 'FORMAT_R16_SINT' specifies a one-component, 16-bit signed integer--- format that has a single 16-bit R component.-pattern FORMAT_R16_SINT                           = Format 75--- | 'FORMAT_R16_SFLOAT' specifies a one-component, 16-bit signed--- floating-point format that has a single 16-bit R component.-pattern FORMAT_R16_SFLOAT                         = Format 76--- | 'FORMAT_R16G16_UNORM' specifies a two-component, 32-bit unsigned--- normalized format that has a 16-bit R component in bytes 0..1, and a--- 16-bit G component in bytes 2..3.-pattern FORMAT_R16G16_UNORM                       = Format 77--- | 'FORMAT_R16G16_SNORM' specifies a two-component, 32-bit signed--- normalized format that has a 16-bit R component in bytes 0..1, and a--- 16-bit G component in bytes 2..3.-pattern FORMAT_R16G16_SNORM                       = Format 78--- | 'FORMAT_R16G16_USCALED' specifies a two-component, 32-bit unsigned--- scaled integer format that has a 16-bit R component in bytes 0..1, and a--- 16-bit G component in bytes 2..3.-pattern FORMAT_R16G16_USCALED                     = Format 79--- | 'FORMAT_R16G16_SSCALED' specifies a two-component, 32-bit signed scaled--- integer format that has a 16-bit R component in bytes 0..1, and a 16-bit--- G component in bytes 2..3.-pattern FORMAT_R16G16_SSCALED                     = Format 80--- | 'FORMAT_R16G16_UINT' specifies a two-component, 32-bit unsigned integer--- format that has a 16-bit R component in bytes 0..1, and a 16-bit G--- component in bytes 2..3.-pattern FORMAT_R16G16_UINT                        = Format 81--- | 'FORMAT_R16G16_SINT' specifies a two-component, 32-bit signed integer--- format that has a 16-bit R component in bytes 0..1, and a 16-bit G--- component in bytes 2..3.-pattern FORMAT_R16G16_SINT                        = Format 82--- | 'FORMAT_R16G16_SFLOAT' specifies a two-component, 32-bit signed--- floating-point format that has a 16-bit R component in bytes 0..1, and a--- 16-bit G component in bytes 2..3.-pattern FORMAT_R16G16_SFLOAT                      = Format 83--- | 'FORMAT_R16G16B16_UNORM' specifies a three-component, 48-bit unsigned--- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit--- G component in bytes 2..3, and a 16-bit B component in bytes 4..5.-pattern FORMAT_R16G16B16_UNORM                    = Format 84--- | 'FORMAT_R16G16B16_SNORM' specifies a three-component, 48-bit signed--- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit--- G component in bytes 2..3, and a 16-bit B component in bytes 4..5.-pattern FORMAT_R16G16B16_SNORM                    = Format 85--- | 'FORMAT_R16G16B16_USCALED' specifies a three-component, 48-bit unsigned--- scaled integer format that has a 16-bit R component in bytes 0..1, a--- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes--- 4..5.-pattern FORMAT_R16G16B16_USCALED                  = Format 86--- | 'FORMAT_R16G16B16_SSCALED' specifies a three-component, 48-bit signed--- scaled integer format that has a 16-bit R component in bytes 0..1, a--- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes--- 4..5.-pattern FORMAT_R16G16B16_SSCALED                  = Format 87--- | 'FORMAT_R16G16B16_UINT' specifies a three-component, 48-bit unsigned--- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G--- component in bytes 2..3, and a 16-bit B component in bytes 4..5.-pattern FORMAT_R16G16B16_UINT                     = Format 88--- | 'FORMAT_R16G16B16_SINT' specifies a three-component, 48-bit signed--- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G--- component in bytes 2..3, and a 16-bit B component in bytes 4..5.-pattern FORMAT_R16G16B16_SINT                     = Format 89--- | 'FORMAT_R16G16B16_SFLOAT' specifies a three-component, 48-bit signed--- floating-point format that has a 16-bit R component in bytes 0..1, a--- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes--- 4..5.-pattern FORMAT_R16G16B16_SFLOAT                   = Format 90--- | 'FORMAT_R16G16B16A16_UNORM' specifies a four-component, 64-bit unsigned--- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit--- G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a--- 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_UNORM                 = Format 91--- | 'FORMAT_R16G16B16A16_SNORM' specifies a four-component, 64-bit signed--- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit--- G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a--- 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_SNORM                 = Format 92--- | 'FORMAT_R16G16B16A16_USCALED' specifies a four-component, 64-bit--- unsigned scaled integer format that has a 16-bit R component in bytes--- 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes--- 4..5, and a 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_USCALED               = Format 93--- | 'FORMAT_R16G16B16A16_SSCALED' specifies a four-component, 64-bit signed--- scaled integer format that has a 16-bit R component in bytes 0..1, a--- 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,--- and a 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_SSCALED               = Format 94--- | 'FORMAT_R16G16B16A16_UINT' specifies a four-component, 64-bit unsigned--- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G--- component in bytes 2..3, a 16-bit B component in bytes 4..5, and a--- 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_UINT                  = Format 95--- | 'FORMAT_R16G16B16A16_SINT' specifies a four-component, 64-bit signed--- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G--- component in bytes 2..3, a 16-bit B component in bytes 4..5, and a--- 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_SINT                  = Format 96--- | 'FORMAT_R16G16B16A16_SFLOAT' specifies a four-component, 64-bit signed--- floating-point format that has a 16-bit R component in bytes 0..1, a--- 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,--- and a 16-bit A component in bytes 6..7.-pattern FORMAT_R16G16B16A16_SFLOAT                = Format 97--- | 'FORMAT_R32_UINT' specifies a one-component, 32-bit unsigned integer--- format that has a single 32-bit R component.-pattern FORMAT_R32_UINT                           = Format 98--- | 'FORMAT_R32_SINT' specifies a one-component, 32-bit signed integer--- format that has a single 32-bit R component.-pattern FORMAT_R32_SINT                           = Format 99--- | 'FORMAT_R32_SFLOAT' specifies a one-component, 32-bit signed--- floating-point format that has a single 32-bit R component.-pattern FORMAT_R32_SFLOAT                         = Format 100--- | 'FORMAT_R32G32_UINT' specifies a two-component, 64-bit unsigned integer--- format that has a 32-bit R component in bytes 0..3, and a 32-bit G--- component in bytes 4..7.-pattern FORMAT_R32G32_UINT                        = Format 101--- | 'FORMAT_R32G32_SINT' specifies a two-component, 64-bit signed integer--- format that has a 32-bit R component in bytes 0..3, and a 32-bit G--- component in bytes 4..7.-pattern FORMAT_R32G32_SINT                        = Format 102--- | 'FORMAT_R32G32_SFLOAT' specifies a two-component, 64-bit signed--- floating-point format that has a 32-bit R component in bytes 0..3, and a--- 32-bit G component in bytes 4..7.-pattern FORMAT_R32G32_SFLOAT                      = Format 103--- | 'FORMAT_R32G32B32_UINT' specifies a three-component, 96-bit unsigned--- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G--- component in bytes 4..7, and a 32-bit B component in bytes 8..11.-pattern FORMAT_R32G32B32_UINT                     = Format 104--- | 'FORMAT_R32G32B32_SINT' specifies a three-component, 96-bit signed--- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G--- component in bytes 4..7, and a 32-bit B component in bytes 8..11.-pattern FORMAT_R32G32B32_SINT                     = Format 105--- | 'FORMAT_R32G32B32_SFLOAT' specifies a three-component, 96-bit signed--- floating-point format that has a 32-bit R component in bytes 0..3, a--- 32-bit G component in bytes 4..7, and a 32-bit B component in bytes--- 8..11.-pattern FORMAT_R32G32B32_SFLOAT                   = Format 106--- | 'FORMAT_R32G32B32A32_UINT' specifies a four-component, 128-bit unsigned--- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G--- component in bytes 4..7, a 32-bit B component in bytes 8..11, and a--- 32-bit A component in bytes 12..15.-pattern FORMAT_R32G32B32A32_UINT                  = Format 107--- | 'FORMAT_R32G32B32A32_SINT' specifies a four-component, 128-bit signed--- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G--- component in bytes 4..7, a 32-bit B component in bytes 8..11, and a--- 32-bit A component in bytes 12..15.-pattern FORMAT_R32G32B32A32_SINT                  = Format 108--- | 'FORMAT_R32G32B32A32_SFLOAT' specifies a four-component, 128-bit signed--- floating-point format that has a 32-bit R component in bytes 0..3, a--- 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11,--- and a 32-bit A component in bytes 12..15.-pattern FORMAT_R32G32B32A32_SFLOAT                = Format 109--- | 'FORMAT_R64_UINT' specifies a one-component, 64-bit unsigned integer--- format that has a single 64-bit R component.-pattern FORMAT_R64_UINT                           = Format 110--- | 'FORMAT_R64_SINT' specifies a one-component, 64-bit signed integer--- format that has a single 64-bit R component.-pattern FORMAT_R64_SINT                           = Format 111--- | 'FORMAT_R64_SFLOAT' specifies a one-component, 64-bit signed--- floating-point format that has a single 64-bit R component.-pattern FORMAT_R64_SFLOAT                         = Format 112--- | 'FORMAT_R64G64_UINT' specifies a two-component, 128-bit unsigned integer--- format that has a 64-bit R component in bytes 0..7, and a 64-bit G--- component in bytes 8..15.-pattern FORMAT_R64G64_UINT                        = Format 113--- | 'FORMAT_R64G64_SINT' specifies a two-component, 128-bit signed integer--- format that has a 64-bit R component in bytes 0..7, and a 64-bit G--- component in bytes 8..15.-pattern FORMAT_R64G64_SINT                        = Format 114--- | 'FORMAT_R64G64_SFLOAT' specifies a two-component, 128-bit signed--- floating-point format that has a 64-bit R component in bytes 0..7, and a--- 64-bit G component in bytes 8..15.-pattern FORMAT_R64G64_SFLOAT                      = Format 115--- | 'FORMAT_R64G64B64_UINT' specifies a three-component, 192-bit unsigned--- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G--- component in bytes 8..15, and a 64-bit B component in bytes 16..23.-pattern FORMAT_R64G64B64_UINT                     = Format 116--- | 'FORMAT_R64G64B64_SINT' specifies a three-component, 192-bit signed--- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G--- component in bytes 8..15, and a 64-bit B component in bytes 16..23.-pattern FORMAT_R64G64B64_SINT                     = Format 117--- | 'FORMAT_R64G64B64_SFLOAT' specifies a three-component, 192-bit signed--- floating-point format that has a 64-bit R component in bytes 0..7, a--- 64-bit G component in bytes 8..15, and a 64-bit B component in bytes--- 16..23.-pattern FORMAT_R64G64B64_SFLOAT                   = Format 118--- | 'FORMAT_R64G64B64A64_UINT' specifies a four-component, 256-bit unsigned--- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G--- component in bytes 8..15, a 64-bit B component in bytes 16..23, and a--- 64-bit A component in bytes 24..31.-pattern FORMAT_R64G64B64A64_UINT                  = Format 119--- | 'FORMAT_R64G64B64A64_SINT' specifies a four-component, 256-bit signed--- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G--- component in bytes 8..15, a 64-bit B component in bytes 16..23, and a--- 64-bit A component in bytes 24..31.-pattern FORMAT_R64G64B64A64_SINT                  = Format 120--- | 'FORMAT_R64G64B64A64_SFLOAT' specifies a four-component, 256-bit signed--- floating-point format that has a 64-bit R component in bytes 0..7, a--- 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23,--- and a 64-bit A component in bytes 24..31.-pattern FORMAT_R64G64B64A64_SFLOAT                = Format 121--- | 'FORMAT_B10G11R11_UFLOAT_PACK32' specifies a three-component, 32-bit--- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10>--- and--- <https://registry.khronos.org/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--- in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G--- component mantissa in bits 9..17, and a 9-bit R component mantissa in--- bits 0..8.-pattern FORMAT_E5B9G9R9_UFLOAT_PACK32             = Format 123--- | 'FORMAT_D16_UNORM' specifies a one-component, 16-bit unsigned normalized--- format that has a single 16-bit depth component.-pattern FORMAT_D16_UNORM                          = Format 124--- | 'FORMAT_X8_D24_UNORM_PACK32' specifies a two-component, 32-bit format--- that has 24 unsigned normalized bits in the depth component and,--- /optionally/, 8 bits that are unused.-pattern FORMAT_X8_D24_UNORM_PACK32                = Format 125--- | 'FORMAT_D32_SFLOAT' specifies a one-component, 32-bit signed--- floating-point format that has 32 bits in the depth component.-pattern FORMAT_D32_SFLOAT                         = Format 126--- | 'FORMAT_S8_UINT' specifies a one-component, 8-bit unsigned integer--- format that has 8 bits in the stencil component.-pattern FORMAT_S8_UINT                            = Format 127--- | 'FORMAT_D16_UNORM_S8_UINT' specifies a two-component, 24-bit format that--- has 16 unsigned normalized bits in the depth component and 8 unsigned--- integer bits in the stencil component.-pattern FORMAT_D16_UNORM_S8_UINT                  = Format 128--- | 'FORMAT_D24_UNORM_S8_UINT' specifies a two-component, 32-bit packed--- format that has 8 unsigned integer bits in the stencil component, and 24--- unsigned normalized bits in the depth component.-pattern FORMAT_D24_UNORM_S8_UINT                  = Format 129--- | 'FORMAT_D32_SFLOAT_S8_UINT' specifies a two-component format that has 32--- signed float bits in the depth component and 8 unsigned integer bits in--- the stencil component. There are /optionally/ 24 bits that are unused.-pattern FORMAT_D32_SFLOAT_S8_UINT                 = Format 130--- | 'FORMAT_BC1_RGB_UNORM_BLOCK' specifies a three-component,--- block-compressed format where each 64-bit compressed texel block encodes--- a 4×4 rectangle of unsigned normalized RGB texel data. This format has--- no alpha and is considered opaque.-pattern FORMAT_BC1_RGB_UNORM_BLOCK                = Format 131--- | 'FORMAT_BC1_RGB_SRGB_BLOCK' specifies a three-component,--- block-compressed format where each 64-bit compressed texel block encodes--- a 4×4 rectangle of unsigned normalized RGB texel data with sRGB--- nonlinear encoding. This format has no alpha and is considered opaque.-pattern FORMAT_BC1_RGB_SRGB_BLOCK                 = Format 132--- | 'FORMAT_BC1_RGBA_UNORM_BLOCK' specifies a four-component,--- block-compressed format where each 64-bit compressed texel block encodes--- a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1--- bit of alpha.-pattern FORMAT_BC1_RGBA_UNORM_BLOCK               = Format 133--- | 'FORMAT_BC1_RGBA_SRGB_BLOCK' specifies a four-component,--- block-compressed format where each 64-bit compressed texel block encodes--- a 4×4 rectangle of unsigned normalized RGB texel data with sRGB--- nonlinear encoding, and provides 1 bit of alpha.-pattern FORMAT_BC1_RGBA_SRGB_BLOCK                = Format 134--- | 'FORMAT_BC2_UNORM_BLOCK' specifies a four-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data with the first 64 bits encoding--- alpha values followed by 64 bits encoding RGB values.-pattern FORMAT_BC2_UNORM_BLOCK                    = Format 135--- | 'FORMAT_BC2_SRGB_BLOCK' specifies a four-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data with the first 64 bits encoding--- alpha values followed by 64 bits encoding RGB values with sRGB nonlinear--- encoding.-pattern FORMAT_BC2_SRGB_BLOCK                     = Format 136--- | 'FORMAT_BC3_UNORM_BLOCK' specifies a four-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data with the first 64 bits encoding--- alpha values followed by 64 bits encoding RGB values.-pattern FORMAT_BC3_UNORM_BLOCK                    = Format 137--- | 'FORMAT_BC3_SRGB_BLOCK' specifies a four-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data with the first 64 bits encoding--- alpha values followed by 64 bits encoding RGB values with sRGB nonlinear--- encoding.-pattern FORMAT_BC3_SRGB_BLOCK                     = Format 138--- | 'FORMAT_BC4_UNORM_BLOCK' specifies a one-component, block-compressed--- format where each 64-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized red texel data.-pattern FORMAT_BC4_UNORM_BLOCK                    = Format 139--- | 'FORMAT_BC4_SNORM_BLOCK' specifies a one-component, block-compressed--- format where each 64-bit compressed texel block encodes a 4×4 rectangle--- of signed normalized red texel data.-pattern FORMAT_BC4_SNORM_BLOCK                    = Format 140--- | 'FORMAT_BC5_UNORM_BLOCK' specifies a two-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RG texel data with the first 64 bits encoding red--- values followed by 64 bits encoding green values.-pattern FORMAT_BC5_UNORM_BLOCK                    = Format 141--- | 'FORMAT_BC5_SNORM_BLOCK' specifies a two-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of signed normalized RG texel data with the first 64 bits encoding red--- values followed by 64 bits encoding green values.-pattern FORMAT_BC5_SNORM_BLOCK                    = Format 142--- | 'FORMAT_BC6H_UFLOAT_BLOCK' specifies a three-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned floating-point RGB texel data.-pattern FORMAT_BC6H_UFLOAT_BLOCK                  = Format 143--- | 'FORMAT_BC6H_SFLOAT_BLOCK' specifies a three-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of signed floating-point RGB texel data.-pattern FORMAT_BC6H_SFLOAT_BLOCK                  = Format 144--- | 'FORMAT_BC7_UNORM_BLOCK' specifies a four-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data.-pattern FORMAT_BC7_UNORM_BLOCK                    = Format 145--- | 'FORMAT_BC7_SRGB_BLOCK' specifies a four-component, block-compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data with sRGB nonlinear encoding--- applied to the RGB components.-pattern FORMAT_BC7_SRGB_BLOCK                     = Format 146--- | 'FORMAT_ETC2_R8G8B8_UNORM_BLOCK' specifies a three-component, ETC2--- compressed format where each 64-bit compressed texel block encodes a 4×4--- rectangle of unsigned normalized RGB texel data. This format has no--- alpha and is considered opaque.-pattern FORMAT_ETC2_R8G8B8_UNORM_BLOCK            = Format 147--- | 'FORMAT_ETC2_R8G8B8_SRGB_BLOCK' specifies a three-component, ETC2--- compressed format where each 64-bit compressed texel block encodes a 4×4--- rectangle of unsigned normalized RGB texel data with sRGB nonlinear--- encoding. This format has no alpha and is considered opaque.-pattern FORMAT_ETC2_R8G8B8_SRGB_BLOCK             = Format 148--- | 'FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK' specifies a four-component, ETC2--- compressed format where each 64-bit compressed texel block encodes a 4×4--- rectangle of unsigned normalized RGB texel data, and provides 1 bit of--- alpha.-pattern FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK          = Format 149--- | 'FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK' specifies a four-component, ETC2--- compressed format where each 64-bit compressed texel block encodes a 4×4--- rectangle of unsigned normalized RGB texel data with sRGB nonlinear--- encoding, and provides 1 bit of alpha.-pattern FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK           = Format 150--- | 'FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK' specifies a four-component, ETC2--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of unsigned normalized RGBA texel data with the first 64--- bits encoding alpha values followed by 64 bits encoding RGB values.-pattern FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK          = Format 151--- | 'FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK' specifies a four-component, ETC2--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of unsigned normalized RGBA texel data with the first 64--- bits encoding alpha values followed by 64 bits encoding RGB values with--- sRGB nonlinear encoding applied.-pattern FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK           = Format 152--- | 'FORMAT_EAC_R11_UNORM_BLOCK' specifies a one-component, ETC2 compressed--- format where each 64-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized red texel data.-pattern FORMAT_EAC_R11_UNORM_BLOCK                = Format 153--- | 'FORMAT_EAC_R11_SNORM_BLOCK' specifies a one-component, ETC2 compressed--- format where each 64-bit compressed texel block encodes a 4×4 rectangle--- of signed normalized red texel data.-pattern FORMAT_EAC_R11_SNORM_BLOCK                = Format 154--- | 'FORMAT_EAC_R11G11_UNORM_BLOCK' specifies a two-component, ETC2--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of unsigned normalized RG texel data with the first 64--- bits encoding red values followed by 64 bits encoding green values.-pattern FORMAT_EAC_R11G11_UNORM_BLOCK             = Format 155--- | 'FORMAT_EAC_R11G11_SNORM_BLOCK' specifies a two-component, ETC2--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of signed normalized RG texel data with the first 64 bits--- encoding red values followed by 64 bits encoding green values.-pattern FORMAT_EAC_R11G11_SNORM_BLOCK             = Format 156--- | 'FORMAT_ASTC_4x4_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 4×4 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_4x4_UNORM_BLOCK               = Format 157--- | 'FORMAT_ASTC_4x4_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes a 4×4 rectangle--- of unsigned normalized RGBA texel data with sRGB nonlinear encoding--- applied to the RGB components.-pattern FORMAT_ASTC_4x4_SRGB_BLOCK                = Format 158--- | 'FORMAT_ASTC_5x4_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 5×4 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_5x4_UNORM_BLOCK               = Format 159--- | 'FORMAT_ASTC_5x4_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes a 5×4 rectangle--- of unsigned normalized RGBA texel data with sRGB nonlinear encoding--- applied to the RGB components.-pattern FORMAT_ASTC_5x4_SRGB_BLOCK                = Format 160--- | 'FORMAT_ASTC_5x5_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 5×5 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_5x5_UNORM_BLOCK               = Format 161--- | 'FORMAT_ASTC_5x5_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes a 5×5 rectangle--- of unsigned normalized RGBA texel data with sRGB nonlinear encoding--- applied to the RGB components.-pattern FORMAT_ASTC_5x5_SRGB_BLOCK                = Format 162--- | 'FORMAT_ASTC_6x5_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 6×5 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_6x5_UNORM_BLOCK               = Format 163--- | 'FORMAT_ASTC_6x5_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes a 6×5 rectangle--- of unsigned normalized RGBA texel data with sRGB nonlinear encoding--- applied to the RGB components.-pattern FORMAT_ASTC_6x5_SRGB_BLOCK                = Format 164--- | 'FORMAT_ASTC_6x6_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 6×6 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_6x6_UNORM_BLOCK               = Format 165--- | 'FORMAT_ASTC_6x6_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes a 6×6 rectangle--- of unsigned normalized RGBA texel data with sRGB nonlinear encoding--- applied to the RGB components.-pattern FORMAT_ASTC_6x6_SRGB_BLOCK                = Format 166--- | 'FORMAT_ASTC_8x5_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes an--- 8×5 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_8x5_UNORM_BLOCK               = Format 167--- | 'FORMAT_ASTC_8x5_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes an 8×5--- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear--- encoding applied to the RGB components.-pattern FORMAT_ASTC_8x5_SRGB_BLOCK                = Format 168--- | 'FORMAT_ASTC_8x6_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes an--- 8×6 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_8x6_UNORM_BLOCK               = Format 169--- | 'FORMAT_ASTC_8x6_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes an 8×6--- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear--- encoding applied to the RGB components.-pattern FORMAT_ASTC_8x6_SRGB_BLOCK                = Format 170--- | 'FORMAT_ASTC_8x8_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes an--- 8×8 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_8x8_UNORM_BLOCK               = Format 171--- | 'FORMAT_ASTC_8x8_SRGB_BLOCK' specifies a four-component, ASTC compressed--- format where each 128-bit compressed texel block encodes an 8×8--- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear--- encoding applied to the RGB components.-pattern FORMAT_ASTC_8x8_SRGB_BLOCK                = Format 172--- | 'FORMAT_ASTC_10x5_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×5 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_10x5_UNORM_BLOCK              = Format 173--- | 'FORMAT_ASTC_10x5_SRGB_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×5 rectangle of unsigned normalized RGBA texel data with sRGB--- nonlinear encoding applied to the RGB components.-pattern FORMAT_ASTC_10x5_SRGB_BLOCK               = Format 174--- | 'FORMAT_ASTC_10x6_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×6 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_10x6_UNORM_BLOCK              = Format 175--- | 'FORMAT_ASTC_10x6_SRGB_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×6 rectangle of unsigned normalized RGBA texel data with sRGB--- nonlinear encoding applied to the RGB components.-pattern FORMAT_ASTC_10x6_SRGB_BLOCK               = Format 176--- | 'FORMAT_ASTC_10x8_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×8 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_10x8_UNORM_BLOCK              = Format 177--- | 'FORMAT_ASTC_10x8_SRGB_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×8 rectangle of unsigned normalized RGBA texel data with sRGB--- nonlinear encoding applied to the RGB components.-pattern FORMAT_ASTC_10x8_SRGB_BLOCK               = Format 178--- | 'FORMAT_ASTC_10x10_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×10 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_10x10_UNORM_BLOCK             = Format 179--- | 'FORMAT_ASTC_10x10_SRGB_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 10×10 rectangle of unsigned normalized RGBA texel data with sRGB--- nonlinear encoding applied to the RGB components.-pattern FORMAT_ASTC_10x10_SRGB_BLOCK              = Format 180--- | 'FORMAT_ASTC_12x10_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×10 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_12x10_UNORM_BLOCK             = Format 181--- | 'FORMAT_ASTC_12x10_SRGB_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×10 rectangle of unsigned normalized RGBA texel data with sRGB--- nonlinear encoding applied to the RGB components.-pattern FORMAT_ASTC_12x10_SRGB_BLOCK              = Format 182--- | 'FORMAT_ASTC_12x12_UNORM_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 12×12 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_ASTC_12x12_UNORM_BLOCK             = Format 183--- | 'FORMAT_ASTC_12x12_SRGB_BLOCK' specifies a four-component, ASTC--- compressed format where each 128-bit compressed texel block encodes a--- 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_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--- encoding applied to the RGB components.-pattern FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG         = Format 1000054007--- | 'FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC--- compressed format where each 64-bit compressed texel block encodes an--- 8×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear--- encoding applied to the RGB components.-pattern FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG         = Format 1000054006--- | 'FORMAT_PVRTC1_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--- encoding applied to the RGB components.-pattern FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG         = Format 1000054005--- | 'FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC--- compressed format where each 64-bit compressed texel block encodes an--- 8×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear--- encoding applied to the RGB components.-pattern FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG         = Format 1000054004--- | 'FORMAT_PVRTC2_4BPP_UNORM_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.-pattern FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG        = Format 1000054003--- | 'FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG' specifies a four-component, PVRTC--- compressed format where each 64-bit compressed texel block encodes an--- 8×4 rectangle of unsigned normalized RGBA texel data.-pattern FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG        = Format 1000054002--- | 'FORMAT_PVRTC1_4BPP_UNORM_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.-pattern FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG        = Format 1000054001--- | 'FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG' specifies a four-component, PVRTC--- 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--- 16-bit R component in each 16-bit word of plane 2. Each plane has 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane.-pattern FORMAT_G16_B16_R16_3PLANE_444_UNORM       = Format 1000156033--- | 'FORMAT_G16_B16R16_2PLANE_422_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. The horizontal dimension of the BR plane is--- halved relative to the image dimensions, and each R and B value is--- shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G16_B16R16_2PLANE_422_UNORM        = Format 1000156032--- | 'FORMAT_G16_B16_R16_3PLANE_422_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--- 16-bit R component in each 16-bit word of plane 2. The horizontal--- dimension of the R and B plane is halved relative to the image--- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G16_B16_R16_3PLANE_422_UNORM       = Format 1000156031--- | 'FORMAT_G16_B16R16_2PLANE_420_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. The horizontal and vertical dimensions of the--- BR plane are halved relative to the image dimensions, and each R and B--- value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G16_B16R16_2PLANE_420_UNORM        = Format 1000156030--- | 'FORMAT_G16_B16_R16_3PLANE_420_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--- 16-bit R component in each 16-bit word of plane 2. The horizontal and--- vertical dimensions of the R and B planes are halved relative to the--- image dimensions, and each R and B component is shared with the G--- components for which \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G16_B16_R16_3PLANE_420_UNORM       = Format 1000156029--- | 'FORMAT_B16G16R16G16_422_UNORM' specifies a four-component, 64-bit--- format containing a pair of G components, an R component, and a B--- component, collectively encoding a 2×1 rectangle of unsigned normalized--- RGB texel data. One G value is present at each /i/ coordinate, with the--- B and R values shared across both G values and thus recorded at half the--- horizontal resolution of the image. This format has a 16-bit B component--- in the word in bytes 0..1, a 16-bit G component for the even /i/--- coordinate in the word in bytes 2..3, a 16-bit R component in the word--- in bytes 4..5, and a 16-bit G component for the odd /i/ coordinate in--- the word in bytes 6..7. This format only supports images with a width--- that is a multiple of two. For the purposes of the constraints on copy--- extents, this format is treated as a compressed format with a 2×1--- compressed texel block.-pattern FORMAT_B16G16R16G16_422_UNORM             = Format 1000156028--- | 'FORMAT_G16B16G16R16_422_UNORM' specifies a four-component, 64-bit--- format containing a pair of G components, an R component, and a B--- component, collectively encoding a 2×1 rectangle of unsigned normalized--- RGB texel data. One G value is present at each /i/ coordinate, with the--- B and R values shared across both G values and thus recorded at half the--- horizontal resolution of the image. This format has a 16-bit G component--- for the even /i/ coordinate in the word in bytes 0..1, a 16-bit B--- component in the word in bytes 2..3, a 16-bit G component for the odd--- /i/ coordinate in the word in bytes 4..5, and a 16-bit R component in--- the word in bytes 6..7. This format only supports images with a width--- that is a multiple of two. For the purposes of the constraints on copy--- extents, this format is treated as a compressed format with a 2×1--- compressed texel block.-pattern FORMAT_G16B16G16R16_422_UNORM             = Format 1000156027--- | 'FORMAT_G12X4_B12X4_R12X4_3PLANE_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, a 12-bit B component--- in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R--- component in the top 12 bits of each 16-bit word of plane 2, with the--- bottom 4 bits of each word unused. Each plane has 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane.-pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = Format 1000156026--- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_422_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, with the bottom 4 bits of each word unused. The--- horizontal dimension of the BR plane is halved relative to the image--- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = Format 1000156025--- | 'FORMAT_G12X4_B12X4_R12X4_3PLANE_422_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, a 12-bit B component--- in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R--- component in the top 12 bits of each 16-bit word of plane 2, with the--- bottom 4 bits of each word unused. The horizontal dimension of the R and--- B plane is halved relative to the image dimensions, and each R and B--- value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = Format 1000156024--- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_420_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, with the bottom 4 bits of each word unused. The--- horizontal and vertical dimensions of the BR plane are halved relative--- to the image dimensions, and each R and B value is shared with the G--- components for which \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = Format 1000156023--- | 'FORMAT_G12X4_B12X4_R12X4_3PLANE_420_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, a 12-bit B component--- in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R--- component in the top 12 bits of each 16-bit word of plane 2, with the--- bottom 4 bits of each word unused. The horizontal and vertical--- dimensions of the R and B planes are halved relative to the image--- dimensions, and each R and B component is shared with the G components--- for which \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = Format 1000156022--- | 'FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16' specifies a--- four-component, 64-bit format containing a pair of G components, an R--- component, and a B component, collectively encoding a 2×1 rectangle of--- unsigned normalized RGB texel data. One G value is present at each /i/--- coordinate, with the B and R values shared across both G values and thus--- recorded at half the horizontal resolution of the image. This format has--- a 12-bit B component in the top 12 bits of the word in bytes 0..1, a--- 12-bit G component for the even /i/ coordinate in the top 12 bits of the--- word in bytes 2..3, a 12-bit R component in the top 12 bits of the word--- in bytes 4..5, and a 12-bit G component for the odd /i/ coordinate in--- the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of--- each word unused. This format only supports images with a width that is--- a multiple of two. For the purposes of the constraints on copy extents,--- this format is treated as a compressed format with a 2×1 compressed--- texel block.-pattern FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = Format 1000156021--- | 'FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16' specifies a--- four-component, 64-bit format containing a pair of G components, an R--- component, and a B component, collectively encoding a 2×1 rectangle of--- unsigned normalized RGB texel data. One G value is present at each /i/--- coordinate, with the B and R values shared across both G values and thus--- recorded at half the horizontal resolution of the image. This format has--- a 12-bit G component for the even /i/ coordinate in the top 12 bits of--- the word in bytes 0..1, a 12-bit B component in the top 12 bits of the--- word in bytes 2..3, a 12-bit G component for the odd /i/ coordinate in--- the top 12 bits of the word in bytes 4..5, and a 12-bit R component in--- the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of--- each word unused. This format only supports images with a width that is--- a multiple of two. For the purposes of the constraints on copy extents,--- this format is treated as a compressed format with a 2×1 compressed--- texel block.-pattern FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = Format 1000156020--- | 'FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16' specifies a four-component,--- 64-bit unsigned normalized format that has a 12-bit R component in the--- top 12 bits of the word in bytes 0..1, a 12-bit G component in the top--- 12 bits of the word in bytes 2..3, a 12-bit B component in the top 12--- bits of the word in bytes 4..5, and a 12-bit A component in the top 12--- bits of the word in bytes 6..7, with the bottom 4 bits of each word--- unused.-pattern FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = Format 1000156019--- | 'FORMAT_R12X4G12X4_UNORM_2PACK16' specifies a two-component, 32-bit--- unsigned normalized format that has a 12-bit R component in the top 12--- bits of the word in bytes 0..1, and a 12-bit G component in the top 12--- bits of the word in bytes 2..3, with the bottom 4 bits of each word--- unused.-pattern FORMAT_R12X4G12X4_UNORM_2PACK16           = Format 1000156018--- | 'FORMAT_R12X4_UNORM_PACK16' specifies a one-component, 16-bit unsigned--- normalized format that has a single 12-bit R component in the top 12--- bits of a 16-bit word, with the bottom 4 bits unused.-pattern FORMAT_R12X4_UNORM_PACK16                 = Format 1000156017--- | 'FORMAT_G10X6_B10X6_R10X6_3PLANE_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, a 10-bit B component--- in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R--- component in the top 10 bits of each 16-bit word of plane 2, with the--- bottom 6 bits of each word unused. Each plane has 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane.-pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = Format 1000156016--- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_422_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, with the bottom 6 bits of each word unused. The--- horizontal dimension of the BR plane is halved relative to the image--- dimensions, and each R and B value is shared with the G components for--- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = Format 1000156015--- | 'FORMAT_G10X6_B10X6_R10X6_3PLANE_422_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, a 10-bit B component--- in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R--- component in the top 10 bits of each 16-bit word of plane 2, with the--- bottom 6 bits of each word unused. The horizontal dimension of the R and--- B plane is halved relative to the image dimensions, and each R and B--- value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = Format 1000156014--- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_420_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, with the bottom 6 bits of each word unused. The--- horizontal and vertical dimensions of the BR plane are halved relative--- to the image dimensions, and each R and B value is shared with the G--- components for which \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = Format 1000156013--- | 'FORMAT_G10X6_B10X6_R10X6_3PLANE_420_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, a 10-bit B component--- in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R--- component in the top 10 bits of each 16-bit word of plane 2, with the--- bottom 6 bits of each word unused. The horizontal and vertical--- dimensions of the R and B planes are halved relative to the image--- dimensions, and each R and B component is shared with the G components--- for which \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = Format 1000156012--- | 'FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16' specifies a--- four-component, 64-bit format containing a pair of G components, an R--- component, and a B component, collectively encoding a 2×1 rectangle of--- unsigned normalized RGB texel data. One G value is present at each /i/--- coordinate, with the B and R values shared across both G values and thus--- recorded at half the horizontal resolution of the image. This format has--- a 10-bit B component in the top 10 bits of the word in bytes 0..1, a--- 10-bit G component for the even /i/ coordinate in the top 10 bits of the--- word in bytes 2..3, a 10-bit R component in the top 10 bits of the word--- in bytes 4..5, and a 10-bit G component for the odd /i/ coordinate in--- the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of--- each word unused. This format only supports images with a width that is--- a multiple of two. For the purposes of the constraints on copy extents,--- this format is treated as a compressed format with a 2×1 compressed--- texel block.-pattern FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = Format 1000156011--- | 'FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16' specifies a--- four-component, 64-bit format containing a pair of G components, an R--- component, and a B component, collectively encoding a 2×1 rectangle of--- unsigned normalized RGB texel data. One G value is present at each /i/--- coordinate, with the B and R values shared across both G values and thus--- recorded at half the horizontal resolution of the image. This format has--- a 10-bit G component for the even /i/ coordinate in the top 10 bits of--- the word in bytes 0..1, a 10-bit B component in the top 10 bits of the--- word in bytes 2..3, a 10-bit G component for the odd /i/ coordinate in--- the top 10 bits of the word in bytes 4..5, and a 10-bit R component in--- the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of--- each word unused. This format only supports images with a width that is--- a multiple of two. For the purposes of the constraints on copy extents,--- this format is treated as a compressed format with a 2×1 compressed--- texel block.-pattern FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = Format 1000156010--- | 'FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16' specifies a four-component,--- 64-bit unsigned normalized format that has a 10-bit R component in the--- top 10 bits of the word in bytes 0..1, a 10-bit G component in the top--- 10 bits of the word in bytes 2..3, a 10-bit B component in the top 10--- bits of the word in bytes 4..5, and a 10-bit A component in the top 10--- bits of the word in bytes 6..7, with the bottom 6 bits of each word--- unused.-pattern FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = Format 1000156009--- | 'FORMAT_R10X6G10X6_UNORM_2PACK16' specifies a two-component, 32-bit--- unsigned normalized format that has a 10-bit R component in the top 10--- bits of the word in bytes 0..1, and a 10-bit G component in the top 10--- bits of the word in bytes 2..3, with the bottom 6 bits of each word--- unused.-pattern FORMAT_R10X6G10X6_UNORM_2PACK16           = Format 1000156008--- | 'FORMAT_R10X6_UNORM_PACK16' specifies a one-component, 16-bit unsigned--- normalized format that has a single 10-bit R component in the top 10--- bits of a 16-bit word, with the bottom 6 bits unused.-pattern FORMAT_R10X6_UNORM_PACK16                 = Format 1000156007--- | 'FORMAT_G8_B8_R8_3PLANE_444_UNORM' specifies an unsigned normalized--- /multi-planar format/ that has an 8-bit G component in plane 0, an 8-bit--- B component in plane 1, and an 8-bit R component in plane 2. Each plane--- has 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane.-pattern FORMAT_G8_B8_R8_3PLANE_444_UNORM          = Format 1000156006--- | 'FORMAT_G8_B8R8_2PLANE_422_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. The horizontal dimension of--- the BR plane is halved relative to the image dimensions, and each R and--- B value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G8_B8R8_2PLANE_422_UNORM           = Format 1000156005--- | 'FORMAT_G8_B8_R8_3PLANE_422_UNORM' specifies an unsigned normalized--- /multi-planar format/ that has an 8-bit G component in plane 0, an 8-bit--- B component in plane 1, and an 8-bit R component in plane 2. The--- horizontal dimension of the R and B plane is halved relative to the--- image dimensions, and each R and B value is shared with the G components--- for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =--- i_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width that is a--- multiple of two.-pattern FORMAT_G8_B8_R8_3PLANE_422_UNORM          = Format 1000156004--- | 'FORMAT_G8_B8R8_2PLANE_420_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. The horizontal and vertical--- dimensions of the BR plane are halved relative to the image dimensions,--- and each R and B value is shared with the G components for which--- \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G8_B8R8_2PLANE_420_UNORM           = Format 1000156003--- | 'FORMAT_G8_B8_R8_3PLANE_420_UNORM' specifies an unsigned normalized--- /multi-planar format/ that has an 8-bit G component in plane 0, an 8-bit--- B component in plane 1, and an 8-bit R component in plane 2. The--- horizontal and vertical dimensions of the R and B planes are halved--- relative to the image dimensions, and each R and B component is shared--- with the G components for which \(\left\lfloor i_G \times 0.5--- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5--- \right\rfloor = j_B = j_R\). 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,--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for--- the B plane, and--- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for--- the R plane. This format only supports images with a width and height--- that is a multiple of two.-pattern FORMAT_G8_B8_R8_3PLANE_420_UNORM          = Format 1000156002--- | 'FORMAT_B8G8R8G8_422_UNORM' specifies a four-component, 32-bit format--- containing a pair of G components, an R component, and a B component,--- collectively encoding a 2×1 rectangle of unsigned normalized RGB texel--- data. One G value is present at each /i/ coordinate, with the B and R--- values shared across both G values and thus recorded at half the--- horizontal resolution of the image. This format has an 8-bit B component--- in byte 0, an 8-bit G component for the even /i/ coordinate in byte 1,--- an 8-bit R component in byte 2, and an 8-bit G component for the odd /i/--- coordinate in byte 3. This format only supports images with a width that--- is a multiple of two. For the purposes of the constraints on copy--- extents, this format is treated as a compressed format with a 2×1--- compressed texel block.-pattern FORMAT_B8G8R8G8_422_UNORM                 = Format 1000156001--- | 'FORMAT_G8B8G8R8_422_UNORM' specifies a four-component, 32-bit format--- containing a pair of G components, an R component, and a B component,--- collectively encoding a 2×1 rectangle of unsigned normalized RGB texel--- data. One G value is present at each /i/ coordinate, with the B and R--- values shared across both G values and thus recorded at half the--- horizontal resolution of the image. This format has an 8-bit G component--- for the even /i/ coordinate in byte 0, an 8-bit B component in byte 1,--- an 8-bit G component for the odd /i/ coordinate in byte 2, and an 8-bit--- R component in byte 3. This format only supports images with a width--- that is a multiple of two. For the purposes of the constraints on copy--- extents, this format is treated as a compressed format with a 2×1--- compressed texel block.-pattern FORMAT_G8B8G8R8_422_UNORM                 = Format 1000156000-{-# complete FORMAT_UNDEFINED,-             FORMAT_R4G4_UNORM_PACK8,-             FORMAT_R4G4B4A4_UNORM_PACK16,-             FORMAT_B4G4R4A4_UNORM_PACK16,-             FORMAT_R5G6B5_UNORM_PACK16,-             FORMAT_B5G6R5_UNORM_PACK16,-             FORMAT_R5G5B5A1_UNORM_PACK16,-             FORMAT_B5G5R5A1_UNORM_PACK16,-             FORMAT_A1R5G5B5_UNORM_PACK16,-             FORMAT_R8_UNORM,-             FORMAT_R8_SNORM,-             FORMAT_R8_USCALED,-             FORMAT_R8_SSCALED,-             FORMAT_R8_UINT,-             FORMAT_R8_SINT,-             FORMAT_R8_SRGB,-             FORMAT_R8G8_UNORM,-             FORMAT_R8G8_SNORM,-             FORMAT_R8G8_USCALED,-             FORMAT_R8G8_SSCALED,-             FORMAT_R8G8_UINT,-             FORMAT_R8G8_SINT,-             FORMAT_R8G8_SRGB,-             FORMAT_R8G8B8_UNORM,-             FORMAT_R8G8B8_SNORM,-             FORMAT_R8G8B8_USCALED,-             FORMAT_R8G8B8_SSCALED,-             FORMAT_R8G8B8_UINT,-             FORMAT_R8G8B8_SINT,-             FORMAT_R8G8B8_SRGB,-             FORMAT_B8G8R8_UNORM,-             FORMAT_B8G8R8_SNORM,-             FORMAT_B8G8R8_USCALED,-             FORMAT_B8G8R8_SSCALED,-             FORMAT_B8G8R8_UINT,-             FORMAT_B8G8R8_SINT,-             FORMAT_B8G8R8_SRGB,-             FORMAT_R8G8B8A8_UNORM,-             FORMAT_R8G8B8A8_SNORM,-             FORMAT_R8G8B8A8_USCALED,-             FORMAT_R8G8B8A8_SSCALED,-             FORMAT_R8G8B8A8_UINT,-             FORMAT_R8G8B8A8_SINT,-             FORMAT_R8G8B8A8_SRGB,-             FORMAT_B8G8R8A8_UNORM,-             FORMAT_B8G8R8A8_SNORM,-             FORMAT_B8G8R8A8_USCALED,-             FORMAT_B8G8R8A8_SSCALED,-             FORMAT_B8G8R8A8_UINT,-             FORMAT_B8G8R8A8_SINT,-             FORMAT_B8G8R8A8_SRGB,-             FORMAT_A8B8G8R8_UNORM_PACK32,-             FORMAT_A8B8G8R8_SNORM_PACK32,-             FORMAT_A8B8G8R8_USCALED_PACK32,-             FORMAT_A8B8G8R8_SSCALED_PACK32,-             FORMAT_A8B8G8R8_UINT_PACK32,-             FORMAT_A8B8G8R8_SINT_PACK32,-             FORMAT_A8B8G8R8_SRGB_PACK32,-             FORMAT_A2R10G10B10_UNORM_PACK32,-             FORMAT_A2R10G10B10_SNORM_PACK32,-             FORMAT_A2R10G10B10_USCALED_PACK32,-             FORMAT_A2R10G10B10_SSCALED_PACK32,-             FORMAT_A2R10G10B10_UINT_PACK32,-             FORMAT_A2R10G10B10_SINT_PACK32,-             FORMAT_A2B10G10R10_UNORM_PACK32,-             FORMAT_A2B10G10R10_SNORM_PACK32,-             FORMAT_A2B10G10R10_USCALED_PACK32,-             FORMAT_A2B10G10R10_SSCALED_PACK32,-             FORMAT_A2B10G10R10_UINT_PACK32,-             FORMAT_A2B10G10R10_SINT_PACK32,-             FORMAT_R16_UNORM,-             FORMAT_R16_SNORM,-             FORMAT_R16_USCALED,-             FORMAT_R16_SSCALED,-             FORMAT_R16_UINT,-             FORMAT_R16_SINT,-             FORMAT_R16_SFLOAT,-             FORMAT_R16G16_UNORM,-             FORMAT_R16G16_SNORM,-             FORMAT_R16G16_USCALED,-             FORMAT_R16G16_SSCALED,-             FORMAT_R16G16_UINT,-             FORMAT_R16G16_SINT,-             FORMAT_R16G16_SFLOAT,-             FORMAT_R16G16B16_UNORM,-             FORMAT_R16G16B16_SNORM,-             FORMAT_R16G16B16_USCALED,-             FORMAT_R16G16B16_SSCALED,-             FORMAT_R16G16B16_UINT,-             FORMAT_R16G16B16_SINT,-             FORMAT_R16G16B16_SFLOAT,-             FORMAT_R16G16B16A16_UNORM,-             FORMAT_R16G16B16A16_SNORM,-             FORMAT_R16G16B16A16_USCALED,-             FORMAT_R16G16B16A16_SSCALED,-             FORMAT_R16G16B16A16_UINT,-             FORMAT_R16G16B16A16_SINT,-             FORMAT_R16G16B16A16_SFLOAT,-             FORMAT_R32_UINT,-             FORMAT_R32_SINT,-             FORMAT_R32_SFLOAT,-             FORMAT_R32G32_UINT,-             FORMAT_R32G32_SINT,-             FORMAT_R32G32_SFLOAT,-             FORMAT_R32G32B32_UINT,-             FORMAT_R32G32B32_SINT,-             FORMAT_R32G32B32_SFLOAT,-             FORMAT_R32G32B32A32_UINT,-             FORMAT_R32G32B32A32_SINT,-             FORMAT_R32G32B32A32_SFLOAT,-             FORMAT_R64_UINT,-             FORMAT_R64_SINT,-             FORMAT_R64_SFLOAT,-             FORMAT_R64G64_UINT,-             FORMAT_R64G64_SINT,-             FORMAT_R64G64_SFLOAT,-             FORMAT_R64G64B64_UINT,-             FORMAT_R64G64B64_SINT,-             FORMAT_R64G64B64_SFLOAT,-             FORMAT_R64G64B64A64_UINT,-             FORMAT_R64G64B64A64_SINT,-             FORMAT_R64G64B64A64_SFLOAT,-             FORMAT_B10G11R11_UFLOAT_PACK32,-             FORMAT_E5B9G9R9_UFLOAT_PACK32,-             FORMAT_D16_UNORM,-             FORMAT_X8_D24_UNORM_PACK32,-             FORMAT_D32_SFLOAT,-             FORMAT_S8_UINT,-             FORMAT_D16_UNORM_S8_UINT,-             FORMAT_D24_UNORM_S8_UINT,-             FORMAT_D32_SFLOAT_S8_UINT,-             FORMAT_BC1_RGB_UNORM_BLOCK,-             FORMAT_BC1_RGB_SRGB_BLOCK,-             FORMAT_BC1_RGBA_UNORM_BLOCK,-             FORMAT_BC1_RGBA_SRGB_BLOCK,-             FORMAT_BC2_UNORM_BLOCK,-             FORMAT_BC2_SRGB_BLOCK,-             FORMAT_BC3_UNORM_BLOCK,-             FORMAT_BC3_SRGB_BLOCK,-             FORMAT_BC4_UNORM_BLOCK,-             FORMAT_BC4_SNORM_BLOCK,-             FORMAT_BC5_UNORM_BLOCK,-             FORMAT_BC5_SNORM_BLOCK,-             FORMAT_BC6H_UFLOAT_BLOCK,-             FORMAT_BC6H_SFLOAT_BLOCK,-             FORMAT_BC7_UNORM_BLOCK,-             FORMAT_BC7_SRGB_BLOCK,-             FORMAT_ETC2_R8G8B8_UNORM_BLOCK,-             FORMAT_ETC2_R8G8B8_SRGB_BLOCK,-             FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK,-             FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK,-             FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK,-             FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK,-             FORMAT_EAC_R11_UNORM_BLOCK,-             FORMAT_EAC_R11_SNORM_BLOCK,-             FORMAT_EAC_R11G11_UNORM_BLOCK,-             FORMAT_EAC_R11G11_SNORM_BLOCK,-             FORMAT_ASTC_4x4_UNORM_BLOCK,-             FORMAT_ASTC_4x4_SRGB_BLOCK,-             FORMAT_ASTC_5x4_UNORM_BLOCK,-             FORMAT_ASTC_5x4_SRGB_BLOCK,-             FORMAT_ASTC_5x5_UNORM_BLOCK,-             FORMAT_ASTC_5x5_SRGB_BLOCK,-             FORMAT_ASTC_6x5_UNORM_BLOCK,-             FORMAT_ASTC_6x5_SRGB_BLOCK,-             FORMAT_ASTC_6x6_UNORM_BLOCK,-             FORMAT_ASTC_6x6_SRGB_BLOCK,-             FORMAT_ASTC_8x5_UNORM_BLOCK,-             FORMAT_ASTC_8x5_SRGB_BLOCK,-             FORMAT_ASTC_8x6_UNORM_BLOCK,-             FORMAT_ASTC_8x6_SRGB_BLOCK,-             FORMAT_ASTC_8x8_UNORM_BLOCK,-             FORMAT_ASTC_8x8_SRGB_BLOCK,-             FORMAT_ASTC_10x5_UNORM_BLOCK,-             FORMAT_ASTC_10x5_SRGB_BLOCK,-             FORMAT_ASTC_10x6_UNORM_BLOCK,-             FORMAT_ASTC_10x6_SRGB_BLOCK,-             FORMAT_ASTC_10x8_UNORM_BLOCK,-             FORMAT_ASTC_10x8_SRGB_BLOCK,-             FORMAT_ASTC_10x10_UNORM_BLOCK,-             FORMAT_ASTC_10x10_SRGB_BLOCK,-             FORMAT_ASTC_12x10_UNORM_BLOCK,-             FORMAT_ASTC_12x10_SRGB_BLOCK,-             FORMAT_ASTC_12x12_UNORM_BLOCK,-             FORMAT_ASTC_12x12_SRGB_BLOCK,-             FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG,-             FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG,-             FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG,-             FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG,-             FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG,-             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,-             FORMAT_G16_B16R16_2PLANE_420_UNORM,-             FORMAT_G16_B16_R16_3PLANE_420_UNORM,-             FORMAT_B16G16R16G16_422_UNORM,-             FORMAT_G16B16G16R16_422_UNORM,-             FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,-             FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,-             FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,-             FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,-             FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,-             FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,-             FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,-             FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,-             FORMAT_R12X4G12X4_UNORM_2PACK16,-             FORMAT_R12X4_UNORM_PACK16,-             FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,-             FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,-             FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,-             FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,-             FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,-             FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,-             FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,-             FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,-             FORMAT_R10X6G10X6_UNORM_2PACK16,-             FORMAT_R10X6_UNORM_PACK16,-             FORMAT_G8_B8_R8_3PLANE_444_UNORM,-             FORMAT_G8_B8R8_2PLANE_422_UNORM,-             FORMAT_G8_B8_R8_3PLANE_422_UNORM,-             FORMAT_G8_B8R8_2PLANE_420_UNORM,-             FORMAT_G8_B8_R8_3PLANE_420_UNORM,-             FORMAT_B8G8R8G8_422_UNORM,-             FORMAT_G8B8G8R8_422_UNORM :: Format #-}--conNameFormat :: String-conNameFormat = "Format"--enumPrefixFormat :: String-enumPrefixFormat = "FORMAT_"--showTableFormat :: [(Format, String)]-showTableFormat =-  [ (FORMAT_UNDEFINED                         , "UNDEFINED")-  , (FORMAT_R4G4_UNORM_PACK8                  , "R4G4_UNORM_PACK8")-  , (FORMAT_R4G4B4A4_UNORM_PACK16             , "R4G4B4A4_UNORM_PACK16")-  , (FORMAT_B4G4R4A4_UNORM_PACK16             , "B4G4R4A4_UNORM_PACK16")-  , (FORMAT_R5G6B5_UNORM_PACK16               , "R5G6B5_UNORM_PACK16")-  , (FORMAT_B5G6R5_UNORM_PACK16               , "B5G6R5_UNORM_PACK16")-  , (FORMAT_R5G5B5A1_UNORM_PACK16             , "R5G5B5A1_UNORM_PACK16")-  , (FORMAT_B5G5R5A1_UNORM_PACK16             , "B5G5R5A1_UNORM_PACK16")-  , (FORMAT_A1R5G5B5_UNORM_PACK16             , "A1R5G5B5_UNORM_PACK16")-  , (FORMAT_R8_UNORM                          , "R8_UNORM")-  , (FORMAT_R8_SNORM                          , "R8_SNORM")-  , (FORMAT_R8_USCALED                        , "R8_USCALED")-  , (FORMAT_R8_SSCALED                        , "R8_SSCALED")-  , (FORMAT_R8_UINT                           , "R8_UINT")-  , (FORMAT_R8_SINT                           , "R8_SINT")-  , (FORMAT_R8_SRGB                           , "R8_SRGB")-  , (FORMAT_R8G8_UNORM                        , "R8G8_UNORM")-  , (FORMAT_R8G8_SNORM                        , "R8G8_SNORM")-  , (FORMAT_R8G8_USCALED                      , "R8G8_USCALED")-  , (FORMAT_R8G8_SSCALED                      , "R8G8_SSCALED")-  , (FORMAT_R8G8_UINT                         , "R8G8_UINT")-  , (FORMAT_R8G8_SINT                         , "R8G8_SINT")-  , (FORMAT_R8G8_SRGB                         , "R8G8_SRGB")-  , (FORMAT_R8G8B8_UNORM                      , "R8G8B8_UNORM")-  , (FORMAT_R8G8B8_SNORM                      , "R8G8B8_SNORM")-  , (FORMAT_R8G8B8_USCALED                    , "R8G8B8_USCALED")-  , (FORMAT_R8G8B8_SSCALED                    , "R8G8B8_SSCALED")-  , (FORMAT_R8G8B8_UINT                       , "R8G8B8_UINT")-  , (FORMAT_R8G8B8_SINT                       , "R8G8B8_SINT")-  , (FORMAT_R8G8B8_SRGB                       , "R8G8B8_SRGB")-  , (FORMAT_B8G8R8_UNORM                      , "B8G8R8_UNORM")-  , (FORMAT_B8G8R8_SNORM                      , "B8G8R8_SNORM")-  , (FORMAT_B8G8R8_USCALED                    , "B8G8R8_USCALED")-  , (FORMAT_B8G8R8_SSCALED                    , "B8G8R8_SSCALED")-  , (FORMAT_B8G8R8_UINT                       , "B8G8R8_UINT")-  , (FORMAT_B8G8R8_SINT                       , "B8G8R8_SINT")-  , (FORMAT_B8G8R8_SRGB                       , "B8G8R8_SRGB")-  , (FORMAT_R8G8B8A8_UNORM                    , "R8G8B8A8_UNORM")-  , (FORMAT_R8G8B8A8_SNORM                    , "R8G8B8A8_SNORM")-  , (FORMAT_R8G8B8A8_USCALED                  , "R8G8B8A8_USCALED")-  , (FORMAT_R8G8B8A8_SSCALED                  , "R8G8B8A8_SSCALED")-  , (FORMAT_R8G8B8A8_UINT                     , "R8G8B8A8_UINT")-  , (FORMAT_R8G8B8A8_SINT                     , "R8G8B8A8_SINT")-  , (FORMAT_R8G8B8A8_SRGB                     , "R8G8B8A8_SRGB")-  , (FORMAT_B8G8R8A8_UNORM                    , "B8G8R8A8_UNORM")-  , (FORMAT_B8G8R8A8_SNORM                    , "B8G8R8A8_SNORM")-  , (FORMAT_B8G8R8A8_USCALED                  , "B8G8R8A8_USCALED")-  , (FORMAT_B8G8R8A8_SSCALED                  , "B8G8R8A8_SSCALED")-  , (FORMAT_B8G8R8A8_UINT                     , "B8G8R8A8_UINT")-  , (FORMAT_B8G8R8A8_SINT                     , "B8G8R8A8_SINT")-  , (FORMAT_B8G8R8A8_SRGB                     , "B8G8R8A8_SRGB")-  , (FORMAT_A8B8G8R8_UNORM_PACK32             , "A8B8G8R8_UNORM_PACK32")-  , (FORMAT_A8B8G8R8_SNORM_PACK32             , "A8B8G8R8_SNORM_PACK32")-  , (FORMAT_A8B8G8R8_USCALED_PACK32           , "A8B8G8R8_USCALED_PACK32")-  , (FORMAT_A8B8G8R8_SSCALED_PACK32           , "A8B8G8R8_SSCALED_PACK32")-  , (FORMAT_A8B8G8R8_UINT_PACK32              , "A8B8G8R8_UINT_PACK32")-  , (FORMAT_A8B8G8R8_SINT_PACK32              , "A8B8G8R8_SINT_PACK32")-  , (FORMAT_A8B8G8R8_SRGB_PACK32              , "A8B8G8R8_SRGB_PACK32")-  , (FORMAT_A2R10G10B10_UNORM_PACK32          , "A2R10G10B10_UNORM_PACK32")-  , (FORMAT_A2R10G10B10_SNORM_PACK32          , "A2R10G10B10_SNORM_PACK32")-  , (FORMAT_A2R10G10B10_USCALED_PACK32        , "A2R10G10B10_USCALED_PACK32")-  , (FORMAT_A2R10G10B10_SSCALED_PACK32        , "A2R10G10B10_SSCALED_PACK32")-  , (FORMAT_A2R10G10B10_UINT_PACK32           , "A2R10G10B10_UINT_PACK32")-  , (FORMAT_A2R10G10B10_SINT_PACK32           , "A2R10G10B10_SINT_PACK32")-  , (FORMAT_A2B10G10R10_UNORM_PACK32          , "A2B10G10R10_UNORM_PACK32")-  , (FORMAT_A2B10G10R10_SNORM_PACK32          , "A2B10G10R10_SNORM_PACK32")-  , (FORMAT_A2B10G10R10_USCALED_PACK32        , "A2B10G10R10_USCALED_PACK32")-  , (FORMAT_A2B10G10R10_SSCALED_PACK32        , "A2B10G10R10_SSCALED_PACK32")-  , (FORMAT_A2B10G10R10_UINT_PACK32           , "A2B10G10R10_UINT_PACK32")-  , (FORMAT_A2B10G10R10_SINT_PACK32           , "A2B10G10R10_SINT_PACK32")-  , (FORMAT_R16_UNORM                         , "R16_UNORM")-  , (FORMAT_R16_SNORM                         , "R16_SNORM")-  , (FORMAT_R16_USCALED                       , "R16_USCALED")-  , (FORMAT_R16_SSCALED                       , "R16_SSCALED")-  , (FORMAT_R16_UINT                          , "R16_UINT")-  , (FORMAT_R16_SINT                          , "R16_SINT")-  , (FORMAT_R16_SFLOAT                        , "R16_SFLOAT")-  , (FORMAT_R16G16_UNORM                      , "R16G16_UNORM")-  , (FORMAT_R16G16_SNORM                      , "R16G16_SNORM")-  , (FORMAT_R16G16_USCALED                    , "R16G16_USCALED")-  , (FORMAT_R16G16_SSCALED                    , "R16G16_SSCALED")-  , (FORMAT_R16G16_UINT                       , "R16G16_UINT")-  , (FORMAT_R16G16_SINT                       , "R16G16_SINT")-  , (FORMAT_R16G16_SFLOAT                     , "R16G16_SFLOAT")-  , (FORMAT_R16G16B16_UNORM                   , "R16G16B16_UNORM")-  , (FORMAT_R16G16B16_SNORM                   , "R16G16B16_SNORM")-  , (FORMAT_R16G16B16_USCALED                 , "R16G16B16_USCALED")-  , (FORMAT_R16G16B16_SSCALED                 , "R16G16B16_SSCALED")-  , (FORMAT_R16G16B16_UINT                    , "R16G16B16_UINT")-  , (FORMAT_R16G16B16_SINT                    , "R16G16B16_SINT")-  , (FORMAT_R16G16B16_SFLOAT                  , "R16G16B16_SFLOAT")-  , (FORMAT_R16G16B16A16_UNORM                , "R16G16B16A16_UNORM")-  , (FORMAT_R16G16B16A16_SNORM                , "R16G16B16A16_SNORM")-  , (FORMAT_R16G16B16A16_USCALED              , "R16G16B16A16_USCALED")-  , (FORMAT_R16G16B16A16_SSCALED              , "R16G16B16A16_SSCALED")-  , (FORMAT_R16G16B16A16_UINT                 , "R16G16B16A16_UINT")-  , (FORMAT_R16G16B16A16_SINT                 , "R16G16B16A16_SINT")-  , (FORMAT_R16G16B16A16_SFLOAT               , "R16G16B16A16_SFLOAT")-  , (FORMAT_R32_UINT                          , "R32_UINT")-  , (FORMAT_R32_SINT                          , "R32_SINT")-  , (FORMAT_R32_SFLOAT                        , "R32_SFLOAT")-  , (FORMAT_R32G32_UINT                       , "R32G32_UINT")-  , (FORMAT_R32G32_SINT                       , "R32G32_SINT")-  , (FORMAT_R32G32_SFLOAT                     , "R32G32_SFLOAT")-  , (FORMAT_R32G32B32_UINT                    , "R32G32B32_UINT")-  , (FORMAT_R32G32B32_SINT                    , "R32G32B32_SINT")-  , (FORMAT_R32G32B32_SFLOAT                  , "R32G32B32_SFLOAT")-  , (FORMAT_R32G32B32A32_UINT                 , "R32G32B32A32_UINT")-  , (FORMAT_R32G32B32A32_SINT                 , "R32G32B32A32_SINT")-  , (FORMAT_R32G32B32A32_SFLOAT               , "R32G32B32A32_SFLOAT")-  , (FORMAT_R64_UINT                          , "R64_UINT")-  , (FORMAT_R64_SINT                          , "R64_SINT")-  , (FORMAT_R64_SFLOAT                        , "R64_SFLOAT")-  , (FORMAT_R64G64_UINT                       , "R64G64_UINT")-  , (FORMAT_R64G64_SINT                       , "R64G64_SINT")-  , (FORMAT_R64G64_SFLOAT                     , "R64G64_SFLOAT")-  , (FORMAT_R64G64B64_UINT                    , "R64G64B64_UINT")-  , (FORMAT_R64G64B64_SINT                    , "R64G64B64_SINT")-  , (FORMAT_R64G64B64_SFLOAT                  , "R64G64B64_SFLOAT")-  , (FORMAT_R64G64B64A64_UINT                 , "R64G64B64A64_UINT")-  , (FORMAT_R64G64B64A64_SINT                 , "R64G64B64A64_SINT")-  , (FORMAT_R64G64B64A64_SFLOAT               , "R64G64B64A64_SFLOAT")-  , (FORMAT_B10G11R11_UFLOAT_PACK32           , "B10G11R11_UFLOAT_PACK32")-  , (FORMAT_E5B9G9R9_UFLOAT_PACK32            , "E5B9G9R9_UFLOAT_PACK32")-  , (FORMAT_D16_UNORM                         , "D16_UNORM")-  , (FORMAT_X8_D24_UNORM_PACK32               , "X8_D24_UNORM_PACK32")-  , (FORMAT_D32_SFLOAT                        , "D32_SFLOAT")-  , (FORMAT_S8_UINT                           , "S8_UINT")-  , (FORMAT_D16_UNORM_S8_UINT                 , "D16_UNORM_S8_UINT")-  , (FORMAT_D24_UNORM_S8_UINT                 , "D24_UNORM_S8_UINT")-  , (FORMAT_D32_SFLOAT_S8_UINT                , "D32_SFLOAT_S8_UINT")-  , (FORMAT_BC1_RGB_UNORM_BLOCK               , "BC1_RGB_UNORM_BLOCK")-  , (FORMAT_BC1_RGB_SRGB_BLOCK                , "BC1_RGB_SRGB_BLOCK")-  , (FORMAT_BC1_RGBA_UNORM_BLOCK              , "BC1_RGBA_UNORM_BLOCK")-  , (FORMAT_BC1_RGBA_SRGB_BLOCK               , "BC1_RGBA_SRGB_BLOCK")-  , (FORMAT_BC2_UNORM_BLOCK                   , "BC2_UNORM_BLOCK")-  , (FORMAT_BC2_SRGB_BLOCK                    , "BC2_SRGB_BLOCK")-  , (FORMAT_BC3_UNORM_BLOCK                   , "BC3_UNORM_BLOCK")-  , (FORMAT_BC3_SRGB_BLOCK                    , "BC3_SRGB_BLOCK")-  , (FORMAT_BC4_UNORM_BLOCK                   , "BC4_UNORM_BLOCK")-  , (FORMAT_BC4_SNORM_BLOCK                   , "BC4_SNORM_BLOCK")-  , (FORMAT_BC5_UNORM_BLOCK                   , "BC5_UNORM_BLOCK")-  , (FORMAT_BC5_SNORM_BLOCK                   , "BC5_SNORM_BLOCK")-  , (FORMAT_BC6H_UFLOAT_BLOCK                 , "BC6H_UFLOAT_BLOCK")-  , (FORMAT_BC6H_SFLOAT_BLOCK                 , "BC6H_SFLOAT_BLOCK")-  , (FORMAT_BC7_UNORM_BLOCK                   , "BC7_UNORM_BLOCK")-  , (FORMAT_BC7_SRGB_BLOCK                    , "BC7_SRGB_BLOCK")-  , (FORMAT_ETC2_R8G8B8_UNORM_BLOCK           , "ETC2_R8G8B8_UNORM_BLOCK")-  , (FORMAT_ETC2_R8G8B8_SRGB_BLOCK            , "ETC2_R8G8B8_SRGB_BLOCK")-  , (FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK         , "ETC2_R8G8B8A1_UNORM_BLOCK")-  , (FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK          , "ETC2_R8G8B8A1_SRGB_BLOCK")-  , (FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK         , "ETC2_R8G8B8A8_UNORM_BLOCK")-  , (FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK          , "ETC2_R8G8B8A8_SRGB_BLOCK")-  , (FORMAT_EAC_R11_UNORM_BLOCK               , "EAC_R11_UNORM_BLOCK")-  , (FORMAT_EAC_R11_SNORM_BLOCK               , "EAC_R11_SNORM_BLOCK")-  , (FORMAT_EAC_R11G11_UNORM_BLOCK            , "EAC_R11G11_UNORM_BLOCK")-  , (FORMAT_EAC_R11G11_SNORM_BLOCK            , "EAC_R11G11_SNORM_BLOCK")-  , (FORMAT_ASTC_4x4_UNORM_BLOCK              , "ASTC_4x4_UNORM_BLOCK")-  , (FORMAT_ASTC_4x4_SRGB_BLOCK               , "ASTC_4x4_SRGB_BLOCK")-  , (FORMAT_ASTC_5x4_UNORM_BLOCK              , "ASTC_5x4_UNORM_BLOCK")-  , (FORMAT_ASTC_5x4_SRGB_BLOCK               , "ASTC_5x4_SRGB_BLOCK")-  , (FORMAT_ASTC_5x5_UNORM_BLOCK              , "ASTC_5x5_UNORM_BLOCK")-  , (FORMAT_ASTC_5x5_SRGB_BLOCK               , "ASTC_5x5_SRGB_BLOCK")-  , (FORMAT_ASTC_6x5_UNORM_BLOCK              , "ASTC_6x5_UNORM_BLOCK")-  , (FORMAT_ASTC_6x5_SRGB_BLOCK               , "ASTC_6x5_SRGB_BLOCK")-  , (FORMAT_ASTC_6x6_UNORM_BLOCK              , "ASTC_6x6_UNORM_BLOCK")-  , (FORMAT_ASTC_6x6_SRGB_BLOCK               , "ASTC_6x6_SRGB_BLOCK")-  , (FORMAT_ASTC_8x5_UNORM_BLOCK              , "ASTC_8x5_UNORM_BLOCK")-  , (FORMAT_ASTC_8x5_SRGB_BLOCK               , "ASTC_8x5_SRGB_BLOCK")-  , (FORMAT_ASTC_8x6_UNORM_BLOCK              , "ASTC_8x6_UNORM_BLOCK")-  , (FORMAT_ASTC_8x6_SRGB_BLOCK               , "ASTC_8x6_SRGB_BLOCK")-  , (FORMAT_ASTC_8x8_UNORM_BLOCK              , "ASTC_8x8_UNORM_BLOCK")-  , (FORMAT_ASTC_8x8_SRGB_BLOCK               , "ASTC_8x8_SRGB_BLOCK")-  , (FORMAT_ASTC_10x5_UNORM_BLOCK             , "ASTC_10x5_UNORM_BLOCK")-  , (FORMAT_ASTC_10x5_SRGB_BLOCK              , "ASTC_10x5_SRGB_BLOCK")-  , (FORMAT_ASTC_10x6_UNORM_BLOCK             , "ASTC_10x6_UNORM_BLOCK")-  , (FORMAT_ASTC_10x6_SRGB_BLOCK              , "ASTC_10x6_SRGB_BLOCK")-  , (FORMAT_ASTC_10x8_UNORM_BLOCK             , "ASTC_10x8_UNORM_BLOCK")-  , (FORMAT_ASTC_10x8_SRGB_BLOCK              , "ASTC_10x8_SRGB_BLOCK")-  , (FORMAT_ASTC_10x10_UNORM_BLOCK            , "ASTC_10x10_UNORM_BLOCK")-  , (FORMAT_ASTC_10x10_SRGB_BLOCK             , "ASTC_10x10_SRGB_BLOCK")-  , (FORMAT_ASTC_12x10_UNORM_BLOCK            , "ASTC_12x10_UNORM_BLOCK")-  , (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_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")-  , (FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG        , "PVRTC1_2BPP_SRGB_BLOCK_IMG")-  , (FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG       , "PVRTC2_4BPP_UNORM_BLOCK_IMG")-  , (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")-  , (FORMAT_G16_B16R16_2PLANE_420_UNORM       , "G16_B16R16_2PLANE_420_UNORM")-  , (FORMAT_G16_B16_R16_3PLANE_420_UNORM      , "G16_B16_R16_3PLANE_420_UNORM")-  , (FORMAT_B16G16R16G16_422_UNORM            , "B16G16R16G16_422_UNORM")-  , (FORMAT_G16B16G16R16_422_UNORM            , "G16B16G16R16_422_UNORM")-  , (FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, "G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16")-  , (FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, "G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16")-  , (FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, "G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16")-  , (FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, "G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16")-  , (FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, "G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16")-  , (FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, "B12X4G12X4R12X4G12X4_422_UNORM_4PACK16")-  , (FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, "G12X4B12X4G12X4R12X4_422_UNORM_4PACK16")-  , (FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, "R12X4G12X4B12X4A12X4_UNORM_4PACK16")-  , (FORMAT_R12X4G12X4_UNORM_2PACK16          , "R12X4G12X4_UNORM_2PACK16")-  , (FORMAT_R12X4_UNORM_PACK16                , "R12X4_UNORM_PACK16")-  , (FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, "G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16")-  , (FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, "G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16")-  , (FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, "G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16")-  , (FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, "G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16")-  , (FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, "G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16")-  , (FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, "B10X6G10X6R10X6G10X6_422_UNORM_4PACK16")-  , (FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, "G10X6B10X6G10X6R10X6_422_UNORM_4PACK16")-  , (FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, "R10X6G10X6B10X6A10X6_UNORM_4PACK16")-  , (FORMAT_R10X6G10X6_UNORM_2PACK16          , "R10X6G10X6_UNORM_2PACK16")-  , (FORMAT_R10X6_UNORM_PACK16                , "R10X6_UNORM_PACK16")-  , (FORMAT_G8_B8_R8_3PLANE_444_UNORM         , "G8_B8_R8_3PLANE_444_UNORM")-  , (FORMAT_G8_B8R8_2PLANE_422_UNORM          , "G8_B8R8_2PLANE_422_UNORM")-  , (FORMAT_G8_B8_R8_3PLANE_422_UNORM         , "G8_B8_R8_3PLANE_422_UNORM")-  , (FORMAT_G8_B8R8_2PLANE_420_UNORM          , "G8_B8R8_2PLANE_420_UNORM")-  , (FORMAT_G8_B8_R8_3PLANE_420_UNORM         , "G8_B8_R8_3PLANE_420_UNORM")-  , (FORMAT_B8G8R8G8_422_UNORM                , "B8G8R8G8_422_UNORM")-  , (FORMAT_G8B8G8R8_422_UNORM                , "G8B8G8R8_422_UNORM")-  ]--instance Show Format where-  showsPrec = enumShowsPrec enumPrefixFormat showTableFormat conNameFormat (\(Format x) -> x) (showsPrec 11)--instance Read Format where-  readPrec = enumReadPrec enumPrefixFormat showTableFormat conNameFormat Format-+                                          , FORMAT_R16G16_S10_5_NV+                                          , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG+                                          , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG+                                          , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG+                                          , FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG+                                          , FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG+                                          , 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+                                          , FORMAT_G16_B16R16_2PLANE_420_UNORM+                                          , FORMAT_G16_B16_R16_3PLANE_420_UNORM+                                          , FORMAT_B16G16R16G16_422_UNORM+                                          , FORMAT_G16B16G16R16_422_UNORM+                                          , FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16+                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16+                                          , FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16+                                          , FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16+                                          , FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16+                                          , FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16+                                          , FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16+                                          , FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16+                                          , FORMAT_R12X4G12X4_UNORM_2PACK16+                                          , FORMAT_R12X4_UNORM_PACK16+                                          , FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16+                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16+                                          , FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16+                                          , FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16+                                          , FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16+                                          , FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16+                                          , FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16+                                          , FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16+                                          , FORMAT_R10X6G10X6_UNORM_2PACK16+                                          , FORMAT_R10X6_UNORM_PACK16+                                          , FORMAT_G8_B8_R8_3PLANE_444_UNORM+                                          , FORMAT_G8_B8R8_2PLANE_422_UNORM+                                          , FORMAT_G8_B8_R8_3PLANE_422_UNORM+                                          , FORMAT_G8_B8R8_2PLANE_420_UNORM+                                          , FORMAT_G8_B8_R8_3PLANE_420_UNORM+                                          , FORMAT_B8G8R8G8_422_UNORM+                                          , FORMAT_G8B8G8R8_422_UNORM+                                          , ..+                                          )) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showsPrec)+import Vulkan.Zero (Zero)+import Foreign.Storable (Storable)+import Data.Int (Int32)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))++-- | VkFormat - Available image formats+--+-- = 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_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',+-- 'Vulkan.Core10.Pass.AttachmentDescription',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',+-- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',+-- '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',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT',+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatPropertiesNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreateInfoNV',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceSparseImageFormatInfo2',+-- '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',+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Core10.Pipeline.VertexInputAttributeDescription',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,+-- 'Vulkan.Extensions.VK_NV_external_memory_capabilities.getPhysicalDeviceExternalImageFormatPropertiesNV',+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2',+-- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2KHR',+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceImageFormatProperties',+-- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties'+newtype Format = Format Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'FORMAT_UNDEFINED' specifies that the format is not specified.+pattern FORMAT_UNDEFINED = Format 0++-- | 'FORMAT_R4G4_UNORM_PACK8' specifies a two-component, 8-bit packed+-- unsigned normalized format that has a 4-bit R component in bits 4..7,+-- and a 4-bit G component in bits 0..3.+pattern FORMAT_R4G4_UNORM_PACK8 = Format 1++-- | 'FORMAT_R4G4B4A4_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 4-bit R component in bits 12..15,+-- a 4-bit G component in bits 8..11, a 4-bit B component in bits 4..7, and+-- a 4-bit A component in bits 0..3.+pattern FORMAT_R4G4B4A4_UNORM_PACK16 = Format 2++-- | 'FORMAT_B4G4R4A4_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 4-bit B component in bits 12..15,+-- a 4-bit G component in bits 8..11, a 4-bit R component in bits 4..7, and+-- a 4-bit A component in bits 0..3.+pattern FORMAT_B4G4R4A4_UNORM_PACK16 = Format 3++-- | 'FORMAT_R5G6B5_UNORM_PACK16' specifies a three-component, 16-bit packed+-- unsigned normalized format that has a 5-bit R component in bits 11..15,+-- a 6-bit G component in bits 5..10, and a 5-bit B component in bits 0..4.+pattern FORMAT_R5G6B5_UNORM_PACK16 = Format 4++-- | 'FORMAT_B5G6R5_UNORM_PACK16' specifies a three-component, 16-bit packed+-- unsigned normalized format that has a 5-bit B component in bits 11..15,+-- a 6-bit G component in bits 5..10, and a 5-bit R component in bits 0..4.+pattern FORMAT_B5G6R5_UNORM_PACK16 = Format 5++-- | 'FORMAT_R5G5B5A1_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 5-bit R component in bits 11..15,+-- a 5-bit G component in bits 6..10, a 5-bit B component in bits 1..5, and+-- a 1-bit A component in bit 0.+pattern FORMAT_R5G5B5A1_UNORM_PACK16 = Format 6++-- | 'FORMAT_B5G5R5A1_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 5-bit B component in bits 11..15,+-- a 5-bit G component in bits 6..10, a 5-bit R component in bits 1..5, and+-- a 1-bit A component in bit 0.+pattern FORMAT_B5G5R5A1_UNORM_PACK16 = Format 7++-- | 'FORMAT_A1R5G5B5_UNORM_PACK16' specifies a four-component, 16-bit packed+-- unsigned normalized format that has a 1-bit A component in bit 15, a+-- 5-bit R component in bits 10..14, a 5-bit G component in bits 5..9, and+-- a 5-bit B component in bits 0..4.+pattern FORMAT_A1R5G5B5_UNORM_PACK16 = Format 8++-- | 'FORMAT_R8_UNORM' specifies a one-component, 8-bit unsigned normalized+-- format that has a single 8-bit R component.+pattern FORMAT_R8_UNORM = Format 9++-- | 'FORMAT_R8_SNORM' specifies a one-component, 8-bit signed normalized+-- format that has a single 8-bit R component.+pattern FORMAT_R8_SNORM = Format 10++-- | 'FORMAT_R8_USCALED' specifies a one-component, 8-bit unsigned scaled+-- integer format that has a single 8-bit R component.+pattern FORMAT_R8_USCALED = Format 11++-- | 'FORMAT_R8_SSCALED' specifies a one-component, 8-bit signed scaled+-- integer format that has a single 8-bit R component.+pattern FORMAT_R8_SSCALED = Format 12++-- | 'FORMAT_R8_UINT' specifies a one-component, 8-bit unsigned integer+-- format that has a single 8-bit R component.+pattern FORMAT_R8_UINT = Format 13++-- | 'FORMAT_R8_SINT' specifies a one-component, 8-bit signed integer format+-- that has a single 8-bit R component.+pattern FORMAT_R8_SINT = Format 14++-- | 'FORMAT_R8_SRGB' specifies a one-component, 8-bit unsigned normalized+-- format that has a single 8-bit R component stored with sRGB nonlinear+-- encoding.+pattern FORMAT_R8_SRGB = Format 15++-- | 'FORMAT_R8G8_UNORM' specifies a two-component, 16-bit unsigned+-- normalized format that has an 8-bit R component in byte 0, and an 8-bit+-- G component in byte 1.+pattern FORMAT_R8G8_UNORM = Format 16++-- | 'FORMAT_R8G8_SNORM' specifies a two-component, 16-bit signed normalized+-- format that has an 8-bit R component in byte 0, and an 8-bit G component+-- in byte 1.+pattern FORMAT_R8G8_SNORM = Format 17++-- | 'FORMAT_R8G8_USCALED' specifies a two-component, 16-bit unsigned scaled+-- integer format that has an 8-bit R component in byte 0, and an 8-bit G+-- component in byte 1.+pattern FORMAT_R8G8_USCALED = Format 18++-- | 'FORMAT_R8G8_SSCALED' specifies a two-component, 16-bit signed scaled+-- integer format that has an 8-bit R component in byte 0, and an 8-bit G+-- component in byte 1.+pattern FORMAT_R8G8_SSCALED = Format 19++-- | 'FORMAT_R8G8_UINT' specifies a two-component, 16-bit unsigned integer+-- format that has an 8-bit R component in byte 0, and an 8-bit G component+-- in byte 1.+pattern FORMAT_R8G8_UINT = Format 20++-- | 'FORMAT_R8G8_SINT' specifies a two-component, 16-bit signed integer+-- format that has an 8-bit R component in byte 0, and an 8-bit G component+-- in byte 1.+pattern FORMAT_R8G8_SINT = Format 21++-- | 'FORMAT_R8G8_SRGB' specifies a two-component, 16-bit unsigned normalized+-- format that has an 8-bit R component stored with sRGB nonlinear encoding+-- in byte 0, and an 8-bit G component stored with sRGB nonlinear encoding+-- in byte 1.+pattern FORMAT_R8G8_SRGB = Format 22++-- | 'FORMAT_R8G8B8_UNORM' specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern FORMAT_R8G8B8_UNORM = Format 23++-- | 'FORMAT_R8G8B8_SNORM' specifies a three-component, 24-bit signed+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern FORMAT_R8G8B8_SNORM = Format 24++-- | 'FORMAT_R8G8B8_USCALED' specifies a three-component, 24-bit unsigned+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern FORMAT_R8G8B8_USCALED = Format 25++-- | 'FORMAT_R8G8B8_SSCALED' specifies a three-component, 24-bit signed+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern FORMAT_R8G8B8_SSCALED = Format 26++-- | 'FORMAT_R8G8B8_UINT' specifies a three-component, 24-bit unsigned+-- integer format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit B component in byte 2.+pattern FORMAT_R8G8B8_UINT = Format 27++-- | 'FORMAT_R8G8B8_SINT' specifies a three-component, 24-bit signed integer+-- format that has an 8-bit R component in byte 0, an 8-bit G component in+-- byte 1, and an 8-bit B component in byte 2.+pattern FORMAT_R8G8B8_SINT = Format 28++-- | 'FORMAT_R8G8B8_SRGB' specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, and an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 2.+pattern FORMAT_R8G8B8_SRGB = Format 29++-- | 'FORMAT_B8G8R8_UNORM' specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern FORMAT_B8G8R8_UNORM = Format 30++-- | 'FORMAT_B8G8R8_SNORM' specifies a three-component, 24-bit signed+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern FORMAT_B8G8R8_SNORM = Format 31++-- | 'FORMAT_B8G8R8_USCALED' specifies a three-component, 24-bit unsigned+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern FORMAT_B8G8R8_USCALED = Format 32++-- | 'FORMAT_B8G8R8_SSCALED' specifies a three-component, 24-bit signed+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern FORMAT_B8G8R8_SSCALED = Format 33++-- | 'FORMAT_B8G8R8_UINT' specifies a three-component, 24-bit unsigned+-- integer format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, and an 8-bit R component in byte 2.+pattern FORMAT_B8G8R8_UINT = Format 34++-- | 'FORMAT_B8G8R8_SINT' specifies a three-component, 24-bit signed integer+-- format that has an 8-bit B component in byte 0, an 8-bit G component in+-- byte 1, and an 8-bit R component in byte 2.+pattern FORMAT_B8G8R8_SINT = Format 35++-- | 'FORMAT_B8G8R8_SRGB' specifies a three-component, 24-bit unsigned+-- normalized format that has an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, and an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 2.+pattern FORMAT_B8G8R8_SRGB = Format 36++-- | 'FORMAT_R8G8B8A8_UNORM' specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_R8G8B8A8_UNORM = Format 37++-- | 'FORMAT_R8G8B8A8_SNORM' specifies a four-component, 32-bit signed+-- normalized format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_R8G8B8A8_SNORM = Format 38++-- | 'FORMAT_R8G8B8A8_USCALED' specifies a four-component, 32-bit unsigned+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_R8G8B8A8_USCALED = Format 39++-- | 'FORMAT_R8G8B8A8_SSCALED' specifies a four-component, 32-bit signed+-- scaled format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_R8G8B8A8_SSCALED = Format 40++-- | 'FORMAT_R8G8B8A8_UINT' specifies a four-component, 32-bit unsigned+-- integer format that has an 8-bit R component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit B component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_R8G8B8A8_UINT = Format 41++-- | 'FORMAT_R8G8B8A8_SINT' specifies a four-component, 32-bit signed integer+-- format that has an 8-bit R component in byte 0, an 8-bit G component in+-- byte 1, an 8-bit B component in byte 2, and an 8-bit A component in byte+-- 3.+pattern FORMAT_R8G8B8A8_SINT = Format 42++-- | 'FORMAT_R8G8B8A8_SRGB' specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 2, and an 8-bit A component in byte 3.+pattern FORMAT_R8G8B8A8_SRGB = Format 43++-- | 'FORMAT_B8G8R8A8_UNORM' specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_B8G8R8A8_UNORM = Format 44++-- | 'FORMAT_B8G8R8A8_SNORM' specifies a four-component, 32-bit signed+-- normalized format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_B8G8R8A8_SNORM = Format 45++-- | 'FORMAT_B8G8R8A8_USCALED' specifies a four-component, 32-bit unsigned+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_B8G8R8A8_USCALED = Format 46++-- | 'FORMAT_B8G8R8A8_SSCALED' specifies a four-component, 32-bit signed+-- scaled format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_B8G8R8A8_SSCALED = Format 47++-- | 'FORMAT_B8G8R8A8_UINT' specifies a four-component, 32-bit unsigned+-- integer format that has an 8-bit B component in byte 0, an 8-bit G+-- component in byte 1, an 8-bit R component in byte 2, and an 8-bit A+-- component in byte 3.+pattern FORMAT_B8G8R8A8_UINT = Format 48++-- | 'FORMAT_B8G8R8A8_SINT' specifies a four-component, 32-bit signed integer+-- format that has an 8-bit B component in byte 0, an 8-bit G component in+-- byte 1, an 8-bit R component in byte 2, and an 8-bit A component in byte+-- 3.+pattern FORMAT_B8G8R8A8_SINT = Format 49++-- | 'FORMAT_B8G8R8A8_SRGB' specifies a four-component, 32-bit unsigned+-- normalized format that has an 8-bit B component stored with sRGB+-- nonlinear encoding in byte 0, an 8-bit G component stored with sRGB+-- nonlinear encoding in byte 1, an 8-bit R component stored with sRGB+-- nonlinear encoding in byte 2, and an 8-bit A component in byte 3.+pattern FORMAT_B8G8R8A8_SRGB = Format 50++-- | 'FORMAT_A8B8G8R8_UNORM_PACK32' specifies a four-component, 32-bit packed+-- unsigned normalized format that has an 8-bit A component in bits 24..31,+-- an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,+-- and an 8-bit R component in bits 0..7.+pattern FORMAT_A8B8G8R8_UNORM_PACK32 = Format 51++-- | 'FORMAT_A8B8G8R8_SNORM_PACK32' specifies a four-component, 32-bit packed+-- signed normalized format that has an 8-bit A component in bits 24..31,+-- an 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,+-- and an 8-bit R component in bits 0..7.+pattern FORMAT_A8B8G8R8_SNORM_PACK32 = Format 52++-- | 'FORMAT_A8B8G8R8_USCALED_PACK32' specifies a four-component, 32-bit+-- packed unsigned scaled integer format that has an 8-bit A component in+-- bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component+-- in bits 8..15, and an 8-bit R component in bits 0..7.+pattern FORMAT_A8B8G8R8_USCALED_PACK32 = Format 53++-- | 'FORMAT_A8B8G8R8_SSCALED_PACK32' specifies a four-component, 32-bit+-- packed signed scaled integer format that has an 8-bit A component in+-- bits 24..31, an 8-bit B component in bits 16..23, an 8-bit G component+-- in bits 8..15, and an 8-bit R component in bits 0..7.+pattern FORMAT_A8B8G8R8_SSCALED_PACK32 = Format 54++-- | 'FORMAT_A8B8G8R8_UINT_PACK32' specifies a four-component, 32-bit packed+-- unsigned integer format that has an 8-bit A component in bits 24..31, an+-- 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,+-- and an 8-bit R component in bits 0..7.+pattern FORMAT_A8B8G8R8_UINT_PACK32 = Format 55++-- | 'FORMAT_A8B8G8R8_SINT_PACK32' specifies a four-component, 32-bit packed+-- signed integer format that has an 8-bit A component in bits 24..31, an+-- 8-bit B component in bits 16..23, an 8-bit G component in bits 8..15,+-- and an 8-bit R component in bits 0..7.+pattern FORMAT_A8B8G8R8_SINT_PACK32 = Format 56++-- | 'FORMAT_A8B8G8R8_SRGB_PACK32' specifies a four-component, 32-bit packed+-- unsigned normalized format that has an 8-bit A component in bits 24..31,+-- an 8-bit B component stored with sRGB nonlinear encoding in bits 16..23,+-- an 8-bit G component stored with sRGB nonlinear encoding in bits 8..15,+-- and an 8-bit R component stored with sRGB nonlinear encoding in bits+-- 0..7.+pattern FORMAT_A8B8G8R8_SRGB_PACK32 = Format 57++-- | 'FORMAT_A2R10G10B10_UNORM_PACK32' specifies a four-component, 32-bit+-- packed unsigned normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern FORMAT_A2R10G10B10_UNORM_PACK32 = Format 58++-- | 'FORMAT_A2R10G10B10_SNORM_PACK32' specifies a four-component, 32-bit+-- packed signed normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern FORMAT_A2R10G10B10_SNORM_PACK32 = Format 59++-- | 'FORMAT_A2R10G10B10_USCALED_PACK32' specifies a four-component, 32-bit+-- packed unsigned scaled integer format that has a 2-bit A component in+-- bits 30..31, a 10-bit R component in bits 20..29, a 10-bit G component+-- in bits 10..19, and a 10-bit B component in bits 0..9.+pattern FORMAT_A2R10G10B10_USCALED_PACK32 = Format 60++-- | 'FORMAT_A2R10G10B10_SSCALED_PACK32' specifies a four-component, 32-bit+-- packed signed scaled integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern FORMAT_A2R10G10B10_SSCALED_PACK32 = Format 61++-- | 'FORMAT_A2R10G10B10_UINT_PACK32' specifies a four-component, 32-bit+-- packed unsigned integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern FORMAT_A2R10G10B10_UINT_PACK32 = Format 62++-- | 'FORMAT_A2R10G10B10_SINT_PACK32' specifies a four-component, 32-bit+-- packed signed integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit R component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit B component in bits 0..9.+pattern FORMAT_A2R10G10B10_SINT_PACK32 = Format 63++-- | 'FORMAT_A2B10G10R10_UNORM_PACK32' specifies a four-component, 32-bit+-- packed unsigned normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern FORMAT_A2B10G10R10_UNORM_PACK32 = Format 64++-- | 'FORMAT_A2B10G10R10_SNORM_PACK32' specifies a four-component, 32-bit+-- packed signed normalized format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern FORMAT_A2B10G10R10_SNORM_PACK32 = Format 65++-- | 'FORMAT_A2B10G10R10_USCALED_PACK32' specifies a four-component, 32-bit+-- packed unsigned scaled integer format that has a 2-bit A component in+-- bits 30..31, a 10-bit B component in bits 20..29, a 10-bit G component+-- in bits 10..19, and a 10-bit R component in bits 0..9.+pattern FORMAT_A2B10G10R10_USCALED_PACK32 = Format 66++-- | 'FORMAT_A2B10G10R10_SSCALED_PACK32' specifies a four-component, 32-bit+-- packed signed scaled integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern FORMAT_A2B10G10R10_SSCALED_PACK32 = Format 67++-- | 'FORMAT_A2B10G10R10_UINT_PACK32' specifies a four-component, 32-bit+-- packed unsigned integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern FORMAT_A2B10G10R10_UINT_PACK32 = Format 68++-- | 'FORMAT_A2B10G10R10_SINT_PACK32' specifies a four-component, 32-bit+-- packed signed integer format that has a 2-bit A component in bits+-- 30..31, a 10-bit B component in bits 20..29, a 10-bit G component in+-- bits 10..19, and a 10-bit R component in bits 0..9.+pattern FORMAT_A2B10G10R10_SINT_PACK32 = Format 69++-- | 'FORMAT_R16_UNORM' specifies a one-component, 16-bit unsigned normalized+-- format that has a single 16-bit R component.+pattern FORMAT_R16_UNORM = Format 70++-- | 'FORMAT_R16_SNORM' specifies a one-component, 16-bit signed normalized+-- format that has a single 16-bit R component.+pattern FORMAT_R16_SNORM = Format 71++-- | 'FORMAT_R16_USCALED' specifies a one-component, 16-bit unsigned scaled+-- integer format that has a single 16-bit R component.+pattern FORMAT_R16_USCALED = Format 72++-- | 'FORMAT_R16_SSCALED' specifies a one-component, 16-bit signed scaled+-- integer format that has a single 16-bit R component.+pattern FORMAT_R16_SSCALED = Format 73++-- | 'FORMAT_R16_UINT' specifies a one-component, 16-bit unsigned integer+-- format that has a single 16-bit R component.+pattern FORMAT_R16_UINT = Format 74++-- | 'FORMAT_R16_SINT' specifies a one-component, 16-bit signed integer+-- format that has a single 16-bit R component.+pattern FORMAT_R16_SINT = Format 75++-- | 'FORMAT_R16_SFLOAT' specifies a one-component, 16-bit signed+-- floating-point format that has a single 16-bit R component.+pattern FORMAT_R16_SFLOAT = Format 76++-- | 'FORMAT_R16G16_UNORM' specifies a two-component, 32-bit unsigned+-- normalized format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern FORMAT_R16G16_UNORM = Format 77++-- | 'FORMAT_R16G16_SNORM' specifies a two-component, 32-bit signed+-- normalized format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern FORMAT_R16G16_SNORM = Format 78++-- | 'FORMAT_R16G16_USCALED' specifies a two-component, 32-bit unsigned+-- scaled integer format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern FORMAT_R16G16_USCALED = Format 79++-- | 'FORMAT_R16G16_SSCALED' specifies a two-component, 32-bit signed scaled+-- integer format that has a 16-bit R component in bytes 0..1, and a 16-bit+-- G component in bytes 2..3.+pattern FORMAT_R16G16_SSCALED = Format 80++-- | 'FORMAT_R16G16_UINT' specifies a two-component, 32-bit unsigned integer+-- format that has a 16-bit R component in bytes 0..1, and a 16-bit G+-- component in bytes 2..3.+pattern FORMAT_R16G16_UINT = Format 81++-- | 'FORMAT_R16G16_SINT' specifies a two-component, 32-bit signed integer+-- format that has a 16-bit R component in bytes 0..1, and a 16-bit G+-- component in bytes 2..3.+pattern FORMAT_R16G16_SINT = Format 82++-- | 'FORMAT_R16G16_SFLOAT' specifies a two-component, 32-bit signed+-- floating-point format that has a 16-bit R component in bytes 0..1, and a+-- 16-bit G component in bytes 2..3.+pattern FORMAT_R16G16_SFLOAT = Format 83++-- | 'FORMAT_R16G16B16_UNORM' specifies a three-component, 48-bit unsigned+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern FORMAT_R16G16B16_UNORM = Format 84++-- | 'FORMAT_R16G16B16_SNORM' specifies a three-component, 48-bit signed+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern FORMAT_R16G16B16_SNORM = Format 85++-- | 'FORMAT_R16G16B16_USCALED' specifies a three-component, 48-bit unsigned+-- scaled integer format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes+-- 4..5.+pattern FORMAT_R16G16B16_USCALED = Format 86++-- | 'FORMAT_R16G16B16_SSCALED' specifies a three-component, 48-bit signed+-- scaled integer format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes+-- 4..5.+pattern FORMAT_R16G16B16_SSCALED = Format 87++-- | 'FORMAT_R16G16B16_UINT' specifies a three-component, 48-bit unsigned+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern FORMAT_R16G16B16_UINT = Format 88++-- | 'FORMAT_R16G16B16_SINT' specifies a three-component, 48-bit signed+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, and a 16-bit B component in bytes 4..5.+pattern FORMAT_R16G16B16_SINT = Format 89++-- | 'FORMAT_R16G16B16_SFLOAT' specifies a three-component, 48-bit signed+-- floating-point format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, and a 16-bit B component in bytes+-- 4..5.+pattern FORMAT_R16G16B16_SFLOAT = Format 90++-- | 'FORMAT_R16G16B16A16_UNORM' specifies a four-component, 64-bit unsigned+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a+-- 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_UNORM = Format 91++-- | 'FORMAT_R16G16B16A16_SNORM' specifies a four-component, 64-bit signed+-- normalized format that has a 16-bit R component in bytes 0..1, a 16-bit+-- G component in bytes 2..3, a 16-bit B component in bytes 4..5, and a+-- 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_SNORM = Format 92++-- | 'FORMAT_R16G16B16A16_USCALED' specifies a four-component, 64-bit+-- unsigned scaled integer format that has a 16-bit R component in bytes+-- 0..1, a 16-bit G component in bytes 2..3, a 16-bit B component in bytes+-- 4..5, and a 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_USCALED = Format 93++-- | 'FORMAT_R16G16B16A16_SSCALED' specifies a four-component, 64-bit signed+-- scaled integer format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,+-- and a 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_SSCALED = Format 94++-- | 'FORMAT_R16G16B16A16_UINT' specifies a four-component, 64-bit unsigned+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, a 16-bit B component in bytes 4..5, and a+-- 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_UINT = Format 95++-- | 'FORMAT_R16G16B16A16_SINT' specifies a four-component, 64-bit signed+-- integer format that has a 16-bit R component in bytes 0..1, a 16-bit G+-- component in bytes 2..3, a 16-bit B component in bytes 4..5, and a+-- 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_SINT = Format 96++-- | 'FORMAT_R16G16B16A16_SFLOAT' specifies a four-component, 64-bit signed+-- floating-point format that has a 16-bit R component in bytes 0..1, a+-- 16-bit G component in bytes 2..3, a 16-bit B component in bytes 4..5,+-- and a 16-bit A component in bytes 6..7.+pattern FORMAT_R16G16B16A16_SFLOAT = Format 97++-- | 'FORMAT_R32_UINT' specifies a one-component, 32-bit unsigned integer+-- format that has a single 32-bit R component.+pattern FORMAT_R32_UINT = Format 98++-- | 'FORMAT_R32_SINT' specifies a one-component, 32-bit signed integer+-- format that has a single 32-bit R component.+pattern FORMAT_R32_SINT = Format 99++-- | 'FORMAT_R32_SFLOAT' specifies a one-component, 32-bit signed+-- floating-point format that has a single 32-bit R component.+pattern FORMAT_R32_SFLOAT = Format 100++-- | 'FORMAT_R32G32_UINT' specifies a two-component, 64-bit unsigned integer+-- format that has a 32-bit R component in bytes 0..3, and a 32-bit G+-- component in bytes 4..7.+pattern FORMAT_R32G32_UINT = Format 101++-- | 'FORMAT_R32G32_SINT' specifies a two-component, 64-bit signed integer+-- format that has a 32-bit R component in bytes 0..3, and a 32-bit G+-- component in bytes 4..7.+pattern FORMAT_R32G32_SINT = Format 102++-- | 'FORMAT_R32G32_SFLOAT' specifies a two-component, 64-bit signed+-- floating-point format that has a 32-bit R component in bytes 0..3, and a+-- 32-bit G component in bytes 4..7.+pattern FORMAT_R32G32_SFLOAT = Format 103++-- | 'FORMAT_R32G32B32_UINT' specifies a three-component, 96-bit unsigned+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, and a 32-bit B component in bytes 8..11.+pattern FORMAT_R32G32B32_UINT = Format 104++-- | 'FORMAT_R32G32B32_SINT' specifies a three-component, 96-bit signed+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, and a 32-bit B component in bytes 8..11.+pattern FORMAT_R32G32B32_SINT = Format 105++-- | 'FORMAT_R32G32B32_SFLOAT' specifies a three-component, 96-bit signed+-- floating-point format that has a 32-bit R component in bytes 0..3, a+-- 32-bit G component in bytes 4..7, and a 32-bit B component in bytes+-- 8..11.+pattern FORMAT_R32G32B32_SFLOAT = Format 106++-- | 'FORMAT_R32G32B32A32_UINT' specifies a four-component, 128-bit unsigned+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, a 32-bit B component in bytes 8..11, and a+-- 32-bit A component in bytes 12..15.+pattern FORMAT_R32G32B32A32_UINT = Format 107++-- | 'FORMAT_R32G32B32A32_SINT' specifies a four-component, 128-bit signed+-- integer format that has a 32-bit R component in bytes 0..3, a 32-bit G+-- component in bytes 4..7, a 32-bit B component in bytes 8..11, and a+-- 32-bit A component in bytes 12..15.+pattern FORMAT_R32G32B32A32_SINT = Format 108++-- | 'FORMAT_R32G32B32A32_SFLOAT' specifies a four-component, 128-bit signed+-- floating-point format that has a 32-bit R component in bytes 0..3, a+-- 32-bit G component in bytes 4..7, a 32-bit B component in bytes 8..11,+-- and a 32-bit A component in bytes 12..15.+pattern FORMAT_R32G32B32A32_SFLOAT = Format 109++-- | 'FORMAT_R64_UINT' specifies a one-component, 64-bit unsigned integer+-- format that has a single 64-bit R component.+pattern FORMAT_R64_UINT = Format 110++-- | 'FORMAT_R64_SINT' specifies a one-component, 64-bit signed integer+-- format that has a single 64-bit R component.+pattern FORMAT_R64_SINT = Format 111++-- | 'FORMAT_R64_SFLOAT' specifies a one-component, 64-bit signed+-- floating-point format that has a single 64-bit R component.+pattern FORMAT_R64_SFLOAT = Format 112++-- | 'FORMAT_R64G64_UINT' specifies a two-component, 128-bit unsigned integer+-- format that has a 64-bit R component in bytes 0..7, and a 64-bit G+-- component in bytes 8..15.+pattern FORMAT_R64G64_UINT = Format 113++-- | 'FORMAT_R64G64_SINT' specifies a two-component, 128-bit signed integer+-- format that has a 64-bit R component in bytes 0..7, and a 64-bit G+-- component in bytes 8..15.+pattern FORMAT_R64G64_SINT = Format 114++-- | 'FORMAT_R64G64_SFLOAT' specifies a two-component, 128-bit signed+-- floating-point format that has a 64-bit R component in bytes 0..7, and a+-- 64-bit G component in bytes 8..15.+pattern FORMAT_R64G64_SFLOAT = Format 115++-- | 'FORMAT_R64G64B64_UINT' specifies a three-component, 192-bit unsigned+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, and a 64-bit B component in bytes 16..23.+pattern FORMAT_R64G64B64_UINT = Format 116++-- | 'FORMAT_R64G64B64_SINT' specifies a three-component, 192-bit signed+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, and a 64-bit B component in bytes 16..23.+pattern FORMAT_R64G64B64_SINT = Format 117++-- | 'FORMAT_R64G64B64_SFLOAT' specifies a three-component, 192-bit signed+-- floating-point format that has a 64-bit R component in bytes 0..7, a+-- 64-bit G component in bytes 8..15, and a 64-bit B component in bytes+-- 16..23.+pattern FORMAT_R64G64B64_SFLOAT = Format 118++-- | 'FORMAT_R64G64B64A64_UINT' specifies a four-component, 256-bit unsigned+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, a 64-bit B component in bytes 16..23, and a+-- 64-bit A component in bytes 24..31.+pattern FORMAT_R64G64B64A64_UINT = Format 119++-- | 'FORMAT_R64G64B64A64_SINT' specifies a four-component, 256-bit signed+-- integer format that has a 64-bit R component in bytes 0..7, a 64-bit G+-- component in bytes 8..15, a 64-bit B component in bytes 16..23, and a+-- 64-bit A component in bytes 24..31.+pattern FORMAT_R64G64B64A64_SINT = Format 120++-- | 'FORMAT_R64G64B64A64_SFLOAT' specifies a four-component, 256-bit signed+-- floating-point format that has a 64-bit R component in bytes 0..7, a+-- 64-bit G component in bytes 8..15, a 64-bit B component in bytes 16..23,+-- and a 64-bit A component in bytes 24..31.+pattern FORMAT_R64G64B64A64_SFLOAT = Format 121++-- | 'FORMAT_B10G11R11_UFLOAT_PACK32' specifies a three-component, 32-bit+-- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-fp10>+-- and+-- <https://registry.khronos.org/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+-- in bits 27..31, a 9-bit B component mantissa in bits 18..26, a 9-bit G+-- component mantissa in bits 9..17, and a 9-bit R component mantissa in+-- bits 0..8.+pattern FORMAT_E5B9G9R9_UFLOAT_PACK32 = Format 123++-- | 'FORMAT_D16_UNORM' specifies a one-component, 16-bit unsigned normalized+-- format that has a single 16-bit depth component.+pattern FORMAT_D16_UNORM = Format 124++-- | 'FORMAT_X8_D24_UNORM_PACK32' specifies a two-component, 32-bit format+-- that has 24 unsigned normalized bits in the depth component and,+-- /optionally/, 8 bits that are unused.+pattern FORMAT_X8_D24_UNORM_PACK32 = Format 125++-- | 'FORMAT_D32_SFLOAT' specifies a one-component, 32-bit signed+-- floating-point format that has 32 bits in the depth component.+pattern FORMAT_D32_SFLOAT = Format 126++-- | 'FORMAT_S8_UINT' specifies a one-component, 8-bit unsigned integer+-- format that has 8 bits in the stencil component.+pattern FORMAT_S8_UINT = Format 127++-- | 'FORMAT_D16_UNORM_S8_UINT' specifies a two-component, 24-bit format that+-- has 16 unsigned normalized bits in the depth component and 8 unsigned+-- integer bits in the stencil component.+pattern FORMAT_D16_UNORM_S8_UINT = Format 128++-- | 'FORMAT_D24_UNORM_S8_UINT' specifies a two-component, 32-bit packed+-- format that has 8 unsigned integer bits in the stencil component, and 24+-- unsigned normalized bits in the depth component.+pattern FORMAT_D24_UNORM_S8_UINT = Format 129++-- | 'FORMAT_D32_SFLOAT_S8_UINT' specifies a two-component format that has 32+-- signed float bits in the depth component and 8 unsigned integer bits in+-- the stencil component. There are /optionally/ 24 bits that are unused.+pattern FORMAT_D32_SFLOAT_S8_UINT = Format 130++-- | 'FORMAT_BC1_RGB_UNORM_BLOCK' specifies a three-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data. This format has+-- no alpha and is considered opaque.+pattern FORMAT_BC1_RGB_UNORM_BLOCK = Format 131++-- | 'FORMAT_BC1_RGB_SRGB_BLOCK' specifies a three-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data with sRGB+-- nonlinear encoding. This format has no alpha and is considered opaque.+pattern FORMAT_BC1_RGB_SRGB_BLOCK = Format 132++-- | 'FORMAT_BC1_RGBA_UNORM_BLOCK' specifies a four-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data, and provides 1+-- bit of alpha.+pattern FORMAT_BC1_RGBA_UNORM_BLOCK = Format 133++-- | 'FORMAT_BC1_RGBA_SRGB_BLOCK' specifies a four-component,+-- block-compressed format where each 64-bit compressed texel block encodes+-- a 4×4 rectangle of unsigned normalized RGB texel data with sRGB+-- nonlinear encoding, and provides 1 bit of alpha.+pattern FORMAT_BC1_RGBA_SRGB_BLOCK = Format 134++-- | 'FORMAT_BC2_UNORM_BLOCK' specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values.+pattern FORMAT_BC2_UNORM_BLOCK = Format 135++-- | 'FORMAT_BC2_SRGB_BLOCK' specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values with sRGB nonlinear+-- encoding.+pattern FORMAT_BC2_SRGB_BLOCK = Format 136++-- | 'FORMAT_BC3_UNORM_BLOCK' specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values.+pattern FORMAT_BC3_UNORM_BLOCK = Format 137++-- | 'FORMAT_BC3_SRGB_BLOCK' specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with the first 64 bits encoding+-- alpha values followed by 64 bits encoding RGB values with sRGB nonlinear+-- encoding.+pattern FORMAT_BC3_SRGB_BLOCK = Format 138++-- | 'FORMAT_BC4_UNORM_BLOCK' specifies a one-component, block-compressed+-- format where each 64-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized red texel data.+pattern FORMAT_BC4_UNORM_BLOCK = Format 139++-- | 'FORMAT_BC4_SNORM_BLOCK' specifies a one-component, block-compressed+-- format where each 64-bit compressed texel block encodes a 4×4 rectangle+-- of signed normalized red texel data.+pattern FORMAT_BC4_SNORM_BLOCK = Format 140++-- | 'FORMAT_BC5_UNORM_BLOCK' specifies a two-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RG texel data with the first 64 bits encoding red+-- values followed by 64 bits encoding green values.+pattern FORMAT_BC5_UNORM_BLOCK = Format 141++-- | 'FORMAT_BC5_SNORM_BLOCK' specifies a two-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of signed normalized RG texel data with the first 64 bits encoding red+-- values followed by 64 bits encoding green values.+pattern FORMAT_BC5_SNORM_BLOCK = Format 142++-- | 'FORMAT_BC6H_UFLOAT_BLOCK' specifies a three-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned floating-point RGB texel data.+pattern FORMAT_BC6H_UFLOAT_BLOCK = Format 143++-- | 'FORMAT_BC6H_SFLOAT_BLOCK' specifies a three-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of signed floating-point RGB texel data.+pattern FORMAT_BC6H_SFLOAT_BLOCK = Format 144++-- | 'FORMAT_BC7_UNORM_BLOCK' specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data.+pattern FORMAT_BC7_UNORM_BLOCK = Format 145++-- | 'FORMAT_BC7_SRGB_BLOCK' specifies a four-component, block-compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern FORMAT_BC7_SRGB_BLOCK = Format 146++-- | 'FORMAT_ETC2_R8G8B8_UNORM_BLOCK' specifies a three-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data. This format has no+-- alpha and is considered opaque.+pattern FORMAT_ETC2_R8G8B8_UNORM_BLOCK = Format 147++-- | 'FORMAT_ETC2_R8G8B8_SRGB_BLOCK' specifies a three-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data with sRGB nonlinear+-- encoding. This format has no alpha and is considered opaque.+pattern FORMAT_ETC2_R8G8B8_SRGB_BLOCK = Format 148++-- | 'FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK' specifies a four-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data, and provides 1 bit of+-- alpha.+pattern FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = Format 149++-- | 'FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK' specifies a four-component, ETC2+-- compressed format where each 64-bit compressed texel block encodes a 4×4+-- rectangle of unsigned normalized RGB texel data with sRGB nonlinear+-- encoding, and provides 1 bit of alpha.+pattern FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = Format 150++-- | 'FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK' specifies a four-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data with the first 64+-- bits encoding alpha values followed by 64 bits encoding RGB values.+pattern FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = Format 151++-- | 'FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK' specifies a four-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data with the first 64+-- bits encoding alpha values followed by 64 bits encoding RGB values with+-- sRGB nonlinear encoding applied.+pattern FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = Format 152++-- | 'FORMAT_EAC_R11_UNORM_BLOCK' specifies a one-component, ETC2 compressed+-- format where each 64-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized red texel data.+pattern FORMAT_EAC_R11_UNORM_BLOCK = Format 153++-- | 'FORMAT_EAC_R11_SNORM_BLOCK' specifies a one-component, ETC2 compressed+-- format where each 64-bit compressed texel block encodes a 4×4 rectangle+-- of signed normalized red texel data.+pattern FORMAT_EAC_R11_SNORM_BLOCK = Format 154++-- | 'FORMAT_EAC_R11G11_UNORM_BLOCK' specifies a two-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RG texel data with the first 64+-- bits encoding red values followed by 64 bits encoding green values.+pattern FORMAT_EAC_R11G11_UNORM_BLOCK = Format 155++-- | 'FORMAT_EAC_R11G11_SNORM_BLOCK' specifies a two-component, ETC2+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of signed normalized RG texel data with the first 64 bits+-- encoding red values followed by 64 bits encoding green values.+pattern FORMAT_EAC_R11G11_SNORM_BLOCK = Format 156++-- | 'FORMAT_ASTC_4x4_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 4×4 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_4x4_UNORM_BLOCK = Format 157++-- | 'FORMAT_ASTC_4x4_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes a 4×4 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern FORMAT_ASTC_4x4_SRGB_BLOCK = Format 158++-- | 'FORMAT_ASTC_5x4_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×4 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_5x4_UNORM_BLOCK = Format 159++-- | 'FORMAT_ASTC_5x4_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes a 5×4 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern FORMAT_ASTC_5x4_SRGB_BLOCK = Format 160++-- | 'FORMAT_ASTC_5x5_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 5×5 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_5x5_UNORM_BLOCK = Format 161++-- | 'FORMAT_ASTC_5x5_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes a 5×5 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern FORMAT_ASTC_5x5_SRGB_BLOCK = Format 162++-- | 'FORMAT_ASTC_6x5_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×5 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_6x5_UNORM_BLOCK = Format 163++-- | 'FORMAT_ASTC_6x5_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes a 6×5 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern FORMAT_ASTC_6x5_SRGB_BLOCK = Format 164++-- | 'FORMAT_ASTC_6x6_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 6×6 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_6x6_UNORM_BLOCK = Format 165++-- | 'FORMAT_ASTC_6x6_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes a 6×6 rectangle+-- of unsigned normalized RGBA texel data with sRGB nonlinear encoding+-- applied to the RGB components.+pattern FORMAT_ASTC_6x6_SRGB_BLOCK = Format 166++-- | 'FORMAT_ASTC_8x5_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×5 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_8x5_UNORM_BLOCK = Format 167++-- | 'FORMAT_ASTC_8x5_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes an 8×5+-- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern FORMAT_ASTC_8x5_SRGB_BLOCK = Format 168++-- | 'FORMAT_ASTC_8x6_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×6 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_8x6_UNORM_BLOCK = Format 169++-- | 'FORMAT_ASTC_8x6_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes an 8×6+-- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern FORMAT_ASTC_8x6_SRGB_BLOCK = Format 170++-- | 'FORMAT_ASTC_8x8_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes an+-- 8×8 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_8x8_UNORM_BLOCK = Format 171++-- | 'FORMAT_ASTC_8x8_SRGB_BLOCK' specifies a four-component, ASTC compressed+-- format where each 128-bit compressed texel block encodes an 8×8+-- rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern FORMAT_ASTC_8x8_SRGB_BLOCK = Format 172++-- | 'FORMAT_ASTC_10x5_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×5 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_10x5_UNORM_BLOCK = Format 173++-- | 'FORMAT_ASTC_10x5_SRGB_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×5 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern FORMAT_ASTC_10x5_SRGB_BLOCK = Format 174++-- | 'FORMAT_ASTC_10x6_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×6 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_10x6_UNORM_BLOCK = Format 175++-- | 'FORMAT_ASTC_10x6_SRGB_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×6 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern FORMAT_ASTC_10x6_SRGB_BLOCK = Format 176++-- | 'FORMAT_ASTC_10x8_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×8 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_10x8_UNORM_BLOCK = Format 177++-- | 'FORMAT_ASTC_10x8_SRGB_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×8 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern FORMAT_ASTC_10x8_SRGB_BLOCK = Format 178++-- | 'FORMAT_ASTC_10x10_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×10 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_10x10_UNORM_BLOCK = Format 179++-- | 'FORMAT_ASTC_10x10_SRGB_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 10×10 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern FORMAT_ASTC_10x10_SRGB_BLOCK = Format 180++-- | 'FORMAT_ASTC_12x10_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×10 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_12x10_UNORM_BLOCK = Format 181++-- | 'FORMAT_ASTC_12x10_SRGB_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×10 rectangle of unsigned normalized RGBA texel data with sRGB+-- nonlinear encoding applied to the RGB components.+pattern FORMAT_ASTC_12x10_SRGB_BLOCK = Format 182++-- | 'FORMAT_ASTC_12x12_UNORM_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 12×12 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_ASTC_12x12_UNORM_BLOCK = Format 183++-- | 'FORMAT_ASTC_12x12_SRGB_BLOCK' specifies a four-component, ASTC+-- compressed format where each 128-bit compressed texel block encodes a+-- 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_R16G16_S10_5_NV' specifies a two-component, fixed-point format+-- where most significant bit specifies the sign bit, next 10 bits specify+-- the integer value and last 5 bits represent the fractional value.+pattern FORMAT_R16G16_S10_5_NV = Format 1000464000++-- | '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+-- encoding applied to the RGB components.+pattern FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = Format 1000054007++-- | 'FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC+-- compressed format where each 64-bit compressed texel block encodes an+-- 8×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = Format 1000054006++-- | 'FORMAT_PVRTC1_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+-- encoding applied to the RGB components.+pattern FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = Format 1000054005++-- | 'FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG' specifies a four-component, PVRTC+-- compressed format where each 64-bit compressed texel block encodes an+-- 8×4 rectangle of unsigned normalized RGBA texel data with sRGB nonlinear+-- encoding applied to the RGB components.+pattern FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = Format 1000054004++-- | 'FORMAT_PVRTC2_4BPP_UNORM_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.+pattern FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = Format 1000054003++-- | 'FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG' specifies a four-component, PVRTC+-- compressed format where each 64-bit compressed texel block encodes an+-- 8×4 rectangle of unsigned normalized RGBA texel data.+pattern FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = Format 1000054002++-- | 'FORMAT_PVRTC1_4BPP_UNORM_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.+pattern FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = Format 1000054001++-- | 'FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG' specifies a four-component, PVRTC+-- 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+-- 16-bit R component in each 16-bit word of plane 2. Each plane has 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane.+pattern FORMAT_G16_B16_R16_3PLANE_444_UNORM = Format 1000156033++-- | 'FORMAT_G16_B16R16_2PLANE_422_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. The horizontal dimension of the BR plane is+-- halved relative to the image dimensions, and each R and B value is+-- shared with the G components for which+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G16_B16R16_2PLANE_422_UNORM = Format 1000156032++-- | 'FORMAT_G16_B16_R16_3PLANE_422_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+-- 16-bit R component in each 16-bit word of plane 2. The horizontal+-- dimension of the R and B plane is halved relative to the image+-- dimensions, and each R and B value is shared with the G components for+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G16_B16_R16_3PLANE_422_UNORM = Format 1000156031++-- | 'FORMAT_G16_B16R16_2PLANE_420_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. The horizontal and vertical dimensions of the+-- BR plane are halved relative to the image dimensions, and each R and B+-- value is shared with the G components for which+-- \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G16_B16R16_2PLANE_420_UNORM = Format 1000156030++-- | 'FORMAT_G16_B16_R16_3PLANE_420_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+-- 16-bit R component in each 16-bit word of plane 2. The horizontal and+-- vertical dimensions of the R and B planes are halved relative to the+-- image dimensions, and each R and B component is shared with the G+-- components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G16_B16_R16_3PLANE_420_UNORM = Format 1000156029++-- | 'FORMAT_B16G16R16G16_422_UNORM' specifies a four-component, 64-bit+-- format containing a pair of G components, an R component, and a B+-- component, collectively encoding a 2×1 rectangle of unsigned normalized+-- RGB texel data. One G value is present at each /i/ coordinate, with the+-- B and R values shared across both G values and thus recorded at half the+-- horizontal resolution of the image. This format has a 16-bit B component+-- in the word in bytes 0..1, a 16-bit G component for the even /i/+-- coordinate in the word in bytes 2..3, a 16-bit R component in the word+-- in bytes 4..5, and a 16-bit G component for the odd /i/ coordinate in+-- the word in bytes 6..7. This format only supports images with a width+-- that is a multiple of two. For the purposes of the constraints on copy+-- extents, this format is treated as a compressed format with a 2×1+-- compressed texel block.+pattern FORMAT_B16G16R16G16_422_UNORM = Format 1000156028++-- | 'FORMAT_G16B16G16R16_422_UNORM' specifies a four-component, 64-bit+-- format containing a pair of G components, an R component, and a B+-- component, collectively encoding a 2×1 rectangle of unsigned normalized+-- RGB texel data. One G value is present at each /i/ coordinate, with the+-- B and R values shared across both G values and thus recorded at half the+-- horizontal resolution of the image. This format has a 16-bit G component+-- for the even /i/ coordinate in the word in bytes 0..1, a 16-bit B+-- component in the word in bytes 2..3, a 16-bit G component for the odd+-- /i/ coordinate in the word in bytes 4..5, and a 16-bit R component in+-- the word in bytes 6..7. This format only supports images with a width+-- that is a multiple of two. For the purposes of the constraints on copy+-- extents, this format is treated as a compressed format with a 2×1+-- compressed texel block.+pattern FORMAT_G16B16G16R16_422_UNORM = Format 1000156027++-- | 'FORMAT_G12X4_B12X4_R12X4_3PLANE_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, a 12-bit B component+-- in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R+-- component in the top 12 bits of each 16-bit word of plane 2, with the+-- bottom 4 bits of each word unused. Each plane has 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane.+pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = Format 1000156026++-- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_422_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, with the bottom 4 bits of each word unused. The+-- horizontal dimension of the BR plane is halved relative to the image+-- dimensions, and each R and B value is shared with the G components for+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = Format 1000156025++-- | 'FORMAT_G12X4_B12X4_R12X4_3PLANE_422_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, a 12-bit B component+-- in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R+-- component in the top 12 bits of each 16-bit word of plane 2, with the+-- bottom 4 bits of each word unused. The horizontal dimension of the R and+-- B plane is halved relative to the image dimensions, and each R and B+-- value is shared with the G components for which+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = Format 1000156024++-- | 'FORMAT_G12X4_B12X4R12X4_2PLANE_420_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, with the bottom 4 bits of each word unused. The+-- horizontal and vertical dimensions of the BR plane are halved relative+-- to the image dimensions, and each R and B value is shared with the G+-- components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = Format 1000156023++-- | 'FORMAT_G12X4_B12X4_R12X4_3PLANE_420_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, a 12-bit B component+-- in the top 12 bits of each 16-bit word of plane 1, and a 12-bit R+-- component in the top 12 bits of each 16-bit word of plane 2, with the+-- bottom 4 bits of each word unused. The horizontal and vertical+-- dimensions of the R and B planes are halved relative to the image+-- dimensions, and each R and B component is shared with the G components+-- for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = Format 1000156022++-- | 'FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16' specifies a+-- four-component, 64-bit format containing a pair of G components, an R+-- component, and a B component, collectively encoding a 2×1 rectangle of+-- unsigned normalized RGB texel data. One G value is present at each /i/+-- coordinate, with the B and R values shared across both G values and thus+-- recorded at half the horizontal resolution of the image. This format has+-- a 12-bit B component in the top 12 bits of the word in bytes 0..1, a+-- 12-bit G component for the even /i/ coordinate in the top 12 bits of the+-- word in bytes 2..3, a 12-bit R component in the top 12 bits of the word+-- in bytes 4..5, and a 12-bit G component for the odd /i/ coordinate in+-- the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of+-- each word unused. This format only supports images with a width that is+-- a multiple of two. For the purposes of the constraints on copy extents,+-- this format is treated as a compressed format with a 2×1 compressed+-- texel block.+pattern FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = Format 1000156021++-- | 'FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16' specifies a+-- four-component, 64-bit format containing a pair of G components, an R+-- component, and a B component, collectively encoding a 2×1 rectangle of+-- unsigned normalized RGB texel data. One G value is present at each /i/+-- coordinate, with the B and R values shared across both G values and thus+-- recorded at half the horizontal resolution of the image. This format has+-- a 12-bit G component for the even /i/ coordinate in the top 12 bits of+-- the word in bytes 0..1, a 12-bit B component in the top 12 bits of the+-- word in bytes 2..3, a 12-bit G component for the odd /i/ coordinate in+-- the top 12 bits of the word in bytes 4..5, and a 12-bit R component in+-- the top 12 bits of the word in bytes 6..7, with the bottom 4 bits of+-- each word unused. This format only supports images with a width that is+-- a multiple of two. For the purposes of the constraints on copy extents,+-- this format is treated as a compressed format with a 2×1 compressed+-- texel block.+pattern FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = Format 1000156020++-- | 'FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16' specifies a four-component,+-- 64-bit unsigned normalized format that has a 12-bit R component in the+-- top 12 bits of the word in bytes 0..1, a 12-bit G component in the top+-- 12 bits of the word in bytes 2..3, a 12-bit B component in the top 12+-- bits of the word in bytes 4..5, and a 12-bit A component in the top 12+-- bits of the word in bytes 6..7, with the bottom 4 bits of each word+-- unused.+pattern FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = Format 1000156019++-- | 'FORMAT_R12X4G12X4_UNORM_2PACK16' specifies a two-component, 32-bit+-- unsigned normalized format that has a 12-bit R component in the top 12+-- bits of the word in bytes 0..1, and a 12-bit G component in the top 12+-- bits of the word in bytes 2..3, with the bottom 4 bits of each word+-- unused.+pattern FORMAT_R12X4G12X4_UNORM_2PACK16 = Format 1000156018++-- | 'FORMAT_R12X4_UNORM_PACK16' specifies a one-component, 16-bit unsigned+-- normalized format that has a single 12-bit R component in the top 12+-- bits of a 16-bit word, with the bottom 4 bits unused.+pattern FORMAT_R12X4_UNORM_PACK16 = Format 1000156017++-- | 'FORMAT_G10X6_B10X6_R10X6_3PLANE_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, a 10-bit B component+-- in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R+-- component in the top 10 bits of each 16-bit word of plane 2, with the+-- bottom 6 bits of each word unused. Each plane has 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane.+pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = Format 1000156016++-- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_422_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, with the bottom 6 bits of each word unused. The+-- horizontal dimension of the BR plane is halved relative to the image+-- dimensions, and each R and B value is shared with the G components for+-- which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = Format 1000156015++-- | 'FORMAT_G10X6_B10X6_R10X6_3PLANE_422_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, a 10-bit B component+-- in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R+-- component in the top 10 bits of each 16-bit word of plane 2, with the+-- bottom 6 bits of each word unused. The horizontal dimension of the R and+-- B plane is halved relative to the image dimensions, and each R and B+-- value is shared with the G components for which+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = Format 1000156014++-- | 'FORMAT_G10X6_B10X6R10X6_2PLANE_420_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, with the bottom 6 bits of each word unused. The+-- horizontal and vertical dimensions of the BR plane are halved relative+-- to the image dimensions, and each R and B value is shared with the G+-- components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = Format 1000156013++-- | 'FORMAT_G10X6_B10X6_R10X6_3PLANE_420_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, a 10-bit B component+-- in the top 10 bits of each 16-bit word of plane 1, and a 10-bit R+-- component in the top 10 bits of each 16-bit word of plane 2, with the+-- bottom 6 bits of each word unused. The horizontal and vertical+-- dimensions of the R and B planes are halved relative to the image+-- dimensions, and each R and B component is shared with the G components+-- for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = Format 1000156012++-- | 'FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16' specifies a+-- four-component, 64-bit format containing a pair of G components, an R+-- component, and a B component, collectively encoding a 2×1 rectangle of+-- unsigned normalized RGB texel data. One G value is present at each /i/+-- coordinate, with the B and R values shared across both G values and thus+-- recorded at half the horizontal resolution of the image. This format has+-- a 10-bit B component in the top 10 bits of the word in bytes 0..1, a+-- 10-bit G component for the even /i/ coordinate in the top 10 bits of the+-- word in bytes 2..3, a 10-bit R component in the top 10 bits of the word+-- in bytes 4..5, and a 10-bit G component for the odd /i/ coordinate in+-- the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of+-- each word unused. This format only supports images with a width that is+-- a multiple of two. For the purposes of the constraints on copy extents,+-- this format is treated as a compressed format with a 2×1 compressed+-- texel block.+pattern FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = Format 1000156011++-- | 'FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16' specifies a+-- four-component, 64-bit format containing a pair of G components, an R+-- component, and a B component, collectively encoding a 2×1 rectangle of+-- unsigned normalized RGB texel data. One G value is present at each /i/+-- coordinate, with the B and R values shared across both G values and thus+-- recorded at half the horizontal resolution of the image. This format has+-- a 10-bit G component for the even /i/ coordinate in the top 10 bits of+-- the word in bytes 0..1, a 10-bit B component in the top 10 bits of the+-- word in bytes 2..3, a 10-bit G component for the odd /i/ coordinate in+-- the top 10 bits of the word in bytes 4..5, and a 10-bit R component in+-- the top 10 bits of the word in bytes 6..7, with the bottom 6 bits of+-- each word unused. This format only supports images with a width that is+-- a multiple of two. For the purposes of the constraints on copy extents,+-- this format is treated as a compressed format with a 2×1 compressed+-- texel block.+pattern FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = Format 1000156010++-- | 'FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16' specifies a four-component,+-- 64-bit unsigned normalized format that has a 10-bit R component in the+-- top 10 bits of the word in bytes 0..1, a 10-bit G component in the top+-- 10 bits of the word in bytes 2..3, a 10-bit B component in the top 10+-- bits of the word in bytes 4..5, and a 10-bit A component in the top 10+-- bits of the word in bytes 6..7, with the bottom 6 bits of each word+-- unused.+pattern FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = Format 1000156009++-- | 'FORMAT_R10X6G10X6_UNORM_2PACK16' specifies a two-component, 32-bit+-- unsigned normalized format that has a 10-bit R component in the top 10+-- bits of the word in bytes 0..1, and a 10-bit G component in the top 10+-- bits of the word in bytes 2..3, with the bottom 6 bits of each word+-- unused.+pattern FORMAT_R10X6G10X6_UNORM_2PACK16 = Format 1000156008++-- | 'FORMAT_R10X6_UNORM_PACK16' specifies a one-component, 16-bit unsigned+-- normalized format that has a single 10-bit R component in the top 10+-- bits of a 16-bit word, with the bottom 6 bits unused.+pattern FORMAT_R10X6_UNORM_PACK16 = Format 1000156007++-- | 'FORMAT_G8_B8_R8_3PLANE_444_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has an 8-bit G component in plane 0, an 8-bit+-- B component in plane 1, and an 8-bit R component in plane 2. Each plane+-- has 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane.+pattern FORMAT_G8_B8_R8_3PLANE_444_UNORM = Format 1000156006++-- | 'FORMAT_G8_B8R8_2PLANE_422_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. The horizontal dimension of+-- the BR plane is halved relative to the image dimensions, and each R and+-- B value is shared with the G components for which+-- \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B = i_R\). 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. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G8_B8R8_2PLANE_422_UNORM = Format 1000156005++-- | 'FORMAT_G8_B8_R8_3PLANE_422_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has an 8-bit G component in plane 0, an 8-bit+-- B component in plane 1, and an 8-bit R component in plane 2. The+-- horizontal dimension of the R and B plane is halved relative to the+-- image dimensions, and each R and B value is shared with the G components+-- for which \(\left\lfloor i_G \times 0.5 \right\rfloor = i_B =+-- i_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width that is a+-- multiple of two.+pattern FORMAT_G8_B8_R8_3PLANE_422_UNORM = Format 1000156004++-- | 'FORMAT_G8_B8R8_2PLANE_420_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. The horizontal and vertical+-- dimensions of the BR plane are halved relative to the image dimensions,+-- and each R and B value is shared with the G components for which+-- \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G8_B8R8_2PLANE_420_UNORM = Format 1000156003++-- | 'FORMAT_G8_B8_R8_3PLANE_420_UNORM' specifies an unsigned normalized+-- /multi-planar format/ that has an 8-bit G component in plane 0, an 8-bit+-- B component in plane 1, and an 8-bit R component in plane 2. The+-- horizontal and vertical dimensions of the R and B planes are halved+-- relative to the image dimensions, and each R and B component is shared+-- with the G components for which \(\left\lfloor i_G \times 0.5+-- \right\rfloor = i_B = i_R\) and \(\left\lfloor j_G \times 0.5+-- \right\rfloor = j_B = j_R\). 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,+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT' for+-- the B plane, and+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' for+-- the R plane. This format only supports images with a width and height+-- that is a multiple of two.+pattern FORMAT_G8_B8_R8_3PLANE_420_UNORM = Format 1000156002++-- | 'FORMAT_B8G8R8G8_422_UNORM' specifies a four-component, 32-bit format+-- containing a pair of G components, an R component, and a B component,+-- collectively encoding a 2×1 rectangle of unsigned normalized RGB texel+-- data. One G value is present at each /i/ coordinate, with the B and R+-- values shared across both G values and thus recorded at half the+-- horizontal resolution of the image. This format has an 8-bit B component+-- in byte 0, an 8-bit G component for the even /i/ coordinate in byte 1,+-- an 8-bit R component in byte 2, and an 8-bit G component for the odd /i/+-- coordinate in byte 3. This format only supports images with a width that+-- is a multiple of two. For the purposes of the constraints on copy+-- extents, this format is treated as a compressed format with a 2×1+-- compressed texel block.+pattern FORMAT_B8G8R8G8_422_UNORM = Format 1000156001++-- | 'FORMAT_G8B8G8R8_422_UNORM' specifies a four-component, 32-bit format+-- containing a pair of G components, an R component, and a B component,+-- collectively encoding a 2×1 rectangle of unsigned normalized RGB texel+-- data. One G value is present at each /i/ coordinate, with the B and R+-- values shared across both G values and thus recorded at half the+-- horizontal resolution of the image. This format has an 8-bit G component+-- for the even /i/ coordinate in byte 0, an 8-bit B component in byte 1,+-- an 8-bit G component for the odd /i/ coordinate in byte 2, and an 8-bit+-- R component in byte 3. This format only supports images with a width+-- that is a multiple of two. For the purposes of the constraints on copy+-- extents, this format is treated as a compressed format with a 2×1+-- compressed texel block.+pattern FORMAT_G8B8G8R8_422_UNORM = Format 1000156000++{-# COMPLETE+  FORMAT_UNDEFINED+  , FORMAT_R4G4_UNORM_PACK8+  , FORMAT_R4G4B4A4_UNORM_PACK16+  , FORMAT_B4G4R4A4_UNORM_PACK16+  , FORMAT_R5G6B5_UNORM_PACK16+  , FORMAT_B5G6R5_UNORM_PACK16+  , FORMAT_R5G5B5A1_UNORM_PACK16+  , FORMAT_B5G5R5A1_UNORM_PACK16+  , FORMAT_A1R5G5B5_UNORM_PACK16+  , FORMAT_R8_UNORM+  , FORMAT_R8_SNORM+  , FORMAT_R8_USCALED+  , FORMAT_R8_SSCALED+  , FORMAT_R8_UINT+  , FORMAT_R8_SINT+  , FORMAT_R8_SRGB+  , FORMAT_R8G8_UNORM+  , FORMAT_R8G8_SNORM+  , FORMAT_R8G8_USCALED+  , FORMAT_R8G8_SSCALED+  , FORMAT_R8G8_UINT+  , FORMAT_R8G8_SINT+  , FORMAT_R8G8_SRGB+  , FORMAT_R8G8B8_UNORM+  , FORMAT_R8G8B8_SNORM+  , FORMAT_R8G8B8_USCALED+  , FORMAT_R8G8B8_SSCALED+  , FORMAT_R8G8B8_UINT+  , FORMAT_R8G8B8_SINT+  , FORMAT_R8G8B8_SRGB+  , FORMAT_B8G8R8_UNORM+  , FORMAT_B8G8R8_SNORM+  , FORMAT_B8G8R8_USCALED+  , FORMAT_B8G8R8_SSCALED+  , FORMAT_B8G8R8_UINT+  , FORMAT_B8G8R8_SINT+  , FORMAT_B8G8R8_SRGB+  , FORMAT_R8G8B8A8_UNORM+  , FORMAT_R8G8B8A8_SNORM+  , FORMAT_R8G8B8A8_USCALED+  , FORMAT_R8G8B8A8_SSCALED+  , FORMAT_R8G8B8A8_UINT+  , FORMAT_R8G8B8A8_SINT+  , FORMAT_R8G8B8A8_SRGB+  , FORMAT_B8G8R8A8_UNORM+  , FORMAT_B8G8R8A8_SNORM+  , FORMAT_B8G8R8A8_USCALED+  , FORMAT_B8G8R8A8_SSCALED+  , FORMAT_B8G8R8A8_UINT+  , FORMAT_B8G8R8A8_SINT+  , FORMAT_B8G8R8A8_SRGB+  , FORMAT_A8B8G8R8_UNORM_PACK32+  , FORMAT_A8B8G8R8_SNORM_PACK32+  , FORMAT_A8B8G8R8_USCALED_PACK32+  , FORMAT_A8B8G8R8_SSCALED_PACK32+  , FORMAT_A8B8G8R8_UINT_PACK32+  , FORMAT_A8B8G8R8_SINT_PACK32+  , FORMAT_A8B8G8R8_SRGB_PACK32+  , FORMAT_A2R10G10B10_UNORM_PACK32+  , FORMAT_A2R10G10B10_SNORM_PACK32+  , FORMAT_A2R10G10B10_USCALED_PACK32+  , FORMAT_A2R10G10B10_SSCALED_PACK32+  , FORMAT_A2R10G10B10_UINT_PACK32+  , FORMAT_A2R10G10B10_SINT_PACK32+  , FORMAT_A2B10G10R10_UNORM_PACK32+  , FORMAT_A2B10G10R10_SNORM_PACK32+  , FORMAT_A2B10G10R10_USCALED_PACK32+  , FORMAT_A2B10G10R10_SSCALED_PACK32+  , FORMAT_A2B10G10R10_UINT_PACK32+  , FORMAT_A2B10G10R10_SINT_PACK32+  , FORMAT_R16_UNORM+  , FORMAT_R16_SNORM+  , FORMAT_R16_USCALED+  , FORMAT_R16_SSCALED+  , FORMAT_R16_UINT+  , FORMAT_R16_SINT+  , FORMAT_R16_SFLOAT+  , FORMAT_R16G16_UNORM+  , FORMAT_R16G16_SNORM+  , FORMAT_R16G16_USCALED+  , FORMAT_R16G16_SSCALED+  , FORMAT_R16G16_UINT+  , FORMAT_R16G16_SINT+  , FORMAT_R16G16_SFLOAT+  , FORMAT_R16G16B16_UNORM+  , FORMAT_R16G16B16_SNORM+  , FORMAT_R16G16B16_USCALED+  , FORMAT_R16G16B16_SSCALED+  , FORMAT_R16G16B16_UINT+  , FORMAT_R16G16B16_SINT+  , FORMAT_R16G16B16_SFLOAT+  , FORMAT_R16G16B16A16_UNORM+  , FORMAT_R16G16B16A16_SNORM+  , FORMAT_R16G16B16A16_USCALED+  , FORMAT_R16G16B16A16_SSCALED+  , FORMAT_R16G16B16A16_UINT+  , FORMAT_R16G16B16A16_SINT+  , FORMAT_R16G16B16A16_SFLOAT+  , FORMAT_R32_UINT+  , FORMAT_R32_SINT+  , FORMAT_R32_SFLOAT+  , FORMAT_R32G32_UINT+  , FORMAT_R32G32_SINT+  , FORMAT_R32G32_SFLOAT+  , FORMAT_R32G32B32_UINT+  , FORMAT_R32G32B32_SINT+  , FORMAT_R32G32B32_SFLOAT+  , FORMAT_R32G32B32A32_UINT+  , FORMAT_R32G32B32A32_SINT+  , FORMAT_R32G32B32A32_SFLOAT+  , FORMAT_R64_UINT+  , FORMAT_R64_SINT+  , FORMAT_R64_SFLOAT+  , FORMAT_R64G64_UINT+  , FORMAT_R64G64_SINT+  , FORMAT_R64G64_SFLOAT+  , FORMAT_R64G64B64_UINT+  , FORMAT_R64G64B64_SINT+  , FORMAT_R64G64B64_SFLOAT+  , FORMAT_R64G64B64A64_UINT+  , FORMAT_R64G64B64A64_SINT+  , FORMAT_R64G64B64A64_SFLOAT+  , FORMAT_B10G11R11_UFLOAT_PACK32+  , FORMAT_E5B9G9R9_UFLOAT_PACK32+  , FORMAT_D16_UNORM+  , FORMAT_X8_D24_UNORM_PACK32+  , FORMAT_D32_SFLOAT+  , FORMAT_S8_UINT+  , FORMAT_D16_UNORM_S8_UINT+  , FORMAT_D24_UNORM_S8_UINT+  , FORMAT_D32_SFLOAT_S8_UINT+  , FORMAT_BC1_RGB_UNORM_BLOCK+  , FORMAT_BC1_RGB_SRGB_BLOCK+  , FORMAT_BC1_RGBA_UNORM_BLOCK+  , FORMAT_BC1_RGBA_SRGB_BLOCK+  , FORMAT_BC2_UNORM_BLOCK+  , FORMAT_BC2_SRGB_BLOCK+  , FORMAT_BC3_UNORM_BLOCK+  , FORMAT_BC3_SRGB_BLOCK+  , FORMAT_BC4_UNORM_BLOCK+  , FORMAT_BC4_SNORM_BLOCK+  , FORMAT_BC5_UNORM_BLOCK+  , FORMAT_BC5_SNORM_BLOCK+  , FORMAT_BC6H_UFLOAT_BLOCK+  , FORMAT_BC6H_SFLOAT_BLOCK+  , FORMAT_BC7_UNORM_BLOCK+  , FORMAT_BC7_SRGB_BLOCK+  , FORMAT_ETC2_R8G8B8_UNORM_BLOCK+  , FORMAT_ETC2_R8G8B8_SRGB_BLOCK+  , FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK+  , FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK+  , FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK+  , FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK+  , FORMAT_EAC_R11_UNORM_BLOCK+  , FORMAT_EAC_R11_SNORM_BLOCK+  , FORMAT_EAC_R11G11_UNORM_BLOCK+  , FORMAT_EAC_R11G11_SNORM_BLOCK+  , FORMAT_ASTC_4x4_UNORM_BLOCK+  , FORMAT_ASTC_4x4_SRGB_BLOCK+  , FORMAT_ASTC_5x4_UNORM_BLOCK+  , FORMAT_ASTC_5x4_SRGB_BLOCK+  , FORMAT_ASTC_5x5_UNORM_BLOCK+  , FORMAT_ASTC_5x5_SRGB_BLOCK+  , FORMAT_ASTC_6x5_UNORM_BLOCK+  , FORMAT_ASTC_6x5_SRGB_BLOCK+  , FORMAT_ASTC_6x6_UNORM_BLOCK+  , FORMAT_ASTC_6x6_SRGB_BLOCK+  , FORMAT_ASTC_8x5_UNORM_BLOCK+  , FORMAT_ASTC_8x5_SRGB_BLOCK+  , FORMAT_ASTC_8x6_UNORM_BLOCK+  , FORMAT_ASTC_8x6_SRGB_BLOCK+  , FORMAT_ASTC_8x8_UNORM_BLOCK+  , FORMAT_ASTC_8x8_SRGB_BLOCK+  , FORMAT_ASTC_10x5_UNORM_BLOCK+  , FORMAT_ASTC_10x5_SRGB_BLOCK+  , FORMAT_ASTC_10x6_UNORM_BLOCK+  , FORMAT_ASTC_10x6_SRGB_BLOCK+  , FORMAT_ASTC_10x8_UNORM_BLOCK+  , FORMAT_ASTC_10x8_SRGB_BLOCK+  , FORMAT_ASTC_10x10_UNORM_BLOCK+  , FORMAT_ASTC_10x10_SRGB_BLOCK+  , FORMAT_ASTC_12x10_UNORM_BLOCK+  , FORMAT_ASTC_12x10_SRGB_BLOCK+  , FORMAT_ASTC_12x12_UNORM_BLOCK+  , FORMAT_ASTC_12x12_SRGB_BLOCK+  , FORMAT_R16G16_S10_5_NV+  , FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG+  , FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG+  , FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG+  , FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG+  , FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG+  , 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+  , FORMAT_G16_B16R16_2PLANE_420_UNORM+  , FORMAT_G16_B16_R16_3PLANE_420_UNORM+  , FORMAT_B16G16R16G16_422_UNORM+  , FORMAT_G16B16G16R16_422_UNORM+  , FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16+  , FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16+  , FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16+  , FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16+  , FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16+  , FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16+  , FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16+  , FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16+  , FORMAT_R12X4G12X4_UNORM_2PACK16+  , FORMAT_R12X4_UNORM_PACK16+  , FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16+  , FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16+  , FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16+  , FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16+  , FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16+  , FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16+  , FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16+  , FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16+  , FORMAT_R10X6G10X6_UNORM_2PACK16+  , FORMAT_R10X6_UNORM_PACK16+  , FORMAT_G8_B8_R8_3PLANE_444_UNORM+  , FORMAT_G8_B8R8_2PLANE_422_UNORM+  , FORMAT_G8_B8_R8_3PLANE_422_UNORM+  , FORMAT_G8_B8R8_2PLANE_420_UNORM+  , FORMAT_G8_B8_R8_3PLANE_420_UNORM+  , FORMAT_B8G8R8G8_422_UNORM+  , FORMAT_G8B8G8R8_422_UNORM ::+    Format+  #-}++conNameFormat :: String+conNameFormat = "Format"++enumPrefixFormat :: String+enumPrefixFormat = "FORMAT_"++showTableFormat :: [(Format, String)]+showTableFormat =+  [ (FORMAT_UNDEFINED, "UNDEFINED")+  , (FORMAT_R4G4_UNORM_PACK8, "R4G4_UNORM_PACK8")+  , (FORMAT_R4G4B4A4_UNORM_PACK16, "R4G4B4A4_UNORM_PACK16")+  , (FORMAT_B4G4R4A4_UNORM_PACK16, "B4G4R4A4_UNORM_PACK16")+  , (FORMAT_R5G6B5_UNORM_PACK16, "R5G6B5_UNORM_PACK16")+  , (FORMAT_B5G6R5_UNORM_PACK16, "B5G6R5_UNORM_PACK16")+  , (FORMAT_R5G5B5A1_UNORM_PACK16, "R5G5B5A1_UNORM_PACK16")+  , (FORMAT_B5G5R5A1_UNORM_PACK16, "B5G5R5A1_UNORM_PACK16")+  , (FORMAT_A1R5G5B5_UNORM_PACK16, "A1R5G5B5_UNORM_PACK16")+  , (FORMAT_R8_UNORM, "R8_UNORM")+  , (FORMAT_R8_SNORM, "R8_SNORM")+  , (FORMAT_R8_USCALED, "R8_USCALED")+  , (FORMAT_R8_SSCALED, "R8_SSCALED")+  , (FORMAT_R8_UINT, "R8_UINT")+  , (FORMAT_R8_SINT, "R8_SINT")+  , (FORMAT_R8_SRGB, "R8_SRGB")+  , (FORMAT_R8G8_UNORM, "R8G8_UNORM")+  , (FORMAT_R8G8_SNORM, "R8G8_SNORM")+  , (FORMAT_R8G8_USCALED, "R8G8_USCALED")+  , (FORMAT_R8G8_SSCALED, "R8G8_SSCALED")+  , (FORMAT_R8G8_UINT, "R8G8_UINT")+  , (FORMAT_R8G8_SINT, "R8G8_SINT")+  , (FORMAT_R8G8_SRGB, "R8G8_SRGB")+  , (FORMAT_R8G8B8_UNORM, "R8G8B8_UNORM")+  , (FORMAT_R8G8B8_SNORM, "R8G8B8_SNORM")+  , (FORMAT_R8G8B8_USCALED, "R8G8B8_USCALED")+  , (FORMAT_R8G8B8_SSCALED, "R8G8B8_SSCALED")+  , (FORMAT_R8G8B8_UINT, "R8G8B8_UINT")+  , (FORMAT_R8G8B8_SINT, "R8G8B8_SINT")+  , (FORMAT_R8G8B8_SRGB, "R8G8B8_SRGB")+  , (FORMAT_B8G8R8_UNORM, "B8G8R8_UNORM")+  , (FORMAT_B8G8R8_SNORM, "B8G8R8_SNORM")+  , (FORMAT_B8G8R8_USCALED, "B8G8R8_USCALED")+  , (FORMAT_B8G8R8_SSCALED, "B8G8R8_SSCALED")+  , (FORMAT_B8G8R8_UINT, "B8G8R8_UINT")+  , (FORMAT_B8G8R8_SINT, "B8G8R8_SINT")+  , (FORMAT_B8G8R8_SRGB, "B8G8R8_SRGB")+  , (FORMAT_R8G8B8A8_UNORM, "R8G8B8A8_UNORM")+  , (FORMAT_R8G8B8A8_SNORM, "R8G8B8A8_SNORM")+  , (FORMAT_R8G8B8A8_USCALED, "R8G8B8A8_USCALED")+  , (FORMAT_R8G8B8A8_SSCALED, "R8G8B8A8_SSCALED")+  , (FORMAT_R8G8B8A8_UINT, "R8G8B8A8_UINT")+  , (FORMAT_R8G8B8A8_SINT, "R8G8B8A8_SINT")+  , (FORMAT_R8G8B8A8_SRGB, "R8G8B8A8_SRGB")+  , (FORMAT_B8G8R8A8_UNORM, "B8G8R8A8_UNORM")+  , (FORMAT_B8G8R8A8_SNORM, "B8G8R8A8_SNORM")+  , (FORMAT_B8G8R8A8_USCALED, "B8G8R8A8_USCALED")+  , (FORMAT_B8G8R8A8_SSCALED, "B8G8R8A8_SSCALED")+  , (FORMAT_B8G8R8A8_UINT, "B8G8R8A8_UINT")+  , (FORMAT_B8G8R8A8_SINT, "B8G8R8A8_SINT")+  , (FORMAT_B8G8R8A8_SRGB, "B8G8R8A8_SRGB")+  , (FORMAT_A8B8G8R8_UNORM_PACK32, "A8B8G8R8_UNORM_PACK32")+  , (FORMAT_A8B8G8R8_SNORM_PACK32, "A8B8G8R8_SNORM_PACK32")+  , (FORMAT_A8B8G8R8_USCALED_PACK32, "A8B8G8R8_USCALED_PACK32")+  , (FORMAT_A8B8G8R8_SSCALED_PACK32, "A8B8G8R8_SSCALED_PACK32")+  , (FORMAT_A8B8G8R8_UINT_PACK32, "A8B8G8R8_UINT_PACK32")+  , (FORMAT_A8B8G8R8_SINT_PACK32, "A8B8G8R8_SINT_PACK32")+  , (FORMAT_A8B8G8R8_SRGB_PACK32, "A8B8G8R8_SRGB_PACK32")+  ,+    ( FORMAT_A2R10G10B10_UNORM_PACK32+    , "A2R10G10B10_UNORM_PACK32"+    )+  ,+    ( FORMAT_A2R10G10B10_SNORM_PACK32+    , "A2R10G10B10_SNORM_PACK32"+    )+  ,+    ( FORMAT_A2R10G10B10_USCALED_PACK32+    , "A2R10G10B10_USCALED_PACK32"+    )+  ,+    ( FORMAT_A2R10G10B10_SSCALED_PACK32+    , "A2R10G10B10_SSCALED_PACK32"+    )+  , (FORMAT_A2R10G10B10_UINT_PACK32, "A2R10G10B10_UINT_PACK32")+  , (FORMAT_A2R10G10B10_SINT_PACK32, "A2R10G10B10_SINT_PACK32")+  ,+    ( FORMAT_A2B10G10R10_UNORM_PACK32+    , "A2B10G10R10_UNORM_PACK32"+    )+  ,+    ( FORMAT_A2B10G10R10_SNORM_PACK32+    , "A2B10G10R10_SNORM_PACK32"+    )+  ,+    ( FORMAT_A2B10G10R10_USCALED_PACK32+    , "A2B10G10R10_USCALED_PACK32"+    )+  ,+    ( FORMAT_A2B10G10R10_SSCALED_PACK32+    , "A2B10G10R10_SSCALED_PACK32"+    )+  , (FORMAT_A2B10G10R10_UINT_PACK32, "A2B10G10R10_UINT_PACK32")+  , (FORMAT_A2B10G10R10_SINT_PACK32, "A2B10G10R10_SINT_PACK32")+  , (FORMAT_R16_UNORM, "R16_UNORM")+  , (FORMAT_R16_SNORM, "R16_SNORM")+  , (FORMAT_R16_USCALED, "R16_USCALED")+  , (FORMAT_R16_SSCALED, "R16_SSCALED")+  , (FORMAT_R16_UINT, "R16_UINT")+  , (FORMAT_R16_SINT, "R16_SINT")+  , (FORMAT_R16_SFLOAT, "R16_SFLOAT")+  , (FORMAT_R16G16_UNORM, "R16G16_UNORM")+  , (FORMAT_R16G16_SNORM, "R16G16_SNORM")+  , (FORMAT_R16G16_USCALED, "R16G16_USCALED")+  , (FORMAT_R16G16_SSCALED, "R16G16_SSCALED")+  , (FORMAT_R16G16_UINT, "R16G16_UINT")+  , (FORMAT_R16G16_SINT, "R16G16_SINT")+  , (FORMAT_R16G16_SFLOAT, "R16G16_SFLOAT")+  , (FORMAT_R16G16B16_UNORM, "R16G16B16_UNORM")+  , (FORMAT_R16G16B16_SNORM, "R16G16B16_SNORM")+  , (FORMAT_R16G16B16_USCALED, "R16G16B16_USCALED")+  , (FORMAT_R16G16B16_SSCALED, "R16G16B16_SSCALED")+  , (FORMAT_R16G16B16_UINT, "R16G16B16_UINT")+  , (FORMAT_R16G16B16_SINT, "R16G16B16_SINT")+  , (FORMAT_R16G16B16_SFLOAT, "R16G16B16_SFLOAT")+  , (FORMAT_R16G16B16A16_UNORM, "R16G16B16A16_UNORM")+  , (FORMAT_R16G16B16A16_SNORM, "R16G16B16A16_SNORM")+  , (FORMAT_R16G16B16A16_USCALED, "R16G16B16A16_USCALED")+  , (FORMAT_R16G16B16A16_SSCALED, "R16G16B16A16_SSCALED")+  , (FORMAT_R16G16B16A16_UINT, "R16G16B16A16_UINT")+  , (FORMAT_R16G16B16A16_SINT, "R16G16B16A16_SINT")+  , (FORMAT_R16G16B16A16_SFLOAT, "R16G16B16A16_SFLOAT")+  , (FORMAT_R32_UINT, "R32_UINT")+  , (FORMAT_R32_SINT, "R32_SINT")+  , (FORMAT_R32_SFLOAT, "R32_SFLOAT")+  , (FORMAT_R32G32_UINT, "R32G32_UINT")+  , (FORMAT_R32G32_SINT, "R32G32_SINT")+  , (FORMAT_R32G32_SFLOAT, "R32G32_SFLOAT")+  , (FORMAT_R32G32B32_UINT, "R32G32B32_UINT")+  , (FORMAT_R32G32B32_SINT, "R32G32B32_SINT")+  , (FORMAT_R32G32B32_SFLOAT, "R32G32B32_SFLOAT")+  , (FORMAT_R32G32B32A32_UINT, "R32G32B32A32_UINT")+  , (FORMAT_R32G32B32A32_SINT, "R32G32B32A32_SINT")+  , (FORMAT_R32G32B32A32_SFLOAT, "R32G32B32A32_SFLOAT")+  , (FORMAT_R64_UINT, "R64_UINT")+  , (FORMAT_R64_SINT, "R64_SINT")+  , (FORMAT_R64_SFLOAT, "R64_SFLOAT")+  , (FORMAT_R64G64_UINT, "R64G64_UINT")+  , (FORMAT_R64G64_SINT, "R64G64_SINT")+  , (FORMAT_R64G64_SFLOAT, "R64G64_SFLOAT")+  , (FORMAT_R64G64B64_UINT, "R64G64B64_UINT")+  , (FORMAT_R64G64B64_SINT, "R64G64B64_SINT")+  , (FORMAT_R64G64B64_SFLOAT, "R64G64B64_SFLOAT")+  , (FORMAT_R64G64B64A64_UINT, "R64G64B64A64_UINT")+  , (FORMAT_R64G64B64A64_SINT, "R64G64B64A64_SINT")+  , (FORMAT_R64G64B64A64_SFLOAT, "R64G64B64A64_SFLOAT")+  , (FORMAT_B10G11R11_UFLOAT_PACK32, "B10G11R11_UFLOAT_PACK32")+  , (FORMAT_E5B9G9R9_UFLOAT_PACK32, "E5B9G9R9_UFLOAT_PACK32")+  , (FORMAT_D16_UNORM, "D16_UNORM")+  , (FORMAT_X8_D24_UNORM_PACK32, "X8_D24_UNORM_PACK32")+  , (FORMAT_D32_SFLOAT, "D32_SFLOAT")+  , (FORMAT_S8_UINT, "S8_UINT")+  , (FORMAT_D16_UNORM_S8_UINT, "D16_UNORM_S8_UINT")+  , (FORMAT_D24_UNORM_S8_UINT, "D24_UNORM_S8_UINT")+  , (FORMAT_D32_SFLOAT_S8_UINT, "D32_SFLOAT_S8_UINT")+  , (FORMAT_BC1_RGB_UNORM_BLOCK, "BC1_RGB_UNORM_BLOCK")+  , (FORMAT_BC1_RGB_SRGB_BLOCK, "BC1_RGB_SRGB_BLOCK")+  , (FORMAT_BC1_RGBA_UNORM_BLOCK, "BC1_RGBA_UNORM_BLOCK")+  , (FORMAT_BC1_RGBA_SRGB_BLOCK, "BC1_RGBA_SRGB_BLOCK")+  , (FORMAT_BC2_UNORM_BLOCK, "BC2_UNORM_BLOCK")+  , (FORMAT_BC2_SRGB_BLOCK, "BC2_SRGB_BLOCK")+  , (FORMAT_BC3_UNORM_BLOCK, "BC3_UNORM_BLOCK")+  , (FORMAT_BC3_SRGB_BLOCK, "BC3_SRGB_BLOCK")+  , (FORMAT_BC4_UNORM_BLOCK, "BC4_UNORM_BLOCK")+  , (FORMAT_BC4_SNORM_BLOCK, "BC4_SNORM_BLOCK")+  , (FORMAT_BC5_UNORM_BLOCK, "BC5_UNORM_BLOCK")+  , (FORMAT_BC5_SNORM_BLOCK, "BC5_SNORM_BLOCK")+  , (FORMAT_BC6H_UFLOAT_BLOCK, "BC6H_UFLOAT_BLOCK")+  , (FORMAT_BC6H_SFLOAT_BLOCK, "BC6H_SFLOAT_BLOCK")+  , (FORMAT_BC7_UNORM_BLOCK, "BC7_UNORM_BLOCK")+  , (FORMAT_BC7_SRGB_BLOCK, "BC7_SRGB_BLOCK")+  , (FORMAT_ETC2_R8G8B8_UNORM_BLOCK, "ETC2_R8G8B8_UNORM_BLOCK")+  , (FORMAT_ETC2_R8G8B8_SRGB_BLOCK, "ETC2_R8G8B8_SRGB_BLOCK")+  ,+    ( FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK+    , "ETC2_R8G8B8A1_UNORM_BLOCK"+    )+  ,+    ( FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK+    , "ETC2_R8G8B8A1_SRGB_BLOCK"+    )+  ,+    ( FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK+    , "ETC2_R8G8B8A8_UNORM_BLOCK"+    )+  ,+    ( FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK+    , "ETC2_R8G8B8A8_SRGB_BLOCK"+    )+  , (FORMAT_EAC_R11_UNORM_BLOCK, "EAC_R11_UNORM_BLOCK")+  , (FORMAT_EAC_R11_SNORM_BLOCK, "EAC_R11_SNORM_BLOCK")+  , (FORMAT_EAC_R11G11_UNORM_BLOCK, "EAC_R11G11_UNORM_BLOCK")+  , (FORMAT_EAC_R11G11_SNORM_BLOCK, "EAC_R11G11_SNORM_BLOCK")+  , (FORMAT_ASTC_4x4_UNORM_BLOCK, "ASTC_4x4_UNORM_BLOCK")+  , (FORMAT_ASTC_4x4_SRGB_BLOCK, "ASTC_4x4_SRGB_BLOCK")+  , (FORMAT_ASTC_5x4_UNORM_BLOCK, "ASTC_5x4_UNORM_BLOCK")+  , (FORMAT_ASTC_5x4_SRGB_BLOCK, "ASTC_5x4_SRGB_BLOCK")+  , (FORMAT_ASTC_5x5_UNORM_BLOCK, "ASTC_5x5_UNORM_BLOCK")+  , (FORMAT_ASTC_5x5_SRGB_BLOCK, "ASTC_5x5_SRGB_BLOCK")+  , (FORMAT_ASTC_6x5_UNORM_BLOCK, "ASTC_6x5_UNORM_BLOCK")+  , (FORMAT_ASTC_6x5_SRGB_BLOCK, "ASTC_6x5_SRGB_BLOCK")+  , (FORMAT_ASTC_6x6_UNORM_BLOCK, "ASTC_6x6_UNORM_BLOCK")+  , (FORMAT_ASTC_6x6_SRGB_BLOCK, "ASTC_6x6_SRGB_BLOCK")+  , (FORMAT_ASTC_8x5_UNORM_BLOCK, "ASTC_8x5_UNORM_BLOCK")+  , (FORMAT_ASTC_8x5_SRGB_BLOCK, "ASTC_8x5_SRGB_BLOCK")+  , (FORMAT_ASTC_8x6_UNORM_BLOCK, "ASTC_8x6_UNORM_BLOCK")+  , (FORMAT_ASTC_8x6_SRGB_BLOCK, "ASTC_8x6_SRGB_BLOCK")+  , (FORMAT_ASTC_8x8_UNORM_BLOCK, "ASTC_8x8_UNORM_BLOCK")+  , (FORMAT_ASTC_8x8_SRGB_BLOCK, "ASTC_8x8_SRGB_BLOCK")+  , (FORMAT_ASTC_10x5_UNORM_BLOCK, "ASTC_10x5_UNORM_BLOCK")+  , (FORMAT_ASTC_10x5_SRGB_BLOCK, "ASTC_10x5_SRGB_BLOCK")+  , (FORMAT_ASTC_10x6_UNORM_BLOCK, "ASTC_10x6_UNORM_BLOCK")+  , (FORMAT_ASTC_10x6_SRGB_BLOCK, "ASTC_10x6_SRGB_BLOCK")+  , (FORMAT_ASTC_10x8_UNORM_BLOCK, "ASTC_10x8_UNORM_BLOCK")+  , (FORMAT_ASTC_10x8_SRGB_BLOCK, "ASTC_10x8_SRGB_BLOCK")+  , (FORMAT_ASTC_10x10_UNORM_BLOCK, "ASTC_10x10_UNORM_BLOCK")+  , (FORMAT_ASTC_10x10_SRGB_BLOCK, "ASTC_10x10_SRGB_BLOCK")+  , (FORMAT_ASTC_12x10_UNORM_BLOCK, "ASTC_12x10_UNORM_BLOCK")+  , (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_R16G16_S10_5_NV, "R16G16_S10_5_NV")+  ,+    ( 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"+    )+  ,+    ( FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG+    , "PVRTC1_2BPP_SRGB_BLOCK_IMG"+    )+  ,+    ( FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG+    , "PVRTC2_4BPP_UNORM_BLOCK_IMG"+    )+  ,+    ( 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"+    )+  ,+    ( FORMAT_G16_B16R16_2PLANE_420_UNORM+    , "G16_B16R16_2PLANE_420_UNORM"+    )+  ,+    ( FORMAT_G16_B16_R16_3PLANE_420_UNORM+    , "G16_B16_R16_3PLANE_420_UNORM"+    )+  , (FORMAT_B16G16R16G16_422_UNORM, "B16G16R16G16_422_UNORM")+  , (FORMAT_G16B16G16R16_422_UNORM, "G16B16G16R16_422_UNORM")+  ,+    ( FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16+    , "G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16+    , "G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16+    , "G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16+    , "G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16+    , "G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16"+    )+  ,+    ( FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16+    , "B12X4G12X4R12X4G12X4_422_UNORM_4PACK16"+    )+  ,+    ( FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16+    , "G12X4B12X4G12X4R12X4_422_UNORM_4PACK16"+    )+  ,+    ( FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16+    , "R12X4G12X4B12X4A12X4_UNORM_4PACK16"+    )+  ,+    ( FORMAT_R12X4G12X4_UNORM_2PACK16+    , "R12X4G12X4_UNORM_2PACK16"+    )+  , (FORMAT_R12X4_UNORM_PACK16, "R12X4_UNORM_PACK16")+  ,+    ( FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16+    , "G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16+    , "G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16+    , "G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16+    , "G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16"+    )+  ,+    ( FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16+    , "G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16"+    )+  ,+    ( FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16+    , "B10X6G10X6R10X6G10X6_422_UNORM_4PACK16"+    )+  ,+    ( FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16+    , "G10X6B10X6G10X6R10X6_422_UNORM_4PACK16"+    )+  ,+    ( FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16+    , "R10X6G10X6B10X6A10X6_UNORM_4PACK16"+    )+  ,+    ( FORMAT_R10X6G10X6_UNORM_2PACK16+    , "R10X6G10X6_UNORM_2PACK16"+    )+  , (FORMAT_R10X6_UNORM_PACK16, "R10X6_UNORM_PACK16")+  ,+    ( FORMAT_G8_B8_R8_3PLANE_444_UNORM+    , "G8_B8_R8_3PLANE_444_UNORM"+    )+  ,+    ( FORMAT_G8_B8R8_2PLANE_422_UNORM+    , "G8_B8R8_2PLANE_422_UNORM"+    )+  ,+    ( FORMAT_G8_B8_R8_3PLANE_422_UNORM+    , "G8_B8_R8_3PLANE_422_UNORM"+    )+  ,+    ( FORMAT_G8_B8R8_2PLANE_420_UNORM+    , "G8_B8R8_2PLANE_420_UNORM"+    )+  ,+    ( FORMAT_G8_B8_R8_3PLANE_420_UNORM+    , "G8_B8_R8_3PLANE_420_UNORM"+    )+  , (FORMAT_B8G8R8G8_422_UNORM, "B8G8R8G8_422_UNORM")+  , (FORMAT_G8B8G8R8_422_UNORM, "G8B8G8R8_422_UNORM")+  ]++instance Show Format where+  showsPrec =+    enumShowsPrec+      enumPrefixFormat+      showTableFormat+      conNameFormat+      (\(Format x) -> x)+      (showsPrec 11)++instance Read Format where+  readPrec =+    enumReadPrec+      enumPrefixFormat+      showTableFormat+      conNameFormat+      Format
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -296,54 +296,66 @@  -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' specifies that an image view /can/ be -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.-pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT                        = FormatFeatureFlagBits 0x00000001+pattern FORMAT_FEATURE_SAMPLED_IMAGE_BIT = FormatFeatureFlagBits 0x00000001+ -- | 'FORMAT_FEATURE_STORAGE_IMAGE_BIT' specifies that an image view /can/ be -- used as a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.-pattern FORMAT_FEATURE_STORAGE_IMAGE_BIT                        = FormatFeatureFlagBits 0x00000002+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.-pattern FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                 = FormatFeatureFlagBits 0x00000004+pattern FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = FormatFeatureFlagBits 0x00000004+ -- | 'FORMAT_FEATURE_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_UNIFORM_TEXEL_BUFFER_BIT                 = FormatFeatureFlagBits 0x00000008+pattern FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = FormatFeatureFlagBits 0x00000008+ -- | 'FORMAT_FEATURE_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_STORAGE_TEXEL_BUFFER_BIT                 = FormatFeatureFlagBits 0x00000010+pattern FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = FormatFeatureFlagBits 0x00000010+ -- | 'FORMAT_FEATURE_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_STORAGE_TEXEL_BUFFER_ATOMIC_BIT          = FormatFeatureFlagBits 0x00000020+pattern FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = FormatFeatureFlagBits 0x00000020+ -- | 'FORMAT_FEATURE_VERTEX_BUFFER_BIT' specifies that the format /can/ be -- used as a vertex attribute format -- ('Vulkan.Core10.Pipeline.VertexInputAttributeDescription'::@format@).-pattern FORMAT_FEATURE_VERTEX_BUFFER_BIT                        = FormatFeatureFlagBits 0x00000040+pattern FORMAT_FEATURE_VERTEX_BUFFER_BIT = FormatFeatureFlagBits 0x00000040+ -- | 'FORMAT_FEATURE_COLOR_ATTACHMENT_BIT' specifies that an image view /can/ -- be used as a framebuffer color attachment and as an input attachment.-pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                     = FormatFeatureFlagBits 0x00000080+pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = FormatFeatureFlagBits 0x00000080+ -- | 'FORMAT_FEATURE_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_COLOR_ATTACHMENT_BLEND_BIT               = FormatFeatureFlagBits 0x00000100+pattern FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = FormatFeatureFlagBits 0x00000100+ -- | 'FORMAT_FEATURE_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_DEPTH_STENCIL_ATTACHMENT_BIT             = FormatFeatureFlagBits 0x00000200+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.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.-pattern FORMAT_FEATURE_BLIT_SRC_BIT                             = FormatFeatureFlagBits 0x00000400+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.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands.-pattern FORMAT_FEATURE_BLIT_DST_BIT                             = FormatFeatureFlagBits 0x00000800+pattern FORMAT_FEATURE_BLIT_DST_BIT = FormatFeatureFlagBits 0x00000800+ -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' is also set, an image view /can/ be -- used with a sampler that has either of @magFilter@ or @minFilter@ set to@@ -368,17 +380,20 @@ -- 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_SAMPLED_IMAGE_FILTER_LINEAR_BIT          = FormatFeatureFlagBits 0x00001000+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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment>.-pattern FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT             = FormatFeatureFlagBits 0x01000000+pattern FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = FormatFeatureFlagBits 0x01000000+ -- | 'FORMAT_FEATURE_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@@ -389,7 +404,8 @@ -- 'FORMAT_FEATURE_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_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT       = FormatFeatureFlagBits 0x00002000+pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = FormatFeatureFlagBits 0x00002000+ -- | 'FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR' specifies -- that the format /can/ be used as the vertex format when creating an -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure acceleration structure>@@ -399,13 +415,15 @@ -- <https://registry.khronos.org/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+ -- | 'FORMAT_FEATURE_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_SAMPLED_IMAGE_BIT'.-pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT          = FormatFeatureFlagBits 0x00010000+pattern FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = FormatFeatureFlagBits 0x00010000+ -- | 'FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>@@ -421,13 +439,15 @@ -- /must/ not define a -- <https://registry.khronos.org/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+pattern FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits 0x00800000+ -- | 'FORMAT_FEATURE_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_DISJOINT_BIT' for /single-plane formats/.-pattern FORMAT_FEATURE_DISJOINT_BIT                             = FormatFeatureFlagBits 0x00400000+pattern FORMAT_FEATURE_DISJOINT_BIT = FormatFeatureFlagBits 0x00400000+ -- | 'FORMAT_FEATURE_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@@@ -436,25 +456,26 @@ -- 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- it /must/ also support -- 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT'.-pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT =-  FormatFeatureFlagBits 0x00200000+pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = FormatFeatureFlagBits 0x00200000+ -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT' -- specifies that reconstruction is explicit, as described in -- <https://registry.khronos.org/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+pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = FormatFeatureFlagBits 0x00100000+ -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT' -- specifies that the format can have different chroma, min, and mag -- filters.-pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT =-  FormatFeatureFlagBits 0x00080000+pattern FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = FormatFeatureFlagBits 0x00080000+ -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT' -- specifies that an application /can/ define a -- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>@@ -470,6 +491,7 @@ -- for this format, the implementation /must/ set -- 'FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT'. 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>@@ -478,14 +500,15 @@ -- If the application @apiVersion@ is Vulkan 1.0 and @VK_KHR_maintenance1@ -- is not supported, 'FORMAT_FEATURE_TRANSFER_DST_BIT' is implied to be set -- when the format feature flag is not 0.-pattern FORMAT_FEATURE_TRANSFER_DST_BIT            = FormatFeatureFlagBits 0x00008000+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>. -- If the application @apiVersion@ is Vulkan 1.0 and @VK_KHR_maintenance1@ -- is not supported, 'FORMAT_FEATURE_TRANSFER_SRC_BIT' is implied to be set -- when the format feature flag is not 0.-pattern FORMAT_FEATURE_TRANSFER_SRC_BIT            = FormatFeatureFlagBits 0x00004000+pattern FORMAT_FEATURE_TRANSFER_SRC_BIT = FormatFeatureFlagBits 0x00004000  conNameFormatFeatureFlagBits :: String conNameFormatFeatureFlagBits = "FormatFeatureFlagBits"@@ -495,53 +518,120 @@  showTableFormatFeatureFlagBits :: [(FormatFeatureFlagBits, String)] showTableFormatFeatureFlagBits =-  [ (FORMAT_FEATURE_SAMPLED_IMAGE_BIT                       , "SAMPLED_IMAGE_BIT")-  , (FORMAT_FEATURE_STORAGE_IMAGE_BIT                       , "STORAGE_IMAGE_BIT")-  , (FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT                , "STORAGE_IMAGE_ATOMIC_BIT")-  , (FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT                , "UNIFORM_TEXEL_BUFFER_BIT")-  , (FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT                , "STORAGE_TEXEL_BUFFER_BIT")-  , (FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT         , "STORAGE_TEXEL_BUFFER_ATOMIC_BIT")-  , (FORMAT_FEATURE_VERTEX_BUFFER_BIT                       , "VERTEX_BUFFER_BIT")-  , (FORMAT_FEATURE_COLOR_ATTACHMENT_BIT                    , "COLOR_ATTACHMENT_BIT")-  , (FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT              , "COLOR_ATTACHMENT_BLEND_BIT")-  , (FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT            , "DEPTH_STENCIL_ATTACHMENT_BIT")-  , (FORMAT_FEATURE_BLIT_SRC_BIT                            , "BLIT_SRC_BIT")-  , (FORMAT_FEATURE_BLIT_DST_BIT                            , "BLIT_DST_BIT")-  , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT         , "SAMPLED_IMAGE_FILTER_LINEAR_BIT")-  , (FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")-  , (FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT            , "FRAGMENT_DENSITY_MAP_BIT_EXT")-  , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT      , "SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT")-  , (FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR")-  , (FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT         , "SAMPLED_IMAGE_FILTER_MINMAX_BIT")-  , (FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT              , "COSITED_CHROMA_SAMPLES_BIT")-  , (FORMAT_FEATURE_DISJOINT_BIT                            , "DISJOINT_BIT")-  , ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT+  [+    ( FORMAT_FEATURE_SAMPLED_IMAGE_BIT+    , "SAMPLED_IMAGE_BIT"+    )+  ,+    ( FORMAT_FEATURE_STORAGE_IMAGE_BIT+    , "STORAGE_IMAGE_BIT"+    )+  ,+    ( FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT+    , "STORAGE_IMAGE_ATOMIC_BIT"+    )+  ,+    ( FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT+    , "UNIFORM_TEXEL_BUFFER_BIT"+    )+  ,+    ( FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT+    , "STORAGE_TEXEL_BUFFER_BIT"+    )+  ,+    ( FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT+    , "STORAGE_TEXEL_BUFFER_ATOMIC_BIT"+    )+  ,+    ( FORMAT_FEATURE_VERTEX_BUFFER_BIT+    , "VERTEX_BUFFER_BIT"+    )+  ,+    ( FORMAT_FEATURE_COLOR_ATTACHMENT_BIT+    , "COLOR_ATTACHMENT_BIT"+    )+  ,+    ( FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT+    , "COLOR_ATTACHMENT_BLEND_BIT"+    )+  ,+    ( FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT+    , "DEPTH_STENCIL_ATTACHMENT_BIT"+    )+  , (FORMAT_FEATURE_BLIT_SRC_BIT, "BLIT_SRC_BIT")+  , (FORMAT_FEATURE_BLIT_DST_BIT, "BLIT_DST_BIT")+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT+    , "SAMPLED_IMAGE_FILTER_LINEAR_BIT"+    )+  ,+    ( FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+    , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"+    )+  ,+    ( FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT+    , "FRAGMENT_DENSITY_MAP_BIT_EXT"+    )+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT+    , "SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT"+    )+  ,+    ( FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR+    , "ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR"+    )+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT+    , "SAMPLED_IMAGE_FILTER_MINMAX_BIT"+    )+  ,+    ( FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT+    , "COSITED_CHROMA_SAMPLES_BIT"+    )+  , (FORMAT_FEATURE_DISJOINT_BIT, "DISJOINT_BIT")+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT     , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT"     )-  , ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT     , "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT"     )-  , ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT     , "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT"     )-  , ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT+  ,+    ( FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT     , "SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT"     )-  , (FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, "MIDPOINT_CHROMA_SAMPLES_BIT")-  , (FORMAT_FEATURE_TRANSFER_DST_BIT           , "TRANSFER_DST_BIT")-  , (FORMAT_FEATURE_TRANSFER_SRC_BIT           , "TRANSFER_SRC_BIT")+  ,+    ( FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT+    , "MIDPOINT_CHROMA_SAMPLES_BIT"+    )+  ,+    ( FORMAT_FEATURE_TRANSFER_DST_BIT+    , "TRANSFER_DST_BIT"+    )+  ,+    ( FORMAT_FEATURE_TRANSFER_SRC_BIT+    , "TRANSFER_SRC_BIT"+    )   ]  instance Show FormatFeatureFlagBits where-  showsPrec = enumShowsPrec enumPrefixFormatFeatureFlagBits-                            showTableFormatFeatureFlagBits-                            conNameFormatFeatureFlagBits-                            (\(FormatFeatureFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixFormatFeatureFlagBits+      showTableFormatFeatureFlagBits+      conNameFormatFeatureFlagBits+      (\(FormatFeatureFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read FormatFeatureFlagBits where-  readPrec = enumReadPrec enumPrefixFormatFeatureFlagBits-                          showTableFormatFeatureFlagBits-                          conNameFormatFeatureFlagBits-                          FormatFeatureFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixFormatFeatureFlagBits+      showTableFormatFeatureFlagBits+      conNameFormatFeatureFlagBits+      FormatFeatureFlagBits
src/Vulkan/Core10/Enums/FramebufferCreateFlagBits.hs view
@@ -45,15 +45,18 @@ showTableFramebufferCreateFlagBits = [(FRAMEBUFFER_CREATE_IMAGELESS_BIT, "")]  instance Show FramebufferCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixFramebufferCreateFlagBits-                            showTableFramebufferCreateFlagBits-                            conNameFramebufferCreateFlagBits-                            (\(FramebufferCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixFramebufferCreateFlagBits+      showTableFramebufferCreateFlagBits+      conNameFramebufferCreateFlagBits+      (\(FramebufferCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read FramebufferCreateFlagBits where-  readPrec = enumReadPrec enumPrefixFramebufferCreateFlagBits-                          showTableFramebufferCreateFlagBits-                          conNameFramebufferCreateFlagBits-                          FramebufferCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixFramebufferCreateFlagBits+      showTableFramebufferCreateFlagBits+      conNameFramebufferCreateFlagBits+      FramebufferCreateFlagBits
src/Vulkan/Core10/Enums/FrontFace.hs view
@@ -33,12 +33,17 @@ -- | 'FRONT_FACE_COUNTER_CLOCKWISE' specifies that a triangle with positive -- area is considered front-facing. pattern FRONT_FACE_COUNTER_CLOCKWISE = FrontFace 0+ -- | 'FRONT_FACE_CLOCKWISE' specifies that a triangle with negative area is -- considered front-facing.-pattern FRONT_FACE_CLOCKWISE         = FrontFace 1-{-# complete FRONT_FACE_COUNTER_CLOCKWISE,-             FRONT_FACE_CLOCKWISE :: FrontFace #-}+pattern FRONT_FACE_CLOCKWISE = FrontFace 1 +{-# COMPLETE+  FRONT_FACE_COUNTER_CLOCKWISE+  , FRONT_FACE_CLOCKWISE ::+    FrontFace+  #-}+ conNameFrontFace :: String conNameFrontFace = "FrontFace" @@ -46,12 +51,24 @@ enumPrefixFrontFace = "FRONT_FACE_C"  showTableFrontFace :: [(FrontFace, String)]-showTableFrontFace = [(FRONT_FACE_COUNTER_CLOCKWISE, "OUNTER_CLOCKWISE"), (FRONT_FACE_CLOCKWISE, "LOCKWISE")]+showTableFrontFace =+  [ (FRONT_FACE_COUNTER_CLOCKWISE, "OUNTER_CLOCKWISE")+  , (FRONT_FACE_CLOCKWISE, "LOCKWISE")+  ]  instance Show FrontFace where   showsPrec =-    enumShowsPrec enumPrefixFrontFace showTableFrontFace conNameFrontFace (\(FrontFace x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixFrontFace+      showTableFrontFace+      conNameFrontFace+      (\(FrontFace x) -> x)+      (showsPrec 11)  instance Read FrontFace where-  readPrec = enumReadPrec enumPrefixFrontFace showTableFrontFace conNameFrontFace FrontFace-+  readPrec =+    enumReadPrec+      enumPrefixFrontFace+      showTableFrontFace+      conNameFrontFace+      FrontFace
src/Vulkan/Core10/Enums/ImageAspectFlagBits.hs view
@@ -46,35 +46,46 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'IMAGE_ASPECT_COLOR_BIT' specifies the color aspect.-pattern IMAGE_ASPECT_COLOR_BIT              = ImageAspectFlagBits 0x00000001+pattern IMAGE_ASPECT_COLOR_BIT = ImageAspectFlagBits 0x00000001+ -- | 'IMAGE_ASPECT_DEPTH_BIT' specifies the depth aspect.-pattern IMAGE_ASPECT_DEPTH_BIT              = ImageAspectFlagBits 0x00000002+pattern IMAGE_ASPECT_DEPTH_BIT = ImageAspectFlagBits 0x00000002+ -- | 'IMAGE_ASPECT_STENCIL_BIT' specifies the stencil aspect.-pattern IMAGE_ASPECT_STENCIL_BIT            = ImageAspectFlagBits 0x00000004+pattern IMAGE_ASPECT_STENCIL_BIT = ImageAspectFlagBits 0x00000004+ -- | 'IMAGE_ASPECT_METADATA_BIT' specifies the metadata aspect used for -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#sparsememory sparse resource> -- operations.-pattern IMAGE_ASPECT_METADATA_BIT           = ImageAspectFlagBits 0x00000008+pattern IMAGE_ASPECT_METADATA_BIT = ImageAspectFlagBits 0x00000008+ -- | 'IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT' specifies /memory plane/ 3. pattern IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = ImageAspectFlagBits 0x00000400+ -- | 'IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT' specifies /memory plane/ 2. pattern IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = ImageAspectFlagBits 0x00000200+ -- | 'IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT' specifies /memory plane/ 1. pattern IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = ImageAspectFlagBits 0x00000100+ -- | 'IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT' specifies /memory plane/ 0. pattern IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = ImageAspectFlagBits 0x00000080+ -- | 'IMAGE_ASPECT_NONE' specifies no image aspect, or the image aspect is -- not applicable.-pattern IMAGE_ASPECT_NONE                   = ImageAspectFlagBits 0x00000000+pattern IMAGE_ASPECT_NONE = ImageAspectFlagBits 0x00000000+ -- | 'IMAGE_ASPECT_PLANE_2_BIT' specifies plane 2 of a /multi-planar/ image -- format.-pattern IMAGE_ASPECT_PLANE_2_BIT            = ImageAspectFlagBits 0x00000040+pattern IMAGE_ASPECT_PLANE_2_BIT = ImageAspectFlagBits 0x00000040+ -- | 'IMAGE_ASPECT_PLANE_1_BIT' specifies plane 1 of a /multi-planar/ image -- format.-pattern IMAGE_ASPECT_PLANE_1_BIT            = ImageAspectFlagBits 0x00000020+pattern IMAGE_ASPECT_PLANE_1_BIT = ImageAspectFlagBits 0x00000020+ -- | 'IMAGE_ASPECT_PLANE_0_BIT' specifies plane 0 of a /multi-planar/ image -- format.-pattern IMAGE_ASPECT_PLANE_0_BIT            = ImageAspectFlagBits 0x00000010+pattern IMAGE_ASPECT_PLANE_0_BIT = ImageAspectFlagBits 0x00000010  conNameImageAspectFlagBits :: String conNameImageAspectFlagBits = "ImageAspectFlagBits"@@ -84,30 +95,45 @@  showTableImageAspectFlagBits :: [(ImageAspectFlagBits, String)] showTableImageAspectFlagBits =-  [ (IMAGE_ASPECT_COLOR_BIT             , "COLOR_BIT")-  , (IMAGE_ASPECT_DEPTH_BIT             , "DEPTH_BIT")-  , (IMAGE_ASPECT_STENCIL_BIT           , "STENCIL_BIT")-  , (IMAGE_ASPECT_METADATA_BIT          , "METADATA_BIT")-  , (IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT, "MEMORY_PLANE_3_BIT_EXT")-  , (IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT, "MEMORY_PLANE_2_BIT_EXT")-  , (IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT, "MEMORY_PLANE_1_BIT_EXT")-  , (IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT, "MEMORY_PLANE_0_BIT_EXT")-  , (IMAGE_ASPECT_NONE                  , "NONE")-  , (IMAGE_ASPECT_PLANE_2_BIT           , "PLANE_2_BIT")-  , (IMAGE_ASPECT_PLANE_1_BIT           , "PLANE_1_BIT")-  , (IMAGE_ASPECT_PLANE_0_BIT           , "PLANE_0_BIT")+  [ (IMAGE_ASPECT_COLOR_BIT, "COLOR_BIT")+  , (IMAGE_ASPECT_DEPTH_BIT, "DEPTH_BIT")+  , (IMAGE_ASPECT_STENCIL_BIT, "STENCIL_BIT")+  , (IMAGE_ASPECT_METADATA_BIT, "METADATA_BIT")+  ,+    ( IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT+    , "MEMORY_PLANE_3_BIT_EXT"+    )+  ,+    ( IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT+    , "MEMORY_PLANE_2_BIT_EXT"+    )+  ,+    ( IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT+    , "MEMORY_PLANE_1_BIT_EXT"+    )+  ,+    ( IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT+    , "MEMORY_PLANE_0_BIT_EXT"+    )+  , (IMAGE_ASPECT_NONE, "NONE")+  , (IMAGE_ASPECT_PLANE_2_BIT, "PLANE_2_BIT")+  , (IMAGE_ASPECT_PLANE_1_BIT, "PLANE_1_BIT")+  , (IMAGE_ASPECT_PLANE_0_BIT, "PLANE_0_BIT")   ]  instance Show ImageAspectFlagBits where-  showsPrec = enumShowsPrec enumPrefixImageAspectFlagBits-                            showTableImageAspectFlagBits-                            conNameImageAspectFlagBits-                            (\(ImageAspectFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageAspectFlagBits+      showTableImageAspectFlagBits+      conNameImageAspectFlagBits+      (\(ImageAspectFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageAspectFlagBits where-  readPrec = enumReadPrec enumPrefixImageAspectFlagBits-                          showTableImageAspectFlagBits-                          conNameImageAspectFlagBits-                          ImageAspectFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixImageAspectFlagBits+      showTableImageAspectFlagBits+      conNameImageAspectFlagBits+      ImageAspectFlagBits
src/Vulkan/Core10/Enums/ImageCreateFlagBits.hs view
@@ -56,18 +56,21 @@  -- | 'IMAGE_CREATE_SPARSE_BINDING_BIT' specifies that the image will be -- backed using sparse memory binding.-pattern IMAGE_CREATE_SPARSE_BINDING_BIT                   = ImageCreateFlagBits 0x00000001+pattern IMAGE_CREATE_SPARSE_BINDING_BIT = ImageCreateFlagBits 0x00000001+ -- | 'IMAGE_CREATE_SPARSE_RESIDENCY_BIT' specifies that the image /can/ be -- partially backed using sparse memory binding. Images created with this -- flag /must/ also be created with the 'IMAGE_CREATE_SPARSE_BINDING_BIT' -- flag.-pattern IMAGE_CREATE_SPARSE_RESIDENCY_BIT                 = ImageCreateFlagBits 0x00000002+pattern IMAGE_CREATE_SPARSE_RESIDENCY_BIT = ImageCreateFlagBits 0x00000002+ -- | 'IMAGE_CREATE_SPARSE_ALIASED_BIT' specifies that the image will be -- backed using sparse memory binding with memory ranges that might also -- simultaneously be backing another image (or another portion of the same -- image). Images created with this flag /must/ also be created with the -- 'IMAGE_CREATE_SPARSE_BINDING_BIT' flag.-pattern IMAGE_CREATE_SPARSE_ALIASED_BIT                   = ImageCreateFlagBits 0x00000004+pattern IMAGE_CREATE_SPARSE_ALIASED_BIT = ImageCreateFlagBits 0x00000004+ -- | '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@@ -75,12 +78,14 @@ -- formats, 'IMAGE_CREATE_MUTABLE_FORMAT_BIT' specifies that a -- 'Vulkan.Core10.Handles.ImageView' can be created of a /plane/ of the -- image.-pattern IMAGE_CREATE_MUTABLE_FORMAT_BIT                   = ImageCreateFlagBits 0x00000008+pattern IMAGE_CREATE_MUTABLE_FORMAT_BIT = ImageCreateFlagBits 0x00000008+ -- | 'IMAGE_CREATE_CUBE_COMPATIBLE_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' of type -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY'.-pattern IMAGE_CREATE_CUBE_COMPATIBLE_BIT                  = ImageCreateFlagBits 0x00000010+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapoffsets fragment density map offsets>.@@ -89,12 +94,15 @@ -- attachments, and preserve attachments /must/ be created with -- 'IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM'. pattern IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = ImageCreateFlagBits 0x00008000+ -- No documentation found for Nested "VkImageCreateFlagBits" "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT"-pattern IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT           = ImageCreateFlagBits 0x00020000+pattern IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = ImageCreateFlagBits 0x00020000+ -- | 'IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT' specifies -- that an image /can/ be used with -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#multisampled-render-to-single-sampled multisampled rendering as a single-sampled framebuffer attachment> pattern IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = ImageCreateFlagBits 0x00040000+ -- | 'IMAGE_CREATE_SUBSAMPLED_BIT_EXT' specifies that an image /can/ be in a -- subsampled format which /may/ be more optimal when written as an -- attachment by a render pass that has a fragment density map attachment.@@ -128,39 +136,47 @@ -- -- -   Image contents outside of the render area take on undefined values --     if the image is stored as a render pass attachment.-pattern IMAGE_CREATE_SUBSAMPLED_BIT_EXT                   = ImageCreateFlagBits 0x00004000+pattern IMAGE_CREATE_SUBSAMPLED_BIT_EXT = ImageCreateFlagBits 0x00004000+ -- | 'IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT' specifies that -- an image with a depth or depth\/stencil format /can/ be used with custom -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#resources-images-corner-sampled corner-sampled image>.-pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV                = ImageCreateFlagBits 0x00002000+pattern IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = ImageCreateFlagBits 0x00002000+ -- | 'IMAGE_CREATE_DISJOINT_BIT' specifies that an image with a -- <https://registry.khronos.org/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.-pattern IMAGE_CREATE_DISJOINT_BIT                         = ImageCreateFlagBits 0x00000200+pattern IMAGE_CREATE_DISJOINT_BIT = ImageCreateFlagBits 0x00000200+ -- | 'IMAGE_CREATE_PROTECTED_BIT' specifies that the image is a protected -- image.-pattern IMAGE_CREATE_PROTECTED_BIT                        = ImageCreateFlagBits 0x00000800+pattern IMAGE_CREATE_PROTECTED_BIT = ImageCreateFlagBits 0x00000800+ -- | 'IMAGE_CREATE_EXTENDED_USAGE_BIT' specifies that the image /can/ be -- created with usage flags that are not supported for the format the image -- is created with but are supported for at least one format a -- 'Vulkan.Core10.Handles.ImageView' created from the image /can/ have.-pattern IMAGE_CREATE_EXTENDED_USAGE_BIT                   = ImageCreateFlagBits 0x00000100+pattern IMAGE_CREATE_EXTENDED_USAGE_BIT = ImageCreateFlagBits 0x00000100+ -- | 'IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT' specifies that the image -- having a compressed format /can/ be used to create a -- 'Vulkan.Core10.Handles.ImageView' with an uncompressed format where each -- texel in the image view corresponds to a compressed texel block of the -- image.-pattern IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT      = ImageCreateFlagBits 0x00000080+pattern IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = ImageCreateFlagBits 0x00000080+ -- | 'IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' of type -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'.-pattern IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT              = ImageCreateFlagBits 0x00000020+pattern IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = ImageCreateFlagBits 0x00000020+ -- | 'IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT' specifies that the image -- /can/ be used with a non-zero value of the -- @splitInstanceBindRegionCount@ member of a@@ -169,7 +185,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindImageMemory2'. This -- flag also has the effect of making the image use the standard sparse -- image block dimensions.-pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT      = ImageCreateFlagBits 0x00000040+pattern IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = ImageCreateFlagBits 0x00000040+ -- | 'IMAGE_CREATE_ALIAS_BIT' specifies that two images created with the same -- creation parameters and aliased to the same memory /can/ interpret the -- contents of the memory consistently with each other, subject to the@@ -187,7 +204,7 @@ -- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV' -- structure whose @handleTypes@ member is not @0@, it is as if -- 'IMAGE_CREATE_ALIAS_BIT' is set.-pattern IMAGE_CREATE_ALIAS_BIT                            = ImageCreateFlagBits 0x00000400+pattern IMAGE_CREATE_ALIAS_BIT = ImageCreateFlagBits 0x00000400  conNameImageCreateFlagBits :: String conNameImageCreateFlagBits = "ImageCreateFlagBits"@@ -197,36 +214,84 @@  showTableImageCreateFlagBits :: [(ImageCreateFlagBits, String)] showTableImageCreateFlagBits =-  [ (IMAGE_CREATE_SPARSE_BINDING_BIT                  , "SPARSE_BINDING_BIT")-  , (IMAGE_CREATE_SPARSE_RESIDENCY_BIT                , "SPARSE_RESIDENCY_BIT")-  , (IMAGE_CREATE_SPARSE_ALIASED_BIT                  , "SPARSE_ALIASED_BIT")-  , (IMAGE_CREATE_MUTABLE_FORMAT_BIT                  , "MUTABLE_FORMAT_BIT")-  , (IMAGE_CREATE_CUBE_COMPATIBLE_BIT                 , "CUBE_COMPATIBLE_BIT")-  , (IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM, "FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM")-  , (IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT          , "2D_VIEW_COMPATIBLE_BIT_EXT")-  , (IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT, "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT")-  , (IMAGE_CREATE_SUBSAMPLED_BIT_EXT                  , "SUBSAMPLED_BIT_EXT")-  , (IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, "SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT")-  , (IMAGE_CREATE_CORNER_SAMPLED_BIT_NV               , "CORNER_SAMPLED_BIT_NV")-  , (IMAGE_CREATE_DISJOINT_BIT                        , "DISJOINT_BIT")-  , (IMAGE_CREATE_PROTECTED_BIT                       , "PROTECTED_BIT")-  , (IMAGE_CREATE_EXTENDED_USAGE_BIT                  , "EXTENDED_USAGE_BIT")-  , (IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT     , "BLOCK_TEXEL_VIEW_COMPATIBLE_BIT")-  , (IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT             , "2D_ARRAY_COMPATIBLE_BIT")-  , (IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT     , "SPLIT_INSTANCE_BIND_REGIONS_BIT")-  , (IMAGE_CREATE_ALIAS_BIT                           , "ALIAS_BIT")+  [+    ( IMAGE_CREATE_SPARSE_BINDING_BIT+    , "SPARSE_BINDING_BIT"+    )+  ,+    ( IMAGE_CREATE_SPARSE_RESIDENCY_BIT+    , "SPARSE_RESIDENCY_BIT"+    )+  ,+    ( IMAGE_CREATE_SPARSE_ALIASED_BIT+    , "SPARSE_ALIASED_BIT"+    )+  ,+    ( IMAGE_CREATE_MUTABLE_FORMAT_BIT+    , "MUTABLE_FORMAT_BIT"+    )+  ,+    ( IMAGE_CREATE_CUBE_COMPATIBLE_BIT+    , "CUBE_COMPATIBLE_BIT"+    )+  ,+    ( IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM+    , "FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM"+    )+  ,+    ( IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT+    , "2D_VIEW_COMPATIBLE_BIT_EXT"+    )+  ,+    ( IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT+    , "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT"+    )+  ,+    ( IMAGE_CREATE_SUBSAMPLED_BIT_EXT+    , "SUBSAMPLED_BIT_EXT"+    )+  ,+    ( IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT+    , "SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT"+    )+  ,+    ( IMAGE_CREATE_CORNER_SAMPLED_BIT_NV+    , "CORNER_SAMPLED_BIT_NV"+    )+  , (IMAGE_CREATE_DISJOINT_BIT, "DISJOINT_BIT")+  , (IMAGE_CREATE_PROTECTED_BIT, "PROTECTED_BIT")+  ,+    ( IMAGE_CREATE_EXTENDED_USAGE_BIT+    , "EXTENDED_USAGE_BIT"+    )+  ,+    ( IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT+    , "BLOCK_TEXEL_VIEW_COMPATIBLE_BIT"+    )+  ,+    ( IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT+    , "2D_ARRAY_COMPATIBLE_BIT"+    )+  ,+    ( IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT+    , "SPLIT_INSTANCE_BIND_REGIONS_BIT"+    )+  , (IMAGE_CREATE_ALIAS_BIT, "ALIAS_BIT")   ]  instance Show ImageCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixImageCreateFlagBits-                            showTableImageCreateFlagBits-                            conNameImageCreateFlagBits-                            (\(ImageCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageCreateFlagBits+      showTableImageCreateFlagBits+      conNameImageCreateFlagBits+      (\(ImageCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageCreateFlagBits where-  readPrec = enumReadPrec enumPrefixImageCreateFlagBits-                          showTableImageCreateFlagBits-                          conNameImageCreateFlagBits-                          ImageCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixImageCreateFlagBits+      showTableImageCreateFlagBits+      conNameImageCreateFlagBits+      ImageCreateFlagBits
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -78,6 +78,7 @@ -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ResolveImageInfo2',+-- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',@@ -96,28 +97,33 @@ -- 'Vulkan.Core10.Image.ImageCreateInfo'. This layout /can/ be used in -- place of the current image layout in a layout transition, but doing so -- will cause the contents of the image’s memory to be undefined.-pattern IMAGE_LAYOUT_UNDEFINED                            = ImageLayout 0+pattern IMAGE_LAYOUT_UNDEFINED = ImageLayout 0+ -- | 'IMAGE_LAYOUT_GENERAL' supports all types of device access.-pattern IMAGE_LAYOUT_GENERAL                              = ImageLayout 1+pattern IMAGE_LAYOUT_GENERAL = ImageLayout 1+ -- | 'IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL' /must/ only be used as a color -- or resolve attachment in a 'Vulkan.Core10.Handles.Framebuffer'. This -- layout is valid only for image subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- usage bit enabled.-pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL             = ImageLayout 2+pattern IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = ImageLayout 2+ -- | 'IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL' specifies a layout for -- both the depth and stencil aspects of a depth\/stencil format image -- allowing read and write access as a depth\/stencil attachment. It is -- equivalent to 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' and -- 'IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'.-pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL     = ImageLayout 3+pattern IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 3+ -- | 'IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL' specifies a layout for -- both the depth and stencil aspects of a depth\/stencil format image -- allowing read only access as a depth\/stencil attachment or in shaders -- as a sampled image, combined image\/sampler, or input attachment. It is -- equivalent to 'IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' and -- 'IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'.-pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL      = ImageLayout 4+pattern IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 4+ -- | 'IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL' specifies a layout allowing -- read-only access in a shader as a sampled image, combined -- image\/sampler, or input attachment. This layout is valid only for image@@ -125,7 +131,8 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' or -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT' -- usage bits enabled.-pattern IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL             = ImageLayout 5+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages-transfer >).@@ -133,13 +140,15 @@ -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT' -- usage bit enabled.-pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                 = ImageLayout 6+pattern IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = ImageLayout 6+ -- | 'IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL' /must/ only be used as a destination -- image of a transfer command. This layout is valid only for image -- subresources of images created with the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT' -- usage bit enabled.-pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                 = ImageLayout 7+pattern IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = ImageLayout 7+ -- | 'IMAGE_LAYOUT_PREINITIALIZED' specifies that an image’s memory is in a -- defined layout and /can/ be populated by data, but that it has not yet -- been initialized by the driver. Image memory /cannot/ be transitioned@@ -152,7 +161,8 @@ -- <https://registry.khronos.org/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+pattern IMAGE_LAYOUT_PREINITIALIZED = ImageLayout 8+ -- | 'IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT' /must/ only be used -- as either a color attachment or depth\/stencil attachment in a -- 'Vulkan.Core10.Handles.Framebuffer' and\/or read-only access in a shader@@ -168,6 +178,7 @@ -- or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT' -- usage bits enabled. pattern IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = ImageLayout 1000339000+ -- | 'IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR' /must/ only -- be used as a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>@@ -178,48 +189,58 @@ -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR' -- usage bit enabled. pattern IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = ImageLayout 1000164003+ -- | 'IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT' /must/ only be used as a -- fragment density map attachment in a 'Vulkan.Core10.Handles.RenderPass'. -- This layout is valid only for image subresources of images created with -- the -- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT' -- usage bit enabled.-pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT     = ImageLayout 1000218000+pattern IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = ImageLayout 1000218000+ -- | 'IMAGE_LAYOUT_SHARED_PRESENT_KHR' is valid only for shared presentable -- images, and /must/ be used for any usage the image supports.-pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR                   = ImageLayout 1000111000+pattern IMAGE_LAYOUT_SHARED_PRESENT_KHR = ImageLayout 1000111000+ -- | 'IMAGE_LAYOUT_PRESENT_SRC_KHR' /must/ only be used for presenting a -- presentable image for display. A swapchain’s image /must/ be -- transitioned to this layout before calling -- 'Vulkan.Extensions.VK_KHR_swapchain.queuePresentKHR', and /must/ be -- transitioned away from this layout after calling -- 'Vulkan.Extensions.VK_KHR_swapchain.acquireNextImageKHR'.-pattern IMAGE_LAYOUT_PRESENT_SRC_KHR                      = ImageLayout 1000001002+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+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+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, -- combined image\/sampler, or input attachment.-pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL            = ImageLayout 1000241003+pattern IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 1000241003+ -- | 'IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL' specifies a layout for the -- stencil aspect of a depth\/stencil format image allowing read and write -- access as a stencil attachment.-pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL           = ImageLayout 1000241002+pattern IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 1000241002+ -- | 'IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' specifies a layout for the depth -- aspect of a depth\/stencil format image allowing read-only access as a -- depth attachment or in shaders as a sampled image, combined -- image\/sampler, or input attachment.-pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL              = ImageLayout 1000241001+pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = ImageLayout 1000241001+ -- | 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' specifies a layout for the depth -- aspect of a depth\/stencil format image allowing read and write access -- as a depth attachment.-pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL             = ImageLayout 1000241000+pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = ImageLayout 1000241000+ -- | 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL' specifies a -- layout for depth\/stencil format images allowing read and write access -- to the depth aspect as a depth attachment, and read only access to the@@ -228,6 +249,7 @@ -- 'IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL' and -- 'IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL'. pattern IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = ImageLayout 1000117001+ -- | 'IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL' specifies a -- layout for depth\/stencil format images allowing read and write access -- to the stencil aspect as a stencil attachment, and read only access to@@ -236,29 +258,33 @@ -- 'IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL' and -- 'IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL'. pattern IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = ImageLayout 1000117000-{-# complete IMAGE_LAYOUT_UNDEFINED,-             IMAGE_LAYOUT_GENERAL,-             IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,-             IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,-             IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL,-             IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,-             IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,-             IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,-             IMAGE_LAYOUT_PREINITIALIZED,-             IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT,-             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,-             IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,-             IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,-             IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL :: ImageLayout #-} +{-# COMPLETE+  IMAGE_LAYOUT_UNDEFINED+  , IMAGE_LAYOUT_GENERAL+  , IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL+  , IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL+  , IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL+  , IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL+  , IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL+  , IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL+  , IMAGE_LAYOUT_PREINITIALIZED+  , IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT+  , 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+  , IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL+  , IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL+  , IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL ::+    ImageLayout+  #-}+ conNameImageLayout :: String conNameImageLayout = "ImageLayout" @@ -267,34 +293,88 @@  showTableImageLayout :: [(ImageLayout, String)] showTableImageLayout =-  [ (IMAGE_LAYOUT_UNDEFINED                           , "UNDEFINED")-  , (IMAGE_LAYOUT_GENERAL                             , "GENERAL")-  , (IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL            , "COLOR_ATTACHMENT_OPTIMAL")-  , (IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL    , "DEPTH_STENCIL_ATTACHMENT_OPTIMAL")-  , (IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL     , "DEPTH_STENCIL_READ_ONLY_OPTIMAL")-  , (IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL            , "SHADER_READ_ONLY_OPTIMAL")-  , (IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL                , "TRANSFER_SRC_OPTIMAL")-  , (IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL                , "TRANSFER_DST_OPTIMAL")-  , (IMAGE_LAYOUT_PREINITIALIZED                      , "PREINITIALIZED")-  , (IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT, "ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT")-  , (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")-  , (IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL            , "DEPTH_ATTACHMENT_OPTIMAL")-  , (IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, "DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL")-  , (IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, "DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL")+  [ (IMAGE_LAYOUT_UNDEFINED, "UNDEFINED")+  , (IMAGE_LAYOUT_GENERAL, "GENERAL")+  ,+    ( IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL+    , "COLOR_ATTACHMENT_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL+    , "DEPTH_STENCIL_ATTACHMENT_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL+    , "DEPTH_STENCIL_READ_ONLY_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL+    , "SHADER_READ_ONLY_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL+    , "TRANSFER_SRC_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL+    , "TRANSFER_DST_OPTIMAL"+    )+  , (IMAGE_LAYOUT_PREINITIALIZED, "PREINITIALIZED")+  ,+    ( IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT+    , "ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT"+    )+  ,+    ( 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"+    )+  ,+    ( IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL+    , "DEPTH_ATTACHMENT_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL+    , "DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL"+    )+  ,+    ( IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL+    , "DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL"+    )   ]  instance Show ImageLayout where   showsPrec =-    enumShowsPrec enumPrefixImageLayout showTableImageLayout conNameImageLayout (\(ImageLayout x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixImageLayout+      showTableImageLayout+      conNameImageLayout+      (\(ImageLayout x) -> x)+      (showsPrec 11)  instance Read ImageLayout where-  readPrec = enumReadPrec enumPrefixImageLayout showTableImageLayout conNameImageLayout ImageLayout-+  readPrec =+    enumReadPrec+      enumPrefixImageLayout+      showTableImageLayout+      conNameImageLayout+      ImageLayout
src/Vulkan/Core10/Enums/ImageTiling.hs view
@@ -33,10 +33,12 @@ -- | 'IMAGE_TILING_OPTIMAL' specifies optimal tiling (texels are laid out in -- an implementation-dependent arrangement, for more efficient memory -- access).-pattern IMAGE_TILING_OPTIMAL                 = ImageTiling 0+pattern IMAGE_TILING_OPTIMAL = ImageTiling 0+ -- | 'IMAGE_TILING_LINEAR' specifies linear tiling (texels are laid out in -- memory in row-major order, possibly with some padding on each row).-pattern IMAGE_TILING_LINEAR                  = ImageTiling 1+pattern IMAGE_TILING_LINEAR = ImageTiling 1+ -- | 'IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT' indicates that the image’s tiling -- is defined by a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-drm-format-modifier Linux DRM format modifier>.@@ -47,10 +49,14 @@ -- and /can/ be queried with -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.getImageDrmFormatModifierPropertiesEXT'. pattern IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = ImageTiling 1000158000-{-# complete IMAGE_TILING_OPTIMAL,-             IMAGE_TILING_LINEAR,-             IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT :: ImageTiling #-} +{-# COMPLETE+  IMAGE_TILING_OPTIMAL+  , IMAGE_TILING_LINEAR+  , IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT ::+    ImageTiling+  #-}+ conNameImageTiling :: String conNameImageTiling = "ImageTiling" @@ -59,15 +65,27 @@  showTableImageTiling :: [(ImageTiling, String)] showTableImageTiling =-  [ (IMAGE_TILING_OPTIMAL                , "OPTIMAL")-  , (IMAGE_TILING_LINEAR                 , "LINEAR")-  , (IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, "DRM_FORMAT_MODIFIER_EXT")+  [ (IMAGE_TILING_OPTIMAL, "OPTIMAL")+  , (IMAGE_TILING_LINEAR, "LINEAR")+  ,+    ( IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT+    , "DRM_FORMAT_MODIFIER_EXT"+    )   ]  instance Show ImageTiling where   showsPrec =-    enumShowsPrec enumPrefixImageTiling showTableImageTiling conNameImageTiling (\(ImageTiling x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixImageTiling+      showTableImageTiling+      conNameImageTiling+      (\(ImageTiling x) -> x)+      (showsPrec 11)  instance Read ImageTiling where-  readPrec = enumReadPrec enumPrefixImageTiling showTableImageTiling conNameImageTiling ImageTiling-+  readPrec =+    enumReadPrec+      enumPrefixImageTiling+      showTableImageTiling+      conNameImageTiling+      ImageTiling
src/Vulkan/Core10/Enums/ImageType.hs view
@@ -32,14 +32,20 @@  -- | 'IMAGE_TYPE_1D' specifies a one-dimensional image. pattern IMAGE_TYPE_1D = ImageType 0+ -- | 'IMAGE_TYPE_2D' specifies a two-dimensional image. pattern IMAGE_TYPE_2D = ImageType 1+ -- | 'IMAGE_TYPE_3D' specifies a three-dimensional image. pattern IMAGE_TYPE_3D = ImageType 2-{-# complete IMAGE_TYPE_1D,-             IMAGE_TYPE_2D,-             IMAGE_TYPE_3D :: ImageType #-} +{-# COMPLETE+  IMAGE_TYPE_1D+  , IMAGE_TYPE_2D+  , IMAGE_TYPE_3D ::+    ImageType+  #-}+ conNameImageType :: String conNameImageType = "ImageType" @@ -47,12 +53,25 @@ enumPrefixImageType = "IMAGE_TYPE_"  showTableImageType :: [(ImageType, String)]-showTableImageType = [(IMAGE_TYPE_1D, "1D"), (IMAGE_TYPE_2D, "2D"), (IMAGE_TYPE_3D, "3D")]+showTableImageType =+  [ (IMAGE_TYPE_1D, "1D")+  , (IMAGE_TYPE_2D, "2D")+  , (IMAGE_TYPE_3D, "3D")+  ]  instance Show ImageType where   showsPrec =-    enumShowsPrec enumPrefixImageType showTableImageType conNameImageType (\(ImageType x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixImageType+      showTableImageType+      conNameImageType+      (\(ImageType x) -> x)+      (showsPrec 11)  instance Read ImageType where-  readPrec = enumReadPrec enumPrefixImageType showTableImageType conNameImageType ImageType-+  readPrec =+    enumReadPrec+      enumPrefixImageType+      showTableImageType+      conNameImageType+      ImageType
src/Vulkan/Core10/Enums/ImageUsageFlagBits.hs view
@@ -43,31 +43,37 @@  -- | 'IMAGE_USAGE_TRANSFER_SRC_BIT' specifies that the image /can/ be used as -- the source of a transfer command.-pattern IMAGE_USAGE_TRANSFER_SRC_BIT                         = ImageUsageFlagBits 0x00000001+pattern IMAGE_USAGE_TRANSFER_SRC_BIT = ImageUsageFlagBits 0x00000001+ -- | 'IMAGE_USAGE_TRANSFER_DST_BIT' specifies that the image /can/ be used as -- the destination of a transfer command.-pattern IMAGE_USAGE_TRANSFER_DST_BIT                         = ImageUsageFlagBits 0x00000002+pattern IMAGE_USAGE_TRANSFER_DST_BIT = ImageUsageFlagBits 0x00000002+ -- | 'IMAGE_USAGE_SAMPLED_BIT' specifies that the image /can/ be used to -- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a -- 'Vulkan.Core10.Handles.DescriptorSet' slot either of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_SAMPLED_IMAGE' or -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER', -- and be sampled by a shader.-pattern IMAGE_USAGE_SAMPLED_BIT                              = ImageUsageFlagBits 0x00000004+pattern IMAGE_USAGE_SAMPLED_BIT = ImageUsageFlagBits 0x00000004+ -- | 'IMAGE_USAGE_STORAGE_BIT' specifies that the image /can/ be used to -- create a 'Vulkan.Core10.Handles.ImageView' suitable for occupying a -- 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_STORAGE_IMAGE'.-pattern IMAGE_USAGE_STORAGE_BIT                              = ImageUsageFlagBits 0x00000008+pattern IMAGE_USAGE_STORAGE_BIT = ImageUsageFlagBits 0x00000008+ -- | 'IMAGE_USAGE_COLOR_ATTACHMENT_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for use as a -- color or resolve attachment in a 'Vulkan.Core10.Handles.Framebuffer'.-pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT                     = ImageUsageFlagBits 0x00000010+pattern IMAGE_USAGE_COLOR_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000010+ -- | 'IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT' specifies that the image -- /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- use as a depth\/stencil or depth\/stencil resolve attachment in a -- 'Vulkan.Core10.Handles.Framebuffer'.-pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT             = ImageUsageFlagBits 0x00000020+pattern IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000020+ -- | 'IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT' specifies that implementations -- /may/ support using -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory memory allocations>@@ -77,20 +83,25 @@ -- that /can/ be used to create a 'Vulkan.Core10.Handles.ImageView' -- suitable for use as a color, resolve, depth\/stencil, or input -- attachment.-pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                 = ImageUsageFlagBits 0x00000040+pattern IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000040+ -- | 'IMAGE_USAGE_INPUT_ATTACHMENT_BIT' specifies that the image /can/ be -- used to create a 'Vulkan.Core10.Handles.ImageView' suitable for -- occupying 'Vulkan.Core10.Handles.DescriptorSet' slot of type -- 'Vulkan.Core10.Enums.DescriptorType.DESCRIPTOR_TYPE_INPUT_ATTACHMENT'; -- be read from a shader as an input attachment; and be used as an input -- attachment in a framebuffer.-pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT                     = ImageUsageFlagBits 0x00000080+pattern IMAGE_USAGE_INPUT_ATTACHMENT_BIT = ImageUsageFlagBits 0x00000080+ -- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM"-pattern IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM              = ImageUsageFlagBits 0x00200000+pattern IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = ImageUsageFlagBits 0x00200000+ -- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM"-pattern IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM                   = ImageUsageFlagBits 0x00100000+pattern IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = ImageUsageFlagBits 0x00100000+ -- No documentation found for Nested "VkImageUsageFlagBits" "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI"-pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI               = ImageUsageFlagBits 0x00040000+pattern IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = ImageUsageFlagBits 0x00040000+ -- | 'IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT' specifies that the image -- /can/ be transitioned to the -- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT'@@ -98,7 +109,8 @@ -- 'Vulkan.Core10.Handles.Framebuffer' and\/or as a read-only input -- resource in a shader (sampled image, combined image sampler or input -- attachment) in the same render pass.-pattern IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT         = ImageUsageFlagBits 0x00080000+pattern IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = ImageUsageFlagBits 0x00080000+ -- | '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@@ -106,11 +118,12 @@ -- or -- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops fragment density map image>.-pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT             = ImageUsageFlagBits 0x00000200+pattern IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = ImageUsageFlagBits 0x00000200  conNameImageUsageFlagBits :: String conNameImageUsageFlagBits = "ImageUsageFlagBits"@@ -120,30 +133,71 @@  showTableImageUsageFlagBits :: [(ImageUsageFlagBits, String)] showTableImageUsageFlagBits =-  [ (IMAGE_USAGE_TRANSFER_SRC_BIT                        , "TRANSFER_SRC_BIT")-  , (IMAGE_USAGE_TRANSFER_DST_BIT                        , "TRANSFER_DST_BIT")-  , (IMAGE_USAGE_SAMPLED_BIT                             , "SAMPLED_BIT")-  , (IMAGE_USAGE_STORAGE_BIT                             , "STORAGE_BIT")-  , (IMAGE_USAGE_COLOR_ATTACHMENT_BIT                    , "COLOR_ATTACHMENT_BIT")-  , (IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT            , "DEPTH_STENCIL_ATTACHMENT_BIT")-  , (IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT                , "TRANSIENT_ATTACHMENT_BIT")-  , (IMAGE_USAGE_INPUT_ATTACHMENT_BIT                    , "INPUT_ATTACHMENT_BIT")-  , (IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM             , "SAMPLE_BLOCK_MATCH_BIT_QCOM")-  , (IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM                  , "SAMPLE_WEIGHT_BIT_QCOM")-  , (IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI              , "INVOCATION_MASK_BIT_HUAWEI")-  , (IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT        , "ATTACHMENT_FEEDBACK_LOOP_BIT_EXT")-  , (IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR")-  , (IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT            , "FRAGMENT_DENSITY_MAP_BIT_EXT")+  [+    ( IMAGE_USAGE_TRANSFER_SRC_BIT+    , "TRANSFER_SRC_BIT"+    )+  ,+    ( IMAGE_USAGE_TRANSFER_DST_BIT+    , "TRANSFER_DST_BIT"+    )+  , (IMAGE_USAGE_SAMPLED_BIT, "SAMPLED_BIT")+  , (IMAGE_USAGE_STORAGE_BIT, "STORAGE_BIT")+  ,+    ( IMAGE_USAGE_COLOR_ATTACHMENT_BIT+    , "COLOR_ATTACHMENT_BIT"+    )+  ,+    ( IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT+    , "DEPTH_STENCIL_ATTACHMENT_BIT"+    )+  ,+    ( IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT+    , "TRANSIENT_ATTACHMENT_BIT"+    )+  ,+    ( IMAGE_USAGE_INPUT_ATTACHMENT_BIT+    , "INPUT_ATTACHMENT_BIT"+    )+  ,+    ( IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM+    , "SAMPLE_BLOCK_MATCH_BIT_QCOM"+    )+  ,+    ( IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM+    , "SAMPLE_WEIGHT_BIT_QCOM"+    )+  ,+    ( IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI+    , "INVOCATION_MASK_BIT_HUAWEI"+    )+  ,+    ( IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT+    , "ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"+    )+  ,+    ( IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+    , "FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"+    )+  ,+    ( IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT+    , "FRAGMENT_DENSITY_MAP_BIT_EXT"+    )   ]  instance Show ImageUsageFlagBits where-  showsPrec = enumShowsPrec enumPrefixImageUsageFlagBits-                            showTableImageUsageFlagBits-                            conNameImageUsageFlagBits-                            (\(ImageUsageFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageUsageFlagBits+      showTableImageUsageFlagBits+      conNameImageUsageFlagBits+      (\(ImageUsageFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageUsageFlagBits where   readPrec =-    enumReadPrec enumPrefixImageUsageFlagBits showTableImageUsageFlagBits conNameImageUsageFlagBits ImageUsageFlagBits-+    enumReadPrec+      enumPrefixImageUsageFlagBits+      showTableImageUsageFlagBits+      conNameImageUsageFlagBits+      ImageUsageFlagBits
src/Vulkan/Core10/Enums/ImageViewCreateFlagBits.hs view
@@ -35,10 +35,11 @@ -- 'Vulkan.Core10.CommandBuffer.endCommandBuffer' for the primary command -- buffer that the render pass is recorded into pattern IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = ImageViewCreateFlagBits 0x00000002+ -- | 'IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT' specifies that -- the fragment density map will be read by device during -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT'-pattern IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT  = ImageViewCreateFlagBits 0x00000001+pattern IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = ImageViewCreateFlagBits 0x00000001  conNameImageViewCreateFlagBits :: String conNameImageViewCreateFlagBits = "ImageViewCreateFlagBits"@@ -48,20 +49,29 @@  showTableImageViewCreateFlagBits :: [(ImageViewCreateFlagBits, String)] showTableImageViewCreateFlagBits =-  [ (IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, "EFERRED_BIT_EXT")-  , (IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT , "YNAMIC_BIT_EXT")+  [+    ( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT+    , "EFERRED_BIT_EXT"+    )+  ,+    ( IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT+    , "YNAMIC_BIT_EXT"+    )   ]  instance Show ImageViewCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixImageViewCreateFlagBits-                            showTableImageViewCreateFlagBits-                            conNameImageViewCreateFlagBits-                            (\(ImageViewCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageViewCreateFlagBits+      showTableImageViewCreateFlagBits+      conNameImageViewCreateFlagBits+      (\(ImageViewCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageViewCreateFlagBits where-  readPrec = enumReadPrec enumPrefixImageViewCreateFlagBits-                          showTableImageViewCreateFlagBits-                          conNameImageViewCreateFlagBits-                          ImageViewCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixImageViewCreateFlagBits+      showTableImageViewCreateFlagBits+      conNameImageViewCreateFlagBits+      ImageViewCreateFlagBits
src/Vulkan/Core10/Enums/ImageViewType.hs view
@@ -30,27 +30,37 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_1D"-pattern IMAGE_VIEW_TYPE_1D         = ImageViewType 0+pattern IMAGE_VIEW_TYPE_1D = ImageViewType 0+ -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_2D"-pattern IMAGE_VIEW_TYPE_2D         = ImageViewType 1+pattern IMAGE_VIEW_TYPE_2D = ImageViewType 1+ -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_3D"-pattern IMAGE_VIEW_TYPE_3D         = ImageViewType 2+pattern IMAGE_VIEW_TYPE_3D = ImageViewType 2+ -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_CUBE"-pattern IMAGE_VIEW_TYPE_CUBE       = ImageViewType 3+pattern IMAGE_VIEW_TYPE_CUBE = ImageViewType 3+ -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_1D_ARRAY"-pattern IMAGE_VIEW_TYPE_1D_ARRAY   = ImageViewType 4+pattern IMAGE_VIEW_TYPE_1D_ARRAY = ImageViewType 4+ -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_2D_ARRAY"-pattern IMAGE_VIEW_TYPE_2D_ARRAY   = ImageViewType 5+pattern IMAGE_VIEW_TYPE_2D_ARRAY = ImageViewType 5+ -- No documentation found for Nested "VkImageViewType" "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" pattern IMAGE_VIEW_TYPE_CUBE_ARRAY = ImageViewType 6-{-# complete IMAGE_VIEW_TYPE_1D,-             IMAGE_VIEW_TYPE_2D,-             IMAGE_VIEW_TYPE_3D,-             IMAGE_VIEW_TYPE_CUBE,-             IMAGE_VIEW_TYPE_1D_ARRAY,-             IMAGE_VIEW_TYPE_2D_ARRAY,-             IMAGE_VIEW_TYPE_CUBE_ARRAY :: ImageViewType #-} +{-# COMPLETE+  IMAGE_VIEW_TYPE_1D+  , IMAGE_VIEW_TYPE_2D+  , IMAGE_VIEW_TYPE_3D+  , IMAGE_VIEW_TYPE_CUBE+  , IMAGE_VIEW_TYPE_1D_ARRAY+  , IMAGE_VIEW_TYPE_2D_ARRAY+  , IMAGE_VIEW_TYPE_CUBE_ARRAY ::+    ImageViewType+  #-}+ conNameImageViewType :: String conNameImageViewType = "ImageViewType" @@ -59,22 +69,28 @@  showTableImageViewType :: [(ImageViewType, String)] showTableImageViewType =-  [ (IMAGE_VIEW_TYPE_1D        , "1D")-  , (IMAGE_VIEW_TYPE_2D        , "2D")-  , (IMAGE_VIEW_TYPE_3D        , "3D")-  , (IMAGE_VIEW_TYPE_CUBE      , "CUBE")-  , (IMAGE_VIEW_TYPE_1D_ARRAY  , "1D_ARRAY")-  , (IMAGE_VIEW_TYPE_2D_ARRAY  , "2D_ARRAY")+  [ (IMAGE_VIEW_TYPE_1D, "1D")+  , (IMAGE_VIEW_TYPE_2D, "2D")+  , (IMAGE_VIEW_TYPE_3D, "3D")+  , (IMAGE_VIEW_TYPE_CUBE, "CUBE")+  , (IMAGE_VIEW_TYPE_1D_ARRAY, "1D_ARRAY")+  , (IMAGE_VIEW_TYPE_2D_ARRAY, "2D_ARRAY")   , (IMAGE_VIEW_TYPE_CUBE_ARRAY, "CUBE_ARRAY")   ]  instance Show ImageViewType where-  showsPrec = enumShowsPrec enumPrefixImageViewType-                            showTableImageViewType-                            conNameImageViewType-                            (\(ImageViewType x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixImageViewType+      showTableImageViewType+      conNameImageViewType+      (\(ImageViewType x) -> x)+      (showsPrec 11)  instance Read ImageViewType where-  readPrec = enumReadPrec enumPrefixImageViewType showTableImageViewType conNameImageViewType ImageViewType-+  readPrec =+    enumReadPrec+      enumPrefixImageViewType+      showTableImageViewType+      conNameImageViewType+      ImageViewType
src/Vulkan/Core10/Enums/IndexType.hs view
@@ -22,6 +22,7 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',@@ -31,20 +32,27 @@  -- | 'INDEX_TYPE_UINT16' specifies that indices are 16-bit unsigned integer -- values.-pattern INDEX_TYPE_UINT16    = IndexType 0+pattern INDEX_TYPE_UINT16 = IndexType 0+ -- | 'INDEX_TYPE_UINT32' specifies that indices are 32-bit unsigned integer -- values.-pattern INDEX_TYPE_UINT32    = IndexType 1+pattern INDEX_TYPE_UINT32 = IndexType 1+ -- | 'INDEX_TYPE_UINT8_EXT' specifies that indices are 8-bit unsigned integer -- values. pattern INDEX_TYPE_UINT8_EXT = IndexType 1000265000+ -- | 'INDEX_TYPE_NONE_KHR' specifies that no indices are provided.-pattern INDEX_TYPE_NONE_KHR  = IndexType 1000165000-{-# complete INDEX_TYPE_UINT16,-             INDEX_TYPE_UINT32,-             INDEX_TYPE_UINT8_EXT,-             INDEX_TYPE_NONE_KHR :: IndexType #-}+pattern INDEX_TYPE_NONE_KHR = IndexType 1000165000 +{-# COMPLETE+  INDEX_TYPE_UINT16+  , INDEX_TYPE_UINT32+  , INDEX_TYPE_UINT8_EXT+  , INDEX_TYPE_NONE_KHR ::+    IndexType+  #-}+ conNameIndexType :: String conNameIndexType = "IndexType" @@ -53,16 +61,25 @@  showTableIndexType :: [(IndexType, String)] showTableIndexType =-  [ (INDEX_TYPE_UINT16   , "UINT16")-  , (INDEX_TYPE_UINT32   , "UINT32")+  [ (INDEX_TYPE_UINT16, "UINT16")+  , (INDEX_TYPE_UINT32, "UINT32")   , (INDEX_TYPE_UINT8_EXT, "UINT8_EXT")-  , (INDEX_TYPE_NONE_KHR , "NONE_KHR")+  , (INDEX_TYPE_NONE_KHR, "NONE_KHR")   ]  instance Show IndexType where   showsPrec =-    enumShowsPrec enumPrefixIndexType showTableIndexType conNameIndexType (\(IndexType x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixIndexType+      showTableIndexType+      conNameIndexType+      (\(IndexType x) -> x)+      (showsPrec 11)  instance Read IndexType where-  readPrec = enumReadPrec enumPrefixIndexType showTableIndexType conNameIndexType IndexType-+  readPrec =+    enumReadPrec+      enumPrefixIndexType+      showTableIndexType+      conNameIndexType+      IndexType
src/Vulkan/Core10/Enums/InstanceCreateFlagBits.hs view
@@ -41,18 +41,26 @@ enumPrefixInstanceCreateFlagBits = "INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR"  showTableInstanceCreateFlagBits :: [(InstanceCreateFlagBits, String)]-showTableInstanceCreateFlagBits = [(INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR, "")]+showTableInstanceCreateFlagBits =+  [+    ( INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR+    , ""+    )+  ]  instance Show InstanceCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixInstanceCreateFlagBits-                            showTableInstanceCreateFlagBits-                            conNameInstanceCreateFlagBits-                            (\(InstanceCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixInstanceCreateFlagBits+      showTableInstanceCreateFlagBits+      conNameInstanceCreateFlagBits+      (\(InstanceCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read InstanceCreateFlagBits where-  readPrec = enumReadPrec enumPrefixInstanceCreateFlagBits-                          showTableInstanceCreateFlagBits-                          conNameInstanceCreateFlagBits-                          InstanceCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixInstanceCreateFlagBits+      showTableInstanceCreateFlagBits+      conNameInstanceCreateFlagBits+      InstanceCreateFlagBits
src/Vulkan/Core10/Enums/InternalAllocationType.hs view
@@ -26,8 +26,9 @@ -- | 'INTERNAL_ALLOCATION_TYPE_EXECUTABLE' specifies that the allocation is -- intended for execution by the host. pattern INTERNAL_ALLOCATION_TYPE_EXECUTABLE = InternalAllocationType 0-{-# complete INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: InternalAllocationType #-} +{-# COMPLETE INTERNAL_ALLOCATION_TYPE_EXECUTABLE :: InternalAllocationType #-}+ conNameInternalAllocationType :: String conNameInternalAllocationType = "InternalAllocationType" @@ -38,15 +39,18 @@ showTableInternalAllocationType = [(INTERNAL_ALLOCATION_TYPE_EXECUTABLE, "")]  instance Show InternalAllocationType where-  showsPrec = enumShowsPrec enumPrefixInternalAllocationType-                            showTableInternalAllocationType-                            conNameInternalAllocationType-                            (\(InternalAllocationType x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixInternalAllocationType+      showTableInternalAllocationType+      conNameInternalAllocationType+      (\(InternalAllocationType x) -> x)+      (showsPrec 11)  instance Read InternalAllocationType where-  readPrec = enumReadPrec enumPrefixInternalAllocationType-                          showTableInternalAllocationType-                          conNameInternalAllocationType-                          InternalAllocationType-+  readPrec =+    enumReadPrec+      enumPrefixInternalAllocationType+      showTableInternalAllocationType+      conNameInternalAllocationType+      InternalAllocationType
src/Vulkan/Core10/Enums/LogicOp.hs view
@@ -100,54 +100,73 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_CLEAR"-pattern LOGIC_OP_CLEAR         = LogicOp 0+pattern LOGIC_OP_CLEAR = LogicOp 0+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_AND"-pattern LOGIC_OP_AND           = LogicOp 1+pattern LOGIC_OP_AND = LogicOp 1+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_AND_REVERSE"-pattern LOGIC_OP_AND_REVERSE   = LogicOp 2+pattern LOGIC_OP_AND_REVERSE = LogicOp 2+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_COPY"-pattern LOGIC_OP_COPY          = LogicOp 3+pattern LOGIC_OP_COPY = LogicOp 3+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_AND_INVERTED"-pattern LOGIC_OP_AND_INVERTED  = LogicOp 4+pattern LOGIC_OP_AND_INVERTED = LogicOp 4+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_NO_OP"-pattern LOGIC_OP_NO_OP         = LogicOp 5+pattern LOGIC_OP_NO_OP = LogicOp 5+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_XOR"-pattern LOGIC_OP_XOR           = LogicOp 6+pattern LOGIC_OP_XOR = LogicOp 6+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_OR"-pattern LOGIC_OP_OR            = LogicOp 7+pattern LOGIC_OP_OR = LogicOp 7+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_NOR"-pattern LOGIC_OP_NOR           = LogicOp 8+pattern LOGIC_OP_NOR = LogicOp 8+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_EQUIVALENT"-pattern LOGIC_OP_EQUIVALENT    = LogicOp 9+pattern LOGIC_OP_EQUIVALENT = LogicOp 9+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_INVERT"-pattern LOGIC_OP_INVERT        = LogicOp 10+pattern LOGIC_OP_INVERT = LogicOp 10+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_OR_REVERSE"-pattern LOGIC_OP_OR_REVERSE    = LogicOp 11+pattern LOGIC_OP_OR_REVERSE = LogicOp 11+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_COPY_INVERTED" pattern LOGIC_OP_COPY_INVERTED = LogicOp 12+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_OR_INVERTED"-pattern LOGIC_OP_OR_INVERTED   = LogicOp 13+pattern LOGIC_OP_OR_INVERTED = LogicOp 13+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_NAND"-pattern LOGIC_OP_NAND          = LogicOp 14+pattern LOGIC_OP_NAND = LogicOp 14+ -- No documentation found for Nested "VkLogicOp" "VK_LOGIC_OP_SET"-pattern LOGIC_OP_SET           = LogicOp 15-{-# complete LOGIC_OP_CLEAR,-             LOGIC_OP_AND,-             LOGIC_OP_AND_REVERSE,-             LOGIC_OP_COPY,-             LOGIC_OP_AND_INVERTED,-             LOGIC_OP_NO_OP,-             LOGIC_OP_XOR,-             LOGIC_OP_OR,-             LOGIC_OP_NOR,-             LOGIC_OP_EQUIVALENT,-             LOGIC_OP_INVERT,-             LOGIC_OP_OR_REVERSE,-             LOGIC_OP_COPY_INVERTED,-             LOGIC_OP_OR_INVERTED,-             LOGIC_OP_NAND,-             LOGIC_OP_SET :: LogicOp #-}+pattern LOGIC_OP_SET = LogicOp 15 +{-# COMPLETE+  LOGIC_OP_CLEAR+  , LOGIC_OP_AND+  , LOGIC_OP_AND_REVERSE+  , LOGIC_OP_COPY+  , LOGIC_OP_AND_INVERTED+  , LOGIC_OP_NO_OP+  , LOGIC_OP_XOR+  , LOGIC_OP_OR+  , LOGIC_OP_NOR+  , LOGIC_OP_EQUIVALENT+  , LOGIC_OP_INVERT+  , LOGIC_OP_OR_REVERSE+  , LOGIC_OP_COPY_INVERTED+  , LOGIC_OP_OR_INVERTED+  , LOGIC_OP_NAND+  , LOGIC_OP_SET ::+    LogicOp+  #-}+ conNameLogicOp :: String conNameLogicOp = "LogicOp" @@ -156,27 +175,37 @@  showTableLogicOp :: [(LogicOp, String)] showTableLogicOp =-  [ (LOGIC_OP_CLEAR        , "CLEAR")-  , (LOGIC_OP_AND          , "AND")-  , (LOGIC_OP_AND_REVERSE  , "AND_REVERSE")-  , (LOGIC_OP_COPY         , "COPY")-  , (LOGIC_OP_AND_INVERTED , "AND_INVERTED")-  , (LOGIC_OP_NO_OP        , "NO_OP")-  , (LOGIC_OP_XOR          , "XOR")-  , (LOGIC_OP_OR           , "OR")-  , (LOGIC_OP_NOR          , "NOR")-  , (LOGIC_OP_EQUIVALENT   , "EQUIVALENT")-  , (LOGIC_OP_INVERT       , "INVERT")-  , (LOGIC_OP_OR_REVERSE   , "OR_REVERSE")+  [ (LOGIC_OP_CLEAR, "CLEAR")+  , (LOGIC_OP_AND, "AND")+  , (LOGIC_OP_AND_REVERSE, "AND_REVERSE")+  , (LOGIC_OP_COPY, "COPY")+  , (LOGIC_OP_AND_INVERTED, "AND_INVERTED")+  , (LOGIC_OP_NO_OP, "NO_OP")+  , (LOGIC_OP_XOR, "XOR")+  , (LOGIC_OP_OR, "OR")+  , (LOGIC_OP_NOR, "NOR")+  , (LOGIC_OP_EQUIVALENT, "EQUIVALENT")+  , (LOGIC_OP_INVERT, "INVERT")+  , (LOGIC_OP_OR_REVERSE, "OR_REVERSE")   , (LOGIC_OP_COPY_INVERTED, "COPY_INVERTED")-  , (LOGIC_OP_OR_INVERTED  , "OR_INVERTED")-  , (LOGIC_OP_NAND         , "NAND")-  , (LOGIC_OP_SET          , "SET")+  , (LOGIC_OP_OR_INVERTED, "OR_INVERTED")+  , (LOGIC_OP_NAND, "NAND")+  , (LOGIC_OP_SET, "SET")   ]  instance Show LogicOp where-  showsPrec = enumShowsPrec enumPrefixLogicOp showTableLogicOp conNameLogicOp (\(LogicOp x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixLogicOp+      showTableLogicOp+      conNameLogicOp+      (\(LogicOp x) -> x)+      (showsPrec 11)  instance Read LogicOp where-  readPrec = enumReadPrec enumPrefixLogicOp showTableLogicOp conNameLogicOp LogicOp-+  readPrec =+    enumReadPrec+      enumPrefixLogicOp+      showTableLogicOp+      conNameLogicOp+      LogicOp
src/Vulkan/Core10/Enums/MemoryHeapFlagBits.hs view
@@ -33,7 +33,8 @@ -- device-local memory. Device-local memory /may/ have different -- performance characteristics than host-local memory, and /may/ support -- different memory property flags.-pattern MEMORY_HEAP_DEVICE_LOCAL_BIT   = MemoryHeapFlagBits 0x00000001+pattern MEMORY_HEAP_DEVICE_LOCAL_BIT = MemoryHeapFlagBits 0x00000001+ -- | 'MEMORY_HEAP_MULTI_INSTANCE_BIT' specifies that in a logical device -- representing more than one physical device, there is a per-physical -- device instance of the heap memory. By default, an allocation from such@@ -49,16 +50,29 @@  showTableMemoryHeapFlagBits :: [(MemoryHeapFlagBits, String)] showTableMemoryHeapFlagBits =-  [(MEMORY_HEAP_DEVICE_LOCAL_BIT, "DEVICE_LOCAL_BIT"), (MEMORY_HEAP_MULTI_INSTANCE_BIT, "MULTI_INSTANCE_BIT")]+  [+    ( MEMORY_HEAP_DEVICE_LOCAL_BIT+    , "DEVICE_LOCAL_BIT"+    )+  ,+    ( MEMORY_HEAP_MULTI_INSTANCE_BIT+    , "MULTI_INSTANCE_BIT"+    )+  ]  instance Show MemoryHeapFlagBits where-  showsPrec = enumShowsPrec enumPrefixMemoryHeapFlagBits-                            showTableMemoryHeapFlagBits-                            conNameMemoryHeapFlagBits-                            (\(MemoryHeapFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixMemoryHeapFlagBits+      showTableMemoryHeapFlagBits+      conNameMemoryHeapFlagBits+      (\(MemoryHeapFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read MemoryHeapFlagBits where   readPrec =-    enumReadPrec enumPrefixMemoryHeapFlagBits showTableMemoryHeapFlagBits conNameMemoryHeapFlagBits MemoryHeapFlagBits-+    enumReadPrec+      enumPrefixMemoryHeapFlagBits+      showTableMemoryHeapFlagBits+      conNameMemoryHeapFlagBits+      MemoryHeapFlagBits
src/Vulkan/Core10/Enums/MemoryMapFlags.hs view
@@ -27,8 +27,6 @@ newtype MemoryMapFlags = MemoryMapFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameMemoryMapFlags :: String conNameMemoryMapFlags = "MemoryMapFlags" @@ -39,12 +37,18 @@ showTableMemoryMapFlags = []  instance Show MemoryMapFlags where-  showsPrec = enumShowsPrec enumPrefixMemoryMapFlags-                            showTableMemoryMapFlags-                            conNameMemoryMapFlags-                            (\(MemoryMapFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixMemoryMapFlags+      showTableMemoryMapFlags+      conNameMemoryMapFlags+      (\(MemoryMapFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read MemoryMapFlags where-  readPrec = enumReadPrec enumPrefixMemoryMapFlags showTableMemoryMapFlags conNameMemoryMapFlags MemoryMapFlags-+  readPrec =+    enumReadPrec+      enumPrefixMemoryMapFlags+      showTableMemoryMapFlags+      conNameMemoryMapFlags+      MemoryMapFlags
src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs view
@@ -64,22 +64,26 @@ -- will be set if and only if the memory type belongs to a heap with the -- 'Vulkan.Core10.Enums.MemoryHeapFlagBits.MEMORY_HEAP_DEVICE_LOCAL_BIT' -- set.-pattern MEMORY_PROPERTY_DEVICE_LOCAL_BIT        = MemoryPropertyFlagBits 0x00000001+pattern MEMORY_PROPERTY_DEVICE_LOCAL_BIT = MemoryPropertyFlagBits 0x00000001+ -- | 'MEMORY_PROPERTY_HOST_VISIBLE_BIT' bit specifies that memory allocated -- with this type /can/ be mapped for host access using -- 'Vulkan.Core10.Memory.mapMemory'.-pattern MEMORY_PROPERTY_HOST_VISIBLE_BIT        = MemoryPropertyFlagBits 0x00000002+pattern MEMORY_PROPERTY_HOST_VISIBLE_BIT = MemoryPropertyFlagBits 0x00000002+ -- | 'MEMORY_PROPERTY_HOST_COHERENT_BIT' bit specifies that the host cache -- management commands 'Vulkan.Core10.Memory.flushMappedMemoryRanges' and -- 'Vulkan.Core10.Memory.invalidateMappedMemoryRanges' are not needed to -- flush host writes to the device or make device writes visible to the -- host, respectively.-pattern MEMORY_PROPERTY_HOST_COHERENT_BIT       = MemoryPropertyFlagBits 0x00000004+pattern MEMORY_PROPERTY_HOST_COHERENT_BIT = MemoryPropertyFlagBits 0x00000004+ -- | 'MEMORY_PROPERTY_HOST_CACHED_BIT' bit specifies that memory allocated -- with this type is cached on the host. Host memory accesses to uncached -- memory are slower than to cached memory, however uncached memory is -- always host coherent.-pattern MEMORY_PROPERTY_HOST_CACHED_BIT         = MemoryPropertyFlagBits 0x00000008+pattern MEMORY_PROPERTY_HOST_CACHED_BIT = MemoryPropertyFlagBits 0x00000008+ -- | 'MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' bit specifies that the memory -- type only allows device access to the memory. Memory types /must/ not -- have both 'MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT' and@@ -87,18 +91,22 @@ -- backing memory /may/ be provided by the implementation lazily as -- specified in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>.-pattern MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT    = MemoryPropertyFlagBits 0x00000010+pattern MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = MemoryPropertyFlagBits 0x00000010+ -- | 'MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV' bit specifies that external -- devices can access this memory directly.-pattern MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV     = MemoryPropertyFlagBits 0x00000100+pattern MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = MemoryPropertyFlagBits 0x00000100+ -- | 'MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD' bit specifies that memory -- allocated with this type is not cached on the device. Uncached device -- memory is always device coherent. pattern MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = MemoryPropertyFlagBits 0x00000080+ -- | 'MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD' bit specifies that device -- accesses to allocations of this memory type are automatically made -- available and visible. pattern MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = MemoryPropertyFlagBits 0x00000040+ -- | 'MEMORY_PROPERTY_PROTECTED_BIT' bit specifies that the memory type only -- allows device access to the memory, and allows protected queue -- operations to access the memory. Memory types /must/ not have@@ -106,7 +114,7 @@ -- 'MEMORY_PROPERTY_HOST_VISIBLE_BIT' set, or -- 'MEMORY_PROPERTY_HOST_COHERENT_BIT' set, or -- 'MEMORY_PROPERTY_HOST_CACHED_BIT' set.-pattern MEMORY_PROPERTY_PROTECTED_BIT           = MemoryPropertyFlagBits 0x00000020+pattern MEMORY_PROPERTY_PROTECTED_BIT = MemoryPropertyFlagBits 0x00000020  conNameMemoryPropertyFlagBits :: String conNameMemoryPropertyFlagBits = "MemoryPropertyFlagBits"@@ -116,27 +124,57 @@  showTableMemoryPropertyFlagBits :: [(MemoryPropertyFlagBits, String)] showTableMemoryPropertyFlagBits =-  [ (MEMORY_PROPERTY_DEVICE_LOCAL_BIT       , "DEVICE_LOCAL_BIT")-  , (MEMORY_PROPERTY_HOST_VISIBLE_BIT       , "HOST_VISIBLE_BIT")-  , (MEMORY_PROPERTY_HOST_COHERENT_BIT      , "HOST_COHERENT_BIT")-  , (MEMORY_PROPERTY_HOST_CACHED_BIT        , "HOST_CACHED_BIT")-  , (MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT   , "LAZILY_ALLOCATED_BIT")-  , (MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV    , "RDMA_CAPABLE_BIT_NV")-  , (MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD, "DEVICE_UNCACHED_BIT_AMD")-  , (MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD, "DEVICE_COHERENT_BIT_AMD")-  , (MEMORY_PROPERTY_PROTECTED_BIT          , "PROTECTED_BIT")+  [+    ( MEMORY_PROPERTY_DEVICE_LOCAL_BIT+    , "DEVICE_LOCAL_BIT"+    )+  ,+    ( MEMORY_PROPERTY_HOST_VISIBLE_BIT+    , "HOST_VISIBLE_BIT"+    )+  ,+    ( MEMORY_PROPERTY_HOST_COHERENT_BIT+    , "HOST_COHERENT_BIT"+    )+  ,+    ( MEMORY_PROPERTY_HOST_CACHED_BIT+    , "HOST_CACHED_BIT"+    )+  ,+    ( MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT+    , "LAZILY_ALLOCATED_BIT"+    )+  ,+    ( MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV+    , "RDMA_CAPABLE_BIT_NV"+    )+  ,+    ( MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD+    , "DEVICE_UNCACHED_BIT_AMD"+    )+  ,+    ( MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD+    , "DEVICE_COHERENT_BIT_AMD"+    )+  ,+    ( MEMORY_PROPERTY_PROTECTED_BIT+    , "PROTECTED_BIT"+    )   ]  instance Show MemoryPropertyFlagBits where-  showsPrec = enumShowsPrec enumPrefixMemoryPropertyFlagBits-                            showTableMemoryPropertyFlagBits-                            conNameMemoryPropertyFlagBits-                            (\(MemoryPropertyFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixMemoryPropertyFlagBits+      showTableMemoryPropertyFlagBits+      conNameMemoryPropertyFlagBits+      (\(MemoryPropertyFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read MemoryPropertyFlagBits where-  readPrec = enumReadPrec enumPrefixMemoryPropertyFlagBits-                          showTableMemoryPropertyFlagBits-                          conNameMemoryPropertyFlagBits-                          MemoryPropertyFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixMemoryPropertyFlagBits+      showTableMemoryPropertyFlagBits+      conNameMemoryPropertyFlagBits+      MemoryPropertyFlagBits
src/Vulkan/Core10/Enums/ObjectType.hs view
@@ -26,6 +26,8 @@                                                   , OBJECT_TYPE_DESCRIPTOR_SET                                                   , OBJECT_TYPE_FRAMEBUFFER                                                   , OBJECT_TYPE_COMMAND_POOL+                                                  , OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV+                                                  , OBJECT_TYPE_MICROMAP_EXT                                                   , OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA                                                   , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV                                                   , OBJECT_TYPE_DEFERRED_OPERATION_KHR@@ -147,6 +149,8 @@ -- +-----------------------------------------------+-----------------------------------------------------------+ -- | 'OBJECT_TYPE_PRIVATE_DATA_SLOT'               | 'Vulkan.Core13.Handles.PrivateDataSlot'                   | -- +-----------------------------------------------+-----------------------------------------------------------++-- | 'OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV'         | 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'          |+-- +-----------------------------------------------+-----------------------------------------------------------+ -- -- 'ObjectType' and Vulkan Handle Relationship --@@ -164,138 +168,193 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_UNKNOWN"-pattern OBJECT_TYPE_UNKNOWN                         = ObjectType 0+pattern OBJECT_TYPE_UNKNOWN = ObjectType 0+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INSTANCE"-pattern OBJECT_TYPE_INSTANCE                        = ObjectType 1+pattern OBJECT_TYPE_INSTANCE = ObjectType 1+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PHYSICAL_DEVICE"-pattern OBJECT_TYPE_PHYSICAL_DEVICE                 = ObjectType 2+pattern OBJECT_TYPE_PHYSICAL_DEVICE = ObjectType 2+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEVICE"-pattern OBJECT_TYPE_DEVICE                          = ObjectType 3+pattern OBJECT_TYPE_DEVICE = ObjectType 3+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_QUEUE"-pattern OBJECT_TYPE_QUEUE                           = ObjectType 4+pattern OBJECT_TYPE_QUEUE = ObjectType 4+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SEMAPHORE"-pattern OBJECT_TYPE_SEMAPHORE                       = ObjectType 5+pattern OBJECT_TYPE_SEMAPHORE = ObjectType 5+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_COMMAND_BUFFER"-pattern OBJECT_TYPE_COMMAND_BUFFER                  = ObjectType 6+pattern OBJECT_TYPE_COMMAND_BUFFER = ObjectType 6+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_FENCE"-pattern OBJECT_TYPE_FENCE                           = ObjectType 7+pattern OBJECT_TYPE_FENCE = ObjectType 7+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEVICE_MEMORY"-pattern OBJECT_TYPE_DEVICE_MEMORY                   = ObjectType 8+pattern OBJECT_TYPE_DEVICE_MEMORY = ObjectType 8+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER"-pattern OBJECT_TYPE_BUFFER                          = ObjectType 9+pattern OBJECT_TYPE_BUFFER = ObjectType 9+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_IMAGE"-pattern OBJECT_TYPE_IMAGE                           = ObjectType 10+pattern OBJECT_TYPE_IMAGE = ObjectType 10+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_EVENT"-pattern OBJECT_TYPE_EVENT                           = ObjectType 11+pattern OBJECT_TYPE_EVENT = ObjectType 11+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_QUERY_POOL"-pattern OBJECT_TYPE_QUERY_POOL                      = ObjectType 12+pattern OBJECT_TYPE_QUERY_POOL = ObjectType 12+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER_VIEW"-pattern OBJECT_TYPE_BUFFER_VIEW                     = ObjectType 13+pattern OBJECT_TYPE_BUFFER_VIEW = ObjectType 13+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_IMAGE_VIEW"-pattern OBJECT_TYPE_IMAGE_VIEW                      = ObjectType 14+pattern OBJECT_TYPE_IMAGE_VIEW = ObjectType 14+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SHADER_MODULE"-pattern OBJECT_TYPE_SHADER_MODULE                   = ObjectType 15+pattern OBJECT_TYPE_SHADER_MODULE = ObjectType 15+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE_CACHE"-pattern OBJECT_TYPE_PIPELINE_CACHE                  = ObjectType 16+pattern OBJECT_TYPE_PIPELINE_CACHE = ObjectType 16+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE_LAYOUT"-pattern OBJECT_TYPE_PIPELINE_LAYOUT                 = ObjectType 17+pattern OBJECT_TYPE_PIPELINE_LAYOUT = ObjectType 17+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_RENDER_PASS"-pattern OBJECT_TYPE_RENDER_PASS                     = ObjectType 18+pattern OBJECT_TYPE_RENDER_PASS = ObjectType 18+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PIPELINE"-pattern OBJECT_TYPE_PIPELINE                        = ObjectType 19+pattern OBJECT_TYPE_PIPELINE = ObjectType 19+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT"-pattern OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT           = ObjectType 20+pattern OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = ObjectType 20+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SAMPLER"-pattern OBJECT_TYPE_SAMPLER                         = ObjectType 21+pattern OBJECT_TYPE_SAMPLER = ObjectType 21+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_POOL"-pattern OBJECT_TYPE_DESCRIPTOR_POOL                 = ObjectType 22+pattern OBJECT_TYPE_DESCRIPTOR_POOL = ObjectType 22+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DESCRIPTOR_SET"-pattern OBJECT_TYPE_DESCRIPTOR_SET                  = ObjectType 23+pattern OBJECT_TYPE_DESCRIPTOR_SET = ObjectType 23+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_FRAMEBUFFER"-pattern OBJECT_TYPE_FRAMEBUFFER                     = ObjectType 24+pattern OBJECT_TYPE_FRAMEBUFFER = ObjectType 24+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_COMMAND_POOL"-pattern OBJECT_TYPE_COMMAND_POOL                    = ObjectType 25+pattern OBJECT_TYPE_COMMAND_POOL = ObjectType 25++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV"+pattern OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = ObjectType 1000464000++-- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_MICROMAP_EXT"+pattern OBJECT_TYPE_MICROMAP_EXT = ObjectType 1000396000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA"-pattern OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA       = ObjectType 1000366000+pattern OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = ObjectType 1000366000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV"-pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV     = ObjectType 1000277000+pattern OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = ObjectType 1000277000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR"-pattern OBJECT_TYPE_DEFERRED_OPERATION_KHR          = ObjectType 1000268000+pattern OBJECT_TYPE_DEFERRED_OPERATION_KHR = ObjectType 1000268000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL" pattern OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = ObjectType 1000210000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV"-pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_NV       = ObjectType 1000165000+pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = ObjectType 1000165000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT"-pattern OBJECT_TYPE_VALIDATION_CACHE_EXT            = ObjectType 1000160000+pattern OBJECT_TYPE_VALIDATION_CACHE_EXT = ObjectType 1000160000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR"-pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR      = ObjectType 1000150000+pattern OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = ObjectType 1000150000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT"-pattern OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT       = ObjectType 1000128000+pattern OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = ObjectType 1000128000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CU_FUNCTION_NVX"-pattern OBJECT_TYPE_CU_FUNCTION_NVX                 = ObjectType 1000029001+pattern OBJECT_TYPE_CU_FUNCTION_NVX = ObjectType 1000029001+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_CU_MODULE_NVX"-pattern OBJECT_TYPE_CU_MODULE_NVX                   = ObjectType 1000029000+pattern OBJECT_TYPE_CU_MODULE_NVX = ObjectType 1000029000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT"-pattern OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT       = ObjectType 1000011000+pattern OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = ObjectType 1000011000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DISPLAY_MODE_KHR"-pattern OBJECT_TYPE_DISPLAY_MODE_KHR                = ObjectType 1000002001+pattern OBJECT_TYPE_DISPLAY_MODE_KHR = ObjectType 1000002001+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_DISPLAY_KHR"-pattern OBJECT_TYPE_DISPLAY_KHR                     = ObjectType 1000002000+pattern OBJECT_TYPE_DISPLAY_KHR = ObjectType 1000002000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SWAPCHAIN_KHR"-pattern OBJECT_TYPE_SWAPCHAIN_KHR                   = ObjectType 1000001000+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+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+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+pattern OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = ObjectType 1000085000+ -- No documentation found for Nested "VkObjectType" "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION"-pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION        = ObjectType 1000156000-{-# complete OBJECT_TYPE_UNKNOWN,-             OBJECT_TYPE_INSTANCE,-             OBJECT_TYPE_PHYSICAL_DEVICE,-             OBJECT_TYPE_DEVICE,-             OBJECT_TYPE_QUEUE,-             OBJECT_TYPE_SEMAPHORE,-             OBJECT_TYPE_COMMAND_BUFFER,-             OBJECT_TYPE_FENCE,-             OBJECT_TYPE_DEVICE_MEMORY,-             OBJECT_TYPE_BUFFER,-             OBJECT_TYPE_IMAGE,-             OBJECT_TYPE_EVENT,-             OBJECT_TYPE_QUERY_POOL,-             OBJECT_TYPE_BUFFER_VIEW,-             OBJECT_TYPE_IMAGE_VIEW,-             OBJECT_TYPE_SHADER_MODULE,-             OBJECT_TYPE_PIPELINE_CACHE,-             OBJECT_TYPE_PIPELINE_LAYOUT,-             OBJECT_TYPE_RENDER_PASS,-             OBJECT_TYPE_PIPELINE,-             OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT,-             OBJECT_TYPE_SAMPLER,-             OBJECT_TYPE_DESCRIPTOR_POOL,-             OBJECT_TYPE_DESCRIPTOR_SET,-             OBJECT_TYPE_FRAMEBUFFER,-             OBJECT_TYPE_COMMAND_POOL,-             OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA,-             OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV,-             OBJECT_TYPE_DEFERRED_OPERATION_KHR,-             OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL,-             OBJECT_TYPE_ACCELERATION_STRUCTURE_NV,-             OBJECT_TYPE_VALIDATION_CACHE_EXT,-             OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,-             OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT,-             OBJECT_TYPE_CU_FUNCTION_NVX,-             OBJECT_TYPE_CU_MODULE_NVX,-             OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT,-             OBJECT_TYPE_DISPLAY_MODE_KHR,-             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 #-}+pattern OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = ObjectType 1000156000 +{-# COMPLETE+  OBJECT_TYPE_UNKNOWN+  , OBJECT_TYPE_INSTANCE+  , OBJECT_TYPE_PHYSICAL_DEVICE+  , OBJECT_TYPE_DEVICE+  , OBJECT_TYPE_QUEUE+  , OBJECT_TYPE_SEMAPHORE+  , OBJECT_TYPE_COMMAND_BUFFER+  , OBJECT_TYPE_FENCE+  , OBJECT_TYPE_DEVICE_MEMORY+  , OBJECT_TYPE_BUFFER+  , OBJECT_TYPE_IMAGE+  , OBJECT_TYPE_EVENT+  , OBJECT_TYPE_QUERY_POOL+  , OBJECT_TYPE_BUFFER_VIEW+  , OBJECT_TYPE_IMAGE_VIEW+  , OBJECT_TYPE_SHADER_MODULE+  , OBJECT_TYPE_PIPELINE_CACHE+  , OBJECT_TYPE_PIPELINE_LAYOUT+  , OBJECT_TYPE_RENDER_PASS+  , OBJECT_TYPE_PIPELINE+  , OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT+  , OBJECT_TYPE_SAMPLER+  , OBJECT_TYPE_DESCRIPTOR_POOL+  , OBJECT_TYPE_DESCRIPTOR_SET+  , OBJECT_TYPE_FRAMEBUFFER+  , OBJECT_TYPE_COMMAND_POOL+  , OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV+  , OBJECT_TYPE_MICROMAP_EXT+  , OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA+  , OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV+  , OBJECT_TYPE_DEFERRED_OPERATION_KHR+  , OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL+  , OBJECT_TYPE_ACCELERATION_STRUCTURE_NV+  , OBJECT_TYPE_VALIDATION_CACHE_EXT+  , OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR+  , OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT+  , OBJECT_TYPE_CU_FUNCTION_NVX+  , OBJECT_TYPE_CU_MODULE_NVX+  , OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT+  , OBJECT_TYPE_DISPLAY_MODE_KHR+  , 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+  #-}+ conNameObjectType :: String conNameObjectType = "ObjectType" @@ -304,56 +363,106 @@  showTableObjectType :: [(ObjectType, String)] showTableObjectType =-  [ (OBJECT_TYPE_UNKNOWN                        , "UNKNOWN")-  , (OBJECT_TYPE_INSTANCE                       , "INSTANCE")-  , (OBJECT_TYPE_PHYSICAL_DEVICE                , "PHYSICAL_DEVICE")-  , (OBJECT_TYPE_DEVICE                         , "DEVICE")-  , (OBJECT_TYPE_QUEUE                          , "QUEUE")-  , (OBJECT_TYPE_SEMAPHORE                      , "SEMAPHORE")-  , (OBJECT_TYPE_COMMAND_BUFFER                 , "COMMAND_BUFFER")-  , (OBJECT_TYPE_FENCE                          , "FENCE")-  , (OBJECT_TYPE_DEVICE_MEMORY                  , "DEVICE_MEMORY")-  , (OBJECT_TYPE_BUFFER                         , "BUFFER")-  , (OBJECT_TYPE_IMAGE                          , "IMAGE")-  , (OBJECT_TYPE_EVENT                          , "EVENT")-  , (OBJECT_TYPE_QUERY_POOL                     , "QUERY_POOL")-  , (OBJECT_TYPE_BUFFER_VIEW                    , "BUFFER_VIEW")-  , (OBJECT_TYPE_IMAGE_VIEW                     , "IMAGE_VIEW")-  , (OBJECT_TYPE_SHADER_MODULE                  , "SHADER_MODULE")-  , (OBJECT_TYPE_PIPELINE_CACHE                 , "PIPELINE_CACHE")-  , (OBJECT_TYPE_PIPELINE_LAYOUT                , "PIPELINE_LAYOUT")-  , (OBJECT_TYPE_RENDER_PASS                    , "RENDER_PASS")-  , (OBJECT_TYPE_PIPELINE                       , "PIPELINE")-  , (OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT          , "DESCRIPTOR_SET_LAYOUT")-  , (OBJECT_TYPE_SAMPLER                        , "SAMPLER")-  , (OBJECT_TYPE_DESCRIPTOR_POOL                , "DESCRIPTOR_POOL")-  , (OBJECT_TYPE_DESCRIPTOR_SET                 , "DESCRIPTOR_SET")-  , (OBJECT_TYPE_FRAMEBUFFER                    , "FRAMEBUFFER")-  , (OBJECT_TYPE_COMMAND_POOL                   , "COMMAND_POOL")-  , (OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA      , "BUFFER_COLLECTION_FUCHSIA")-  , (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")-  , (OBJECT_TYPE_ACCELERATION_STRUCTURE_NV      , "ACCELERATION_STRUCTURE_NV")-  , (OBJECT_TYPE_VALIDATION_CACHE_EXT           , "VALIDATION_CACHE_EXT")-  , (OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR     , "ACCELERATION_STRUCTURE_KHR")-  , (OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT      , "DEBUG_UTILS_MESSENGER_EXT")-  , (OBJECT_TYPE_CU_FUNCTION_NVX                , "CU_FUNCTION_NVX")-  , (OBJECT_TYPE_CU_MODULE_NVX                  , "CU_MODULE_NVX")-  , (OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT      , "DEBUG_REPORT_CALLBACK_EXT")-  , (OBJECT_TYPE_DISPLAY_MODE_KHR               , "DISPLAY_MODE_KHR")-  , (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")+  [ (OBJECT_TYPE_UNKNOWN, "UNKNOWN")+  , (OBJECT_TYPE_INSTANCE, "INSTANCE")+  , (OBJECT_TYPE_PHYSICAL_DEVICE, "PHYSICAL_DEVICE")+  , (OBJECT_TYPE_DEVICE, "DEVICE")+  , (OBJECT_TYPE_QUEUE, "QUEUE")+  , (OBJECT_TYPE_SEMAPHORE, "SEMAPHORE")+  , (OBJECT_TYPE_COMMAND_BUFFER, "COMMAND_BUFFER")+  , (OBJECT_TYPE_FENCE, "FENCE")+  , (OBJECT_TYPE_DEVICE_MEMORY, "DEVICE_MEMORY")+  , (OBJECT_TYPE_BUFFER, "BUFFER")+  , (OBJECT_TYPE_IMAGE, "IMAGE")+  , (OBJECT_TYPE_EVENT, "EVENT")+  , (OBJECT_TYPE_QUERY_POOL, "QUERY_POOL")+  , (OBJECT_TYPE_BUFFER_VIEW, "BUFFER_VIEW")+  , (OBJECT_TYPE_IMAGE_VIEW, "IMAGE_VIEW")+  , (OBJECT_TYPE_SHADER_MODULE, "SHADER_MODULE")+  , (OBJECT_TYPE_PIPELINE_CACHE, "PIPELINE_CACHE")+  , (OBJECT_TYPE_PIPELINE_LAYOUT, "PIPELINE_LAYOUT")+  , (OBJECT_TYPE_RENDER_PASS, "RENDER_PASS")+  , (OBJECT_TYPE_PIPELINE, "PIPELINE")+  ,+    ( OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT+    , "DESCRIPTOR_SET_LAYOUT"+    )+  , (OBJECT_TYPE_SAMPLER, "SAMPLER")+  , (OBJECT_TYPE_DESCRIPTOR_POOL, "DESCRIPTOR_POOL")+  , (OBJECT_TYPE_DESCRIPTOR_SET, "DESCRIPTOR_SET")+  , (OBJECT_TYPE_FRAMEBUFFER, "FRAMEBUFFER")+  , (OBJECT_TYPE_COMMAND_POOL, "COMMAND_POOL")+  ,+    ( OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV+    , "OPTICAL_FLOW_SESSION_NV"+    )+  , (OBJECT_TYPE_MICROMAP_EXT, "MICROMAP_EXT")+  ,+    ( OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA+    , "BUFFER_COLLECTION_FUCHSIA"+    )+  ,+    ( 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"+    )+  ,+    ( OBJECT_TYPE_ACCELERATION_STRUCTURE_NV+    , "ACCELERATION_STRUCTURE_NV"+    )+  ,+    ( OBJECT_TYPE_VALIDATION_CACHE_EXT+    , "VALIDATION_CACHE_EXT"+    )+  ,+    ( OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR+    , "ACCELERATION_STRUCTURE_KHR"+    )+  ,+    ( OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT+    , "DEBUG_UTILS_MESSENGER_EXT"+    )+  , (OBJECT_TYPE_CU_FUNCTION_NVX, "CU_FUNCTION_NVX")+  , (OBJECT_TYPE_CU_MODULE_NVX, "CU_MODULE_NVX")+  ,+    ( OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT+    , "DEBUG_REPORT_CALLBACK_EXT"+    )+  , (OBJECT_TYPE_DISPLAY_MODE_KHR, "DISPLAY_MODE_KHR")+  , (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"+    )   ]  instance Show ObjectType where   showsPrec =-    enumShowsPrec enumPrefixObjectType showTableObjectType conNameObjectType (\(ObjectType x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixObjectType+      showTableObjectType+      conNameObjectType+      (\(ObjectType x) -> x)+      (showsPrec 11)  instance Read ObjectType where-  readPrec = enumReadPrec enumPrefixObjectType showTableObjectType conNameObjectType ObjectType-+  readPrec =+    enumReadPrec+      enumPrefixObjectType+      showTableObjectType+      conNameObjectType+      ObjectType
src/Vulkan/Core10/Enums/PhysicalDeviceType.hs view
@@ -35,25 +35,33 @@  -- | 'PHYSICAL_DEVICE_TYPE_OTHER' - the device does not match any other -- available types.-pattern PHYSICAL_DEVICE_TYPE_OTHER          = PhysicalDeviceType 0+pattern PHYSICAL_DEVICE_TYPE_OTHER = PhysicalDeviceType 0+ -- | 'PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU' - the device is typically one -- embedded in or tightly coupled with the host. pattern PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = PhysicalDeviceType 1+ -- | 'PHYSICAL_DEVICE_TYPE_DISCRETE_GPU' - the device is typically a separate -- processor connected to the host via an interlink.-pattern PHYSICAL_DEVICE_TYPE_DISCRETE_GPU   = PhysicalDeviceType 2+pattern PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = PhysicalDeviceType 2+ -- | 'PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU' - the device is typically a virtual -- node in a virtualization environment.-pattern PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU    = PhysicalDeviceType 3+pattern PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = PhysicalDeviceType 3+ -- | 'PHYSICAL_DEVICE_TYPE_CPU' - the device is typically running on the same -- processors as the host.-pattern PHYSICAL_DEVICE_TYPE_CPU            = PhysicalDeviceType 4-{-# complete PHYSICAL_DEVICE_TYPE_OTHER,-             PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU,-             PHYSICAL_DEVICE_TYPE_DISCRETE_GPU,-             PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU,-             PHYSICAL_DEVICE_TYPE_CPU :: PhysicalDeviceType #-}+pattern PHYSICAL_DEVICE_TYPE_CPU = PhysicalDeviceType 4 +{-# COMPLETE+  PHYSICAL_DEVICE_TYPE_OTHER+  , PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU+  , PHYSICAL_DEVICE_TYPE_DISCRETE_GPU+  , PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU+  , PHYSICAL_DEVICE_TYPE_CPU ::+    PhysicalDeviceType+  #-}+ conNamePhysicalDeviceType :: String conNamePhysicalDeviceType = "PhysicalDeviceType" @@ -62,21 +70,35 @@  showTablePhysicalDeviceType :: [(PhysicalDeviceType, String)] showTablePhysicalDeviceType =-  [ (PHYSICAL_DEVICE_TYPE_OTHER         , "OTHER")-  , (PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, "INTEGRATED_GPU")-  , (PHYSICAL_DEVICE_TYPE_DISCRETE_GPU  , "DISCRETE_GPU")-  , (PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU   , "VIRTUAL_GPU")-  , (PHYSICAL_DEVICE_TYPE_CPU           , "CPU")+  [ (PHYSICAL_DEVICE_TYPE_OTHER, "OTHER")+  ,+    ( PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU+    , "INTEGRATED_GPU"+    )+  ,+    ( PHYSICAL_DEVICE_TYPE_DISCRETE_GPU+    , "DISCRETE_GPU"+    )+  ,+    ( PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU+    , "VIRTUAL_GPU"+    )+  , (PHYSICAL_DEVICE_TYPE_CPU, "CPU")   ]  instance Show PhysicalDeviceType where-  showsPrec = enumShowsPrec enumPrefixPhysicalDeviceType-                            showTablePhysicalDeviceType-                            conNamePhysicalDeviceType-                            (\(PhysicalDeviceType x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPhysicalDeviceType+      showTablePhysicalDeviceType+      conNamePhysicalDeviceType+      (\(PhysicalDeviceType x) -> x)+      (showsPrec 11)  instance Read PhysicalDeviceType where   readPrec =-    enumReadPrec enumPrefixPhysicalDeviceType showTablePhysicalDeviceType conNamePhysicalDeviceType PhysicalDeviceType-+    enumReadPrec+      enumPrefixPhysicalDeviceType+      showTablePhysicalDeviceType+      conNamePhysicalDeviceType+      PhysicalDeviceType
src/Vulkan/Core10/Enums/PipelineBindPoint.hs view
@@ -36,20 +36,27 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'PIPELINE_BIND_POINT_GRAPHICS' specifies binding as a graphics pipeline.-pattern PIPELINE_BIND_POINT_GRAPHICS               = PipelineBindPoint 0+pattern PIPELINE_BIND_POINT_GRAPHICS = PipelineBindPoint 0+ -- | 'PIPELINE_BIND_POINT_COMPUTE' specifies binding as a compute pipeline.-pattern PIPELINE_BIND_POINT_COMPUTE                = PipelineBindPoint 1+pattern PIPELINE_BIND_POINT_COMPUTE = PipelineBindPoint 1+ -- | 'PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI' specifies binding as a -- subpass shading pipeline. pattern PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = PipelineBindPoint 1000369003+ -- | 'PIPELINE_BIND_POINT_RAY_TRACING_KHR' specifies binding as a ray tracing -- pipeline.-pattern PIPELINE_BIND_POINT_RAY_TRACING_KHR        = PipelineBindPoint 1000165000-{-# complete PIPELINE_BIND_POINT_GRAPHICS,-             PIPELINE_BIND_POINT_COMPUTE,-             PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI,-             PIPELINE_BIND_POINT_RAY_TRACING_KHR :: PipelineBindPoint #-}+pattern PIPELINE_BIND_POINT_RAY_TRACING_KHR = PipelineBindPoint 1000165000 +{-# COMPLETE+  PIPELINE_BIND_POINT_GRAPHICS+  , PIPELINE_BIND_POINT_COMPUTE+  , PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI+  , PIPELINE_BIND_POINT_RAY_TRACING_KHR ::+    PipelineBindPoint+  #-}+ conNamePipelineBindPoint :: String conNamePipelineBindPoint = "PipelineBindPoint" @@ -58,20 +65,31 @@  showTablePipelineBindPoint :: [(PipelineBindPoint, String)] showTablePipelineBindPoint =-  [ (PIPELINE_BIND_POINT_GRAPHICS              , "GRAPHICS")-  , (PIPELINE_BIND_POINT_COMPUTE               , "COMPUTE")-  , (PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI, "SUBPASS_SHADING_HUAWEI")-  , (PIPELINE_BIND_POINT_RAY_TRACING_KHR       , "RAY_TRACING_KHR")+  [ (PIPELINE_BIND_POINT_GRAPHICS, "GRAPHICS")+  , (PIPELINE_BIND_POINT_COMPUTE, "COMPUTE")+  ,+    ( PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI+    , "SUBPASS_SHADING_HUAWEI"+    )+  ,+    ( PIPELINE_BIND_POINT_RAY_TRACING_KHR+    , "RAY_TRACING_KHR"+    )   ]  instance Show PipelineBindPoint where-  showsPrec = enumShowsPrec enumPrefixPipelineBindPoint-                            showTablePipelineBindPoint-                            conNamePipelineBindPoint-                            (\(PipelineBindPoint x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineBindPoint+      showTablePipelineBindPoint+      conNamePipelineBindPoint+      (\(PipelineBindPoint x) -> x)+      (showsPrec 11)  instance Read PipelineBindPoint where   readPrec =-    enumReadPrec enumPrefixPipelineBindPoint showTablePipelineBindPoint conNamePipelineBindPoint PipelineBindPoint-+    enumReadPrec+      enumPrefixPipelineBindPoint+      showTablePipelineBindPoint+      conNamePipelineBindPoint+      PipelineBindPoint
src/Vulkan/Core10/Enums/PipelineCacheCreateFlagBits.hs view
@@ -45,18 +45,26 @@ enumPrefixPipelineCacheCreateFlagBits = "PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT"  showTablePipelineCacheCreateFlagBits :: [(PipelineCacheCreateFlagBits, String)]-showTablePipelineCacheCreateFlagBits = [(PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT, "")]+showTablePipelineCacheCreateFlagBits =+  [+    ( PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT+    , ""+    )+  ]  instance Show PipelineCacheCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixPipelineCacheCreateFlagBits-                            showTablePipelineCacheCreateFlagBits-                            conNamePipelineCacheCreateFlagBits-                            (\(PipelineCacheCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCacheCreateFlagBits+      showTablePipelineCacheCreateFlagBits+      conNamePipelineCacheCreateFlagBits+      (\(PipelineCacheCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCacheCreateFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineCacheCreateFlagBits-                          showTablePipelineCacheCreateFlagBits-                          conNamePipelineCacheCreateFlagBits-                          PipelineCacheCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCacheCreateFlagBits+      showTablePipelineCacheCreateFlagBits+      conNamePipelineCacheCreateFlagBits+      PipelineCacheCreateFlagBits
src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs view
@@ -23,13 +23,15 @@ -- 'Vulkan.Core10.PipelineCache.getPipelineCacheData' newtype PipelineCacheHeaderVersion = PipelineCacheHeaderVersion 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  -- | 'PIPELINE_CACHE_HEADER_VERSION_ONE' specifies version one of the -- pipeline cache. pattern PIPELINE_CACHE_HEADER_VERSION_ONE = PipelineCacheHeaderVersion 1-{-# complete PIPELINE_CACHE_HEADER_VERSION_ONE :: PipelineCacheHeaderVersion #-} +{-# COMPLETE PIPELINE_CACHE_HEADER_VERSION_ONE :: PipelineCacheHeaderVersion #-}+ conNamePipelineCacheHeaderVersion :: String conNamePipelineCacheHeaderVersion = "PipelineCacheHeaderVersion" @@ -40,15 +42,18 @@ showTablePipelineCacheHeaderVersion = [(PIPELINE_CACHE_HEADER_VERSION_ONE, "")]  instance Show PipelineCacheHeaderVersion where-  showsPrec = enumShowsPrec enumPrefixPipelineCacheHeaderVersion-                            showTablePipelineCacheHeaderVersion-                            conNamePipelineCacheHeaderVersion-                            (\(PipelineCacheHeaderVersion x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCacheHeaderVersion+      showTablePipelineCacheHeaderVersion+      conNamePipelineCacheHeaderVersion+      (\(PipelineCacheHeaderVersion x) -> x)+      (showsPrec 11)  instance Read PipelineCacheHeaderVersion where-  readPrec = enumReadPrec enumPrefixPipelineCacheHeaderVersion-                          showTablePipelineCacheHeaderVersion-                          conNamePipelineCacheHeaderVersion-                          PipelineCacheHeaderVersion-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCacheHeaderVersion+      showTablePipelineCacheHeaderVersion+      conNamePipelineCacheHeaderVersion+      PipelineCacheHeaderVersion
src/Vulkan/Core10/Enums/PipelineColorBlendStateCreateFlagBits.hs view
@@ -35,30 +35,35 @@ -- custom blending operations in a fragment shader. See -- <https://registry.khronos.org/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_EXT =-  PipelineColorBlendStateCreateFlagBits 0x00000001+pattern PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = PipelineColorBlendStateCreateFlagBits 0x00000001  conNamePipelineColorBlendStateCreateFlagBits :: String conNamePipelineColorBlendStateCreateFlagBits = "PipelineColorBlendStateCreateFlagBits"  enumPrefixPipelineColorBlendStateCreateFlagBits :: String-enumPrefixPipelineColorBlendStateCreateFlagBits =-  "PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"+enumPrefixPipelineColorBlendStateCreateFlagBits = "PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT"  showTablePipelineColorBlendStateCreateFlagBits :: [(PipelineColorBlendStateCreateFlagBits, String)] showTablePipelineColorBlendStateCreateFlagBits =-  [(PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT, "")]+  [+    ( PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT+    , ""+    )+  ]  instance Show PipelineColorBlendStateCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixPipelineColorBlendStateCreateFlagBits-                            showTablePipelineColorBlendStateCreateFlagBits-                            conNamePipelineColorBlendStateCreateFlagBits-                            (\(PipelineColorBlendStateCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineColorBlendStateCreateFlagBits+      showTablePipelineColorBlendStateCreateFlagBits+      conNamePipelineColorBlendStateCreateFlagBits+      (\(PipelineColorBlendStateCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineColorBlendStateCreateFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineColorBlendStateCreateFlagBits-                          showTablePipelineColorBlendStateCreateFlagBits-                          conNamePipelineColorBlendStateCreateFlagBits-                          PipelineColorBlendStateCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineColorBlendStateCreateFlagBits+      showTablePipelineColorBlendStateCreateFlagBits+      conNamePipelineColorBlendStateCreateFlagBits+      PipelineColorBlendStateCreateFlagBits
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -4,6 +4,9 @@                                                    , PipelineCreateFlagBits( PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                                                                            , PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                                                                            , PIPELINE_CREATE_DERIVATIVE_BIT+                                                                           , PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT+                                                                           , PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT+                                                                           , PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT                                                                            , PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT                                                                            , PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT                                                                            , PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV@@ -185,6 +188,16 @@ --     specifies that the pipeline /may/ be used with an attachment --     feedback loop including depth-stencil attachments. --+-- -   'PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT' specifies+--     that the pipeline /can/ be used with acceleration structures which+--     reference an opacity micromap array.+--+-- -   'PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT' specifies that the+--     pipeline /must/ not be bound to a protected command buffer.+--+-- -   'PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT' specifies that the+--     pipeline /must/ not be bound to an unprotected command buffer.+-- -- 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@@ -220,57 +233,91 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT"-pattern PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT                    = PipelineCreateFlagBits 0x00000001+pattern PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = PipelineCreateFlagBits 0x00000001+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT"-pattern PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT                       = PipelineCreateFlagBits 0x00000002+pattern PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = PipelineCreateFlagBits 0x00000002+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DERIVATIVE_BIT"-pattern PIPELINE_CREATE_DERIVATIVE_BIT                              = PipelineCreateFlagBits 0x00000004+pattern PIPELINE_CREATE_DERIVATIVE_BIT = PipelineCreateFlagBits 0x00000004++-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT"+pattern PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = PipelineCreateFlagBits 0x40000000++-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT"+pattern PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = PipelineCreateFlagBits 0x08000000++-- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"+pattern PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = PipelineCreateFlagBits 0x01000000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT" pattern PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits 0x04000000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"-pattern PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT      = PipelineCreateFlagBits 0x02000000+pattern PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = PipelineCreateFlagBits 0x02000000+ -- 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+pattern PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = PipelineCreateFlagBits 0x00100000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT"-pattern PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT              = PipelineCreateFlagBits 0x00000400+pattern PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = PipelineCreateFlagBits 0x00000400+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT"-pattern PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT  = PipelineCreateFlagBits 0x00800000+pattern PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = PipelineCreateFlagBits 0x00800000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR"-pattern PIPELINE_CREATE_LIBRARY_BIT_KHR                             = PipelineCreateFlagBits 0x00000800+pattern PIPELINE_CREATE_LIBRARY_BIT_KHR = PipelineCreateFlagBits 0x00000800+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV"-pattern PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV                    = PipelineCreateFlagBits 0x00040000+pattern PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = PipelineCreateFlagBits 0x00040000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR"-pattern PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR    = PipelineCreateFlagBits 0x00000080+pattern PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = PipelineCreateFlagBits 0x00000080+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR"-pattern PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR                  = PipelineCreateFlagBits 0x00000040+pattern PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = PipelineCreateFlagBits 0x00000040+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV"-pattern PIPELINE_CREATE_DEFER_COMPILE_BIT_NV                        = PipelineCreateFlagBits 0x00000020+pattern PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = PipelineCreateFlagBits 0x00000020+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" pattern PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = PipelineCreateFlagBits 0x00080000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR"-pattern PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR              = PipelineCreateFlagBits 0x00002000+pattern PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = PipelineCreateFlagBits 0x00002000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"-pattern PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR          = PipelineCreateFlagBits 0x00001000+pattern PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = PipelineCreateFlagBits 0x00001000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = PipelineCreateFlagBits 0x00020000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"-pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR    = PipelineCreateFlagBits 0x00010000+pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = PipelineCreateFlagBits 0x00010000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits 0x00008000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" pattern PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = PipelineCreateFlagBits 0x00004000+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT" 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+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+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+pattern PIPELINE_CREATE_DISPATCH_BASE_BIT = PipelineCreateFlagBits 0x00000010+ -- No documentation found for Nested "VkPipelineCreateFlagBits" "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT"-pattern PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT            = PipelineCreateFlagBits 0x00000008+pattern PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = PipelineCreateFlagBits 0x00000008  conNamePipelineCreateFlagBits :: String conNamePipelineCreateFlagBits = "PipelineCreateFlagBits"@@ -280,52 +327,137 @@  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_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT, "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT")-  , (PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT    , "COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT")-  , (PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV           , "RAY_TRACING_ALLOW_MOTION_BIT_NV")-  , (PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT            , "LINK_TIME_OPTIMIZATION_BIT_EXT")-  , (PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, "RETAIN_LINK_TIME_OPTIMIZATION_INFO_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_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR+  [+    ( PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT+    , "DISABLE_OPTIMIZATION_BIT"+    )+  ,+    ( PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT+    , "ALLOW_DERIVATIVES_BIT"+    )+  ,+    ( PIPELINE_CREATE_DERIVATIVE_BIT+    , "DERIVATIVE_BIT"+    )+  ,+    ( PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT+    , "PROTECTED_ACCESS_ONLY_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT+    , "NO_PROTECTED_ACCESS_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT+    , "RAY_TRACING_OPACITY_MICROMAP_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT+    , "DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT+    , "COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV+    , "RAY_TRACING_ALLOW_MOTION_BIT_NV"+    )+  ,+    ( PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT+    , "LINK_TIME_OPTIMIZATION_BIT_EXT"+    )+  ,+    ( PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT+    , "RETAIN_LINK_TIME_OPTIMIZATION_INFO_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_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR     , "RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR"     )-  , (PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR    , "RAY_TRACING_SKIP_AABBS_BIT_KHR")-  , (PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, "RAY_TRACING_SKIP_TRIANGLES_BIT_KHR")-  , ( PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR+  ,+    ( PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR+    , "RAY_TRACING_SKIP_AABBS_BIT_KHR"+    )+  ,+    ( PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR+    , "RAY_TRACING_SKIP_TRIANGLES_BIT_KHR"+    )+  ,+    ( PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR     , "RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR"     )-  , (PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR       , "RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR")-  , (PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR")-  , (PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR    , "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR")-  , ( PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT+  ,+    ( PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR+    , "RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR"+    )+  ,+    ( PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR+    , "RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR"+    )+  ,+    ( PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR+    , "RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR"+    )+  ,+    ( PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT     , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT"     )-  , ( PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR+  ,+    ( PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR     , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR"     )-  , (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")+  ,+    ( 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-  showsPrec = enumShowsPrec enumPrefixPipelineCreateFlagBits-                            showTablePipelineCreateFlagBits-                            conNamePipelineCreateFlagBits-                            (\(PipelineCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCreateFlagBits+      showTablePipelineCreateFlagBits+      conNamePipelineCreateFlagBits+      (\(PipelineCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCreateFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineCreateFlagBits-                          showTablePipelineCreateFlagBits-                          conNamePipelineCreateFlagBits-                          PipelineCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCreateFlagBits+      showTablePipelineCreateFlagBits+      conNamePipelineCreateFlagBits+      PipelineCreateFlagBits
src/Vulkan/Core10/Enums/PipelineDepthStencilStateCreateFlagBits.hs view
@@ -36,42 +36,47 @@ -- See -- <https://registry.khronos.org/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_EXT =-  PipelineDepthStencilStateCreateFlagBits 0x00000002+pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000002+ -- | 'PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' -- indicates that access to the depth aspects of depth\/stencil and input -- attachments will have implicit framebuffer-local memory dependencies. -- See -- <https://registry.khronos.org/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_EXT =-  PipelineDepthStencilStateCreateFlagBits 0x00000001+pattern PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = PipelineDepthStencilStateCreateFlagBits 0x00000001  conNamePipelineDepthStencilStateCreateFlagBits :: String conNamePipelineDepthStencilStateCreateFlagBits = "PipelineDepthStencilStateCreateFlagBits"  enumPrefixPipelineDepthStencilStateCreateFlagBits :: String-enumPrefixPipelineDepthStencilStateCreateFlagBits =-  "PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_"+enumPrefixPipelineDepthStencilStateCreateFlagBits = "PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_"  showTablePipelineDepthStencilStateCreateFlagBits :: [(PipelineDepthStencilStateCreateFlagBits, String)] showTablePipelineDepthStencilStateCreateFlagBits =-  [ ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+  [+    ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT     , "STENCIL_ACCESS_BIT_EXT"     )-  , (PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT, "DEPTH_ACCESS_BIT_EXT")+  ,+    ( PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT+    , "DEPTH_ACCESS_BIT_EXT"+    )   ]  instance Show PipelineDepthStencilStateCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixPipelineDepthStencilStateCreateFlagBits-                            showTablePipelineDepthStencilStateCreateFlagBits-                            conNamePipelineDepthStencilStateCreateFlagBits-                            (\(PipelineDepthStencilStateCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineDepthStencilStateCreateFlagBits+      showTablePipelineDepthStencilStateCreateFlagBits+      conNamePipelineDepthStencilStateCreateFlagBits+      (\(PipelineDepthStencilStateCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineDepthStencilStateCreateFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineDepthStencilStateCreateFlagBits-                          showTablePipelineDepthStencilStateCreateFlagBits-                          conNamePipelineDepthStencilStateCreateFlagBits-                          PipelineDepthStencilStateCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineDepthStencilStateCreateFlagBits+      showTablePipelineDepthStencilStateCreateFlagBits+      conNamePipelineDepthStencilStateCreateFlagBits+      PipelineDepthStencilStateCreateFlagBits
src/Vulkan/Core10/Enums/PipelineDynamicStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineDynamicStateCreateFlags = PipelineDynamicStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineDynamicStateCreateFlags :: String conNamePipelineDynamicStateCreateFlags = "PipelineDynamicStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineDynamicStateCreateFlags = []  instance Show PipelineDynamicStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineDynamicStateCreateFlags-                            showTablePipelineDynamicStateCreateFlags-                            conNamePipelineDynamicStateCreateFlags-                            (\(PipelineDynamicStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineDynamicStateCreateFlags+      showTablePipelineDynamicStateCreateFlags+      conNamePipelineDynamicStateCreateFlags+      (\(PipelineDynamicStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineDynamicStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineDynamicStateCreateFlags-                          showTablePipelineDynamicStateCreateFlags-                          conNamePipelineDynamicStateCreateFlags-                          PipelineDynamicStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineDynamicStateCreateFlags+      showTablePipelineDynamicStateCreateFlags+      conNamePipelineDynamicStateCreateFlags+      PipelineDynamicStateCreateFlags
src/Vulkan/Core10/Enums/PipelineInputAssemblyStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineInputAssemblyStateCreateFlags = PipelineInputAssemblyStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineInputAssemblyStateCreateFlags :: String conNamePipelineInputAssemblyStateCreateFlags = "PipelineInputAssemblyStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineInputAssemblyStateCreateFlags = []  instance Show PipelineInputAssemblyStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineInputAssemblyStateCreateFlags-                            showTablePipelineInputAssemblyStateCreateFlags-                            conNamePipelineInputAssemblyStateCreateFlags-                            (\(PipelineInputAssemblyStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineInputAssemblyStateCreateFlags+      showTablePipelineInputAssemblyStateCreateFlags+      conNamePipelineInputAssemblyStateCreateFlags+      (\(PipelineInputAssemblyStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineInputAssemblyStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineInputAssemblyStateCreateFlags-                          showTablePipelineInputAssemblyStateCreateFlags-                          conNamePipelineInputAssemblyStateCreateFlags-                          PipelineInputAssemblyStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineInputAssemblyStateCreateFlags+      showTablePipelineInputAssemblyStateCreateFlags+      conNamePipelineInputAssemblyStateCreateFlags+      PipelineInputAssemblyStateCreateFlags
src/Vulkan/Core10/Enums/PipelineLayoutCreateFlagBits.hs view
@@ -43,18 +43,26 @@ enumPrefixPipelineLayoutCreateFlagBits = "PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT"  showTablePipelineLayoutCreateFlagBits :: [(PipelineLayoutCreateFlagBits, String)]-showTablePipelineLayoutCreateFlagBits = [(PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT, "")]+showTablePipelineLayoutCreateFlagBits =+  [+    ( PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT+    , ""+    )+  ]  instance Show PipelineLayoutCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixPipelineLayoutCreateFlagBits-                            showTablePipelineLayoutCreateFlagBits-                            conNamePipelineLayoutCreateFlagBits-                            (\(PipelineLayoutCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineLayoutCreateFlagBits+      showTablePipelineLayoutCreateFlagBits+      conNamePipelineLayoutCreateFlagBits+      (\(PipelineLayoutCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineLayoutCreateFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineLayoutCreateFlagBits-                          showTablePipelineLayoutCreateFlagBits-                          conNamePipelineLayoutCreateFlagBits-                          PipelineLayoutCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineLayoutCreateFlagBits+      showTablePipelineLayoutCreateFlagBits+      conNamePipelineLayoutCreateFlagBits+      PipelineLayoutCreateFlagBits
src/Vulkan/Core10/Enums/PipelineMultisampleStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineMultisampleStateCreateFlags = PipelineMultisampleStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineMultisampleStateCreateFlags :: String conNamePipelineMultisampleStateCreateFlags = "PipelineMultisampleStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineMultisampleStateCreateFlags = []  instance Show PipelineMultisampleStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineMultisampleStateCreateFlags-                            showTablePipelineMultisampleStateCreateFlags-                            conNamePipelineMultisampleStateCreateFlags-                            (\(PipelineMultisampleStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineMultisampleStateCreateFlags+      showTablePipelineMultisampleStateCreateFlags+      conNamePipelineMultisampleStateCreateFlags+      (\(PipelineMultisampleStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineMultisampleStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineMultisampleStateCreateFlags-                          showTablePipelineMultisampleStateCreateFlags-                          conNamePipelineMultisampleStateCreateFlags-                          PipelineMultisampleStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineMultisampleStateCreateFlags+      showTablePipelineMultisampleStateCreateFlags+      conNamePipelineMultisampleStateCreateFlags+      PipelineMultisampleStateCreateFlags
src/Vulkan/Core10/Enums/PipelineRasterizationStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineRasterizationStateCreateFlags = PipelineRasterizationStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineRasterizationStateCreateFlags :: String conNamePipelineRasterizationStateCreateFlags = "PipelineRasterizationStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineRasterizationStateCreateFlags = []  instance Show PipelineRasterizationStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineRasterizationStateCreateFlags-                            showTablePipelineRasterizationStateCreateFlags-                            conNamePipelineRasterizationStateCreateFlags-                            (\(PipelineRasterizationStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineRasterizationStateCreateFlags+      showTablePipelineRasterizationStateCreateFlags+      conNamePipelineRasterizationStateCreateFlags+      (\(PipelineRasterizationStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineRasterizationStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineRasterizationStateCreateFlags-                          showTablePipelineRasterizationStateCreateFlags-                          conNamePipelineRasterizationStateCreateFlags-                          PipelineRasterizationStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineRasterizationStateCreateFlags+      showTablePipelineRasterizationStateCreateFlags+      conNamePipelineRasterizationStateCreateFlags+      PipelineRasterizationStateCreateFlags
src/Vulkan/Core10/Enums/PipelineShaderStageCreateFlagBits.hs view
@@ -53,7 +53,8 @@ -- | '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+pattern PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = PipelineShaderStageCreateFlagBits 0x00000002+ -- | 'PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT' specifies -- that the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-sgs SubgroupSize>@@ -68,20 +69,29 @@  showTablePipelineShaderStageCreateFlagBits :: [(PipelineShaderStageCreateFlagBits, String)] showTablePipelineShaderStageCreateFlagBits =-  [ (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")+  [+    ( 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-  showsPrec = enumShowsPrec enumPrefixPipelineShaderStageCreateFlagBits-                            showTablePipelineShaderStageCreateFlagBits-                            conNamePipelineShaderStageCreateFlagBits-                            (\(PipelineShaderStageCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineShaderStageCreateFlagBits+      showTablePipelineShaderStageCreateFlagBits+      conNamePipelineShaderStageCreateFlagBits+      (\(PipelineShaderStageCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineShaderStageCreateFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineShaderStageCreateFlagBits-                          showTablePipelineShaderStageCreateFlagBits-                          conNamePipelineShaderStageCreateFlagBits-                          PipelineShaderStageCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineShaderStageCreateFlagBits+      showTablePipelineShaderStageCreateFlagBits+      conNamePipelineShaderStageCreateFlagBits+      PipelineShaderStageCreateFlagBits
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -67,42 +67,52 @@ -- '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+ -- | '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://registry.khronos.org/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://registry.khronos.org/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@@ -110,10 +120,12 @@ -- multisample resolve operations for framebuffer attachments with a color -- or depth\/stencil format, and -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.-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: --@@ -132,17 +144,20 @@ --     <https://registry.khronos.org/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: --@@ -177,19 +192,24 @@ -- -   '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+pattern PIPELINE_STAGE_ALL_COMMANDS_BIT = PipelineStageFlagBits 0x00010000+ -- | 'PIPELINE_STAGE_MESH_SHADER_BIT_EXT' specifies the mesh shader stage.-pattern PIPELINE_STAGE_MESH_SHADER_BIT_EXT                = PipelineStageFlagBits 0x00100000+pattern PIPELINE_STAGE_MESH_SHADER_BIT_EXT = PipelineStageFlagBits 0x00100000+ -- | 'PIPELINE_STAGE_TASK_SHADER_BIT_EXT' specifies the task shader stage.-pattern PIPELINE_STAGE_TASK_SHADER_BIT_EXT                = PipelineStageFlagBits 0x00080000+pattern PIPELINE_STAGE_TASK_SHADER_BIT_EXT = PipelineStageFlagBits 0x00080000+ -- | '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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>@@ -198,16 +218,19 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT   = PipelineStageFlagBits 0x00800000+pattern PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = PipelineStageFlagBits 0x00800000+ -- | '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',@@ -222,15 +245,18 @@ -- and -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR'. 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+pattern PIPELINE_STAGE_NONE = PipelineStageFlagBits 0x00000000  conNamePipelineStageFlagBits :: String conNamePipelineStageFlagBits = "PipelineStageFlagBits"@@ -240,45 +266,120 @@  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_MESH_SHADER_BIT_EXT               , "MESH_SHADER_BIT_EXT")-  , (PIPELINE_STAGE_TASK_SHADER_BIT_EXT               , "TASK_SHADER_BIT_EXT")-  , (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_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_NONE                              , "NONE")+  [+    ( 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_MESH_SHADER_BIT_EXT+    , "MESH_SHADER_BIT_EXT"+    )+  ,+    ( PIPELINE_STAGE_TASK_SHADER_BIT_EXT+    , "TASK_SHADER_BIT_EXT"+    )+  ,+    ( 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_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_NONE, "NONE")   ]  instance Show PipelineStageFlagBits where-  showsPrec = enumShowsPrec enumPrefixPipelineStageFlagBits-                            showTablePipelineStageFlagBits-                            conNamePipelineStageFlagBits-                            (\(PipelineStageFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineStageFlagBits+      showTablePipelineStageFlagBits+      conNamePipelineStageFlagBits+      (\(PipelineStageFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineStageFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineStageFlagBits-                          showTablePipelineStageFlagBits-                          conNamePipelineStageFlagBits-                          PipelineStageFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineStageFlagBits+      showTablePipelineStageFlagBits+      conNamePipelineStageFlagBits+      PipelineStageFlagBits
src/Vulkan/Core10/Enums/PipelineTessellationStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineTessellationStateCreateFlags = PipelineTessellationStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineTessellationStateCreateFlags :: String conNamePipelineTessellationStateCreateFlags = "PipelineTessellationStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineTessellationStateCreateFlags = []  instance Show PipelineTessellationStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineTessellationStateCreateFlags-                            showTablePipelineTessellationStateCreateFlags-                            conNamePipelineTessellationStateCreateFlags-                            (\(PipelineTessellationStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineTessellationStateCreateFlags+      showTablePipelineTessellationStateCreateFlags+      conNamePipelineTessellationStateCreateFlags+      (\(PipelineTessellationStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineTessellationStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineTessellationStateCreateFlags-                          showTablePipelineTessellationStateCreateFlags-                          conNamePipelineTessellationStateCreateFlags-                          PipelineTessellationStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineTessellationStateCreateFlags+      showTablePipelineTessellationStateCreateFlags+      conNamePipelineTessellationStateCreateFlags+      PipelineTessellationStateCreateFlags
src/Vulkan/Core10/Enums/PipelineVertexInputStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineVertexInputStateCreateFlags = PipelineVertexInputStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineVertexInputStateCreateFlags :: String conNamePipelineVertexInputStateCreateFlags = "PipelineVertexInputStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineVertexInputStateCreateFlags = []  instance Show PipelineVertexInputStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineVertexInputStateCreateFlags-                            showTablePipelineVertexInputStateCreateFlags-                            conNamePipelineVertexInputStateCreateFlags-                            (\(PipelineVertexInputStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineVertexInputStateCreateFlags+      showTablePipelineVertexInputStateCreateFlags+      conNamePipelineVertexInputStateCreateFlags+      (\(PipelineVertexInputStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineVertexInputStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineVertexInputStateCreateFlags-                          showTablePipelineVertexInputStateCreateFlags-                          conNamePipelineVertexInputStateCreateFlags-                          PipelineVertexInputStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineVertexInputStateCreateFlags+      showTablePipelineVertexInputStateCreateFlags+      conNamePipelineVertexInputStateCreateFlags+      PipelineVertexInputStateCreateFlags
src/Vulkan/Core10/Enums/PipelineViewportStateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype PipelineViewportStateCreateFlags = PipelineViewportStateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineViewportStateCreateFlags :: String conNamePipelineViewportStateCreateFlags = "PipelineViewportStateCreateFlags" @@ -39,15 +37,18 @@ showTablePipelineViewportStateCreateFlags = []  instance Show PipelineViewportStateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPipelineViewportStateCreateFlags-                            showTablePipelineViewportStateCreateFlags-                            conNamePipelineViewportStateCreateFlags-                            (\(PipelineViewportStateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineViewportStateCreateFlags+      showTablePipelineViewportStateCreateFlags+      conNamePipelineViewportStateCreateFlags+      (\(PipelineViewportStateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineViewportStateCreateFlags where-  readPrec = enumReadPrec enumPrefixPipelineViewportStateCreateFlags-                          showTablePipelineViewportStateCreateFlags-                          conNamePipelineViewportStateCreateFlags-                          PipelineViewportStateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPipelineViewportStateCreateFlags+      showTablePipelineViewportStateCreateFlags+      conNamePipelineViewportStateCreateFlags+      PipelineViewportStateCreateFlags
src/Vulkan/Core10/Enums/PolygonMode.hs view
@@ -27,19 +27,23 @@ -- = 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.Pipeline.PipelineRasterizationStateCreateInfo'+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT' newtype PolygonMode = PolygonMode Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'POLYGON_MODE_FILL' specifies that polygons are rendered using the -- polygon rasterization rules in this section.-pattern POLYGON_MODE_FILL              = PolygonMode 0+pattern POLYGON_MODE_FILL = PolygonMode 0+ -- | 'POLYGON_MODE_LINE' specifies that polygon edges are drawn as line -- segments.-pattern POLYGON_MODE_LINE              = PolygonMode 1+pattern POLYGON_MODE_LINE = PolygonMode 1+ -- | 'POLYGON_MODE_POINT' specifies that polygon vertices are drawn as -- points.-pattern POLYGON_MODE_POINT             = PolygonMode 2+pattern POLYGON_MODE_POINT = PolygonMode 2+ -- | 'POLYGON_MODE_FILL_RECTANGLE_NV' specifies that polygons are rendered -- using polygon rasterization rules, modified to consider a sample within -- the primitive if the sample location is inside the axis-aligned bounding@@ -59,11 +63,15 @@ -- Area calculation and facingness are determined for -- 'POLYGON_MODE_FILL_RECTANGLE_NV' mode using the triangle’s vertices. pattern POLYGON_MODE_FILL_RECTANGLE_NV = PolygonMode 1000153000-{-# complete POLYGON_MODE_FILL,-             POLYGON_MODE_LINE,-             POLYGON_MODE_POINT,-             POLYGON_MODE_FILL_RECTANGLE_NV :: PolygonMode #-} +{-# COMPLETE+  POLYGON_MODE_FILL+  , POLYGON_MODE_LINE+  , POLYGON_MODE_POINT+  , POLYGON_MODE_FILL_RECTANGLE_NV ::+    PolygonMode+  #-}+ conNamePolygonMode :: String conNamePolygonMode = "PolygonMode" @@ -72,16 +80,25 @@  showTablePolygonMode :: [(PolygonMode, String)] showTablePolygonMode =-  [ (POLYGON_MODE_FILL             , "FILL")-  , (POLYGON_MODE_LINE             , "LINE")-  , (POLYGON_MODE_POINT            , "POINT")+  [ (POLYGON_MODE_FILL, "FILL")+  , (POLYGON_MODE_LINE, "LINE")+  , (POLYGON_MODE_POINT, "POINT")   , (POLYGON_MODE_FILL_RECTANGLE_NV, "FILL_RECTANGLE_NV")   ]  instance Show PolygonMode where   showsPrec =-    enumShowsPrec enumPrefixPolygonMode showTablePolygonMode conNamePolygonMode (\(PolygonMode x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixPolygonMode+      showTablePolygonMode+      conNamePolygonMode+      (\(PolygonMode x) -> x)+      (showsPrec 11)  instance Read PolygonMode where-  readPrec = enumReadPrec enumPrefixPolygonMode showTablePolygonMode conNamePolygonMode PolygonMode-+  readPrec =+    enumReadPrec+      enumPrefixPolygonMode+      showTablePolygonMode+      conNamePolygonMode+      PolygonMode
+ src/Vulkan/Core10/Enums/PolygonMode.hs-boot view
@@ -0,0 +1,8 @@+{-# language CPP #-}+-- No documentation found for Chapter "PolygonMode"+module Vulkan.Core10.Enums.PolygonMode  (PolygonMode) where++++data PolygonMode+
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -67,21 +67,26 @@  -- | 'PRIMITIVE_TOPOLOGY_POINT_LIST' specifies a series of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-point-lists separate point primitives>.-pattern PRIMITIVE_TOPOLOGY_POINT_LIST                    = PrimitiveTopology 0+pattern PRIMITIVE_TOPOLOGY_POINT_LIST = PrimitiveTopology 0+ -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST' specifies a series of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-line-lists separate line primitives>.-pattern PRIMITIVE_TOPOLOGY_LINE_LIST                     = PrimitiveTopology 1+pattern PRIMITIVE_TOPOLOGY_LINE_LIST = PrimitiveTopology 1+ -- | 'PRIMITIVE_TOPOLOGY_LINE_STRIP' specifies a series of -- <https://registry.khronos.org/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+pattern PRIMITIVE_TOPOLOGY_LINE_STRIP = PrimitiveTopology 2+ -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_LIST' specifies a series of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-lists separate triangle primitives>.-pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                 = PrimitiveTopology 3+pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = PrimitiveTopology 3+ -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP' specifies a series of -- <https://registry.khronos.org/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+pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = PrimitiveTopology 4+ -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_FAN' specifies a series of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives> -- with all triangles sharing a common vertex. If the@@ -90,36 +95,45 @@ -- is 'Vulkan.Core10.FundamentalTypes.FALSE', then triangle fans are not -- supported by the implementation, and 'PRIMITIVE_TOPOLOGY_TRIANGLE_FAN' -- /must/ not be used.-pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                  = PrimitiveTopology 5+pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = PrimitiveTopology 5+ -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY' specifies a series of -- <https://registry.khronos.org/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+pattern PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = PrimitiveTopology 6+ -- | 'PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY' specifies a series of -- <https://registry.khronos.org/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+pattern PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = PrimitiveTopology 7+ -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY' specifies a series of -- <https://registry.khronos.org/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+pattern PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = PrimitiveTopology 8+ -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY' specifies -- <https://registry.khronos.org/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://registry.khronos.org/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,-             PRIMITIVE_TOPOLOGY_LINE_STRIP,-             PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,-             PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP,-             PRIMITIVE_TOPOLOGY_TRIANGLE_FAN,-             PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY,-             PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY,-             PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY,-             PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY,-             PRIMITIVE_TOPOLOGY_PATCH_LIST :: PrimitiveTopology #-}+pattern PRIMITIVE_TOPOLOGY_PATCH_LIST = PrimitiveTopology 10 +{-# COMPLETE+  PRIMITIVE_TOPOLOGY_POINT_LIST+  , PRIMITIVE_TOPOLOGY_LINE_LIST+  , PRIMITIVE_TOPOLOGY_LINE_STRIP+  , PRIMITIVE_TOPOLOGY_TRIANGLE_LIST+  , PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP+  , PRIMITIVE_TOPOLOGY_TRIANGLE_FAN+  , PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY+  , PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY+  , PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY+  , PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY+  , PRIMITIVE_TOPOLOGY_PATCH_LIST ::+    PrimitiveTopology+  #-}+ conNamePrimitiveTopology :: String conNamePrimitiveTopology = "PrimitiveTopology" @@ -128,27 +142,50 @@  showTablePrimitiveTopology :: [(PrimitiveTopology, String)] showTablePrimitiveTopology =-  [ (PRIMITIVE_TOPOLOGY_POINT_LIST                   , "POINT_LIST")-  , (PRIMITIVE_TOPOLOGY_LINE_LIST                    , "LINE_LIST")-  , (PRIMITIVE_TOPOLOGY_LINE_STRIP                   , "LINE_STRIP")-  , (PRIMITIVE_TOPOLOGY_TRIANGLE_LIST                , "TRIANGLE_LIST")-  , (PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP               , "TRIANGLE_STRIP")-  , (PRIMITIVE_TOPOLOGY_TRIANGLE_FAN                 , "TRIANGLE_FAN")-  , (PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY     , "LINE_LIST_WITH_ADJACENCY")-  , (PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY    , "LINE_STRIP_WITH_ADJACENCY")-  , (PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY , "TRIANGLE_LIST_WITH_ADJACENCY")-  , (PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, "TRIANGLE_STRIP_WITH_ADJACENCY")-  , (PRIMITIVE_TOPOLOGY_PATCH_LIST                   , "PATCH_LIST")+  [ (PRIMITIVE_TOPOLOGY_POINT_LIST, "POINT_LIST")+  , (PRIMITIVE_TOPOLOGY_LINE_LIST, "LINE_LIST")+  , (PRIMITIVE_TOPOLOGY_LINE_STRIP, "LINE_STRIP")+  ,+    ( PRIMITIVE_TOPOLOGY_TRIANGLE_LIST+    , "TRIANGLE_LIST"+    )+  ,+    ( PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP+    , "TRIANGLE_STRIP"+    )+  , (PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, "TRIANGLE_FAN")+  ,+    ( PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY+    , "LINE_LIST_WITH_ADJACENCY"+    )+  ,+    ( PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY+    , "LINE_STRIP_WITH_ADJACENCY"+    )+  ,+    ( PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY+    , "TRIANGLE_LIST_WITH_ADJACENCY"+    )+  ,+    ( PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY+    , "TRIANGLE_STRIP_WITH_ADJACENCY"+    )+  , (PRIMITIVE_TOPOLOGY_PATCH_LIST, "PATCH_LIST")   ]  instance Show PrimitiveTopology where-  showsPrec = enumShowsPrec enumPrefixPrimitiveTopology-                            showTablePrimitiveTopology-                            conNamePrimitiveTopology-                            (\(PrimitiveTopology x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPrimitiveTopology+      showTablePrimitiveTopology+      conNamePrimitiveTopology+      (\(PrimitiveTopology x) -> x)+      (showsPrec 11)  instance Read PrimitiveTopology where   readPrec =-    enumReadPrec enumPrefixPrimitiveTopology showTablePrimitiveTopology conNamePrimitiveTopology PrimitiveTopology-+    enumReadPrec+      enumPrefixPrimitiveTopology+      showTablePrimitiveTopology+      conNamePrimitiveTopology+      PrimitiveTopology
src/Vulkan/Core10/Enums/QueryControlFlagBits.hs view
@@ -42,15 +42,18 @@ showTableQueryControlFlagBits = [(QUERY_CONTROL_PRECISE_BIT, "")]  instance Show QueryControlFlagBits where-  showsPrec = enumShowsPrec enumPrefixQueryControlFlagBits-                            showTableQueryControlFlagBits-                            conNameQueryControlFlagBits-                            (\(QueryControlFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixQueryControlFlagBits+      showTableQueryControlFlagBits+      conNameQueryControlFlagBits+      (\(QueryControlFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read QueryControlFlagBits where-  readPrec = enumReadPrec enumPrefixQueryControlFlagBits-                          showTableQueryControlFlagBits-                          conNameQueryControlFlagBits-                          QueryControlFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixQueryControlFlagBits+      showTableQueryControlFlagBits+      conNameQueryControlFlagBits+      QueryControlFlagBits
src/Vulkan/Core10/Enums/QueryPipelineStatisticFlagBits.hs view
@@ -76,7 +76,8 @@ -- <https://registry.khronos.org/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+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@@ -84,13 +85,15 @@ -- stage. If primitive restart is enabled, restarting the primitive -- topology has no effect on the count. Incomplete primitives /may/ be -- counted.-pattern QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT           = QueryPipelineStatisticFlagBits 0x00000002+pattern QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = QueryPipelineStatisticFlagBits 0x00000002+ -- | 'QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT' specifies that -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-vertex-execution invoked>.-pattern QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT           = QueryPipelineStatisticFlagBits 0x00000004+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@@ -100,7 +103,8 @@ -- <https://registry.khronos.org/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+pattern QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000008+ -- | 'QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT' specifies that -- queries managed by the pool will count the number of primitives -- generated by geometry shader invocations. The counter’s value is@@ -108,14 +112,16 @@ -- primitive topology using the SPIR-V instructions @OpEndPrimitive@ or -- @OpEndStreamPrimitive@ has no effect on the geometry shader output -- primitives count.-pattern QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT          = QueryPipelineStatisticFlagBits 0x00000010+pattern QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = QueryPipelineStatisticFlagBits 0x00000010+ -- | 'QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT' specifies that -- queries managed by the pool will count the number of primitives -- processed by the -- <https://registry.khronos.org/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+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@@ -130,13 +136,15 @@ --     clipping volume, the counter is incremented by one or more. -- -- -   Otherwise, the counter is incremented by zero or more.-pattern QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                 = QueryPipelineStatisticFlagBits 0x00000040+pattern QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = QueryPipelineStatisticFlagBits 0x00000040+ -- | 'QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT' specifies -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragops-shader invoked>.-pattern QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT         = QueryPipelineStatisticFlagBits 0x00000080+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@@ -144,13 +152,14 @@ -- control shader is -- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shaders-tessellation-evaluation-execution invoked>.-pattern QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT =-  QueryPipelineStatisticFlagBits 0x00000200+pattern QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000200+ -- | 'QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT' specifies that -- queries managed by the pool will count the number of compute shader -- invocations. The counter’s value is incremented every time the compute@@ -158,12 +167,14 @@ -- compute shader invocations or execute additional compute shader -- invocations for implementation-dependent reasons as long as the results -- of rendering otherwise remain unchanged.-pattern QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT  = QueryPipelineStatisticFlagBits 0x00000400+pattern QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = QueryPipelineStatisticFlagBits 0x00000400+ -- | 'QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT' specifies -- that queries managed by the pool will count the number of mesh shader -- invocations. The counter’s value is incremented every time the mesh -- shader is invoked. pattern QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = QueryPipelineStatisticFlagBits 0x00001000+ -- | 'QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT' specifies -- that queries managed by the pool will count the number of task shader -- invocations. The counter’s value is incremented every time the task@@ -178,33 +189,73 @@  showTableQueryPipelineStatisticFlagBits :: [(QueryPipelineStatisticFlagBits, String)] showTableQueryPipelineStatisticFlagBits =-  [ (QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT            , "INPUT_ASSEMBLY_VERTICES_BIT")-  , (QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT          , "INPUT_ASSEMBLY_PRIMITIVES_BIT")-  , (QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT          , "VERTEX_SHADER_INVOCATIONS_BIT")-  , (QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT        , "GEOMETRY_SHADER_INVOCATIONS_BIT")-  , (QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT         , "GEOMETRY_SHADER_PRIMITIVES_BIT")-  , (QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT               , "CLIPPING_INVOCATIONS_BIT")-  , (QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT                , "CLIPPING_PRIMITIVES_BIT")-  , (QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT        , "FRAGMENT_SHADER_INVOCATIONS_BIT")-  , (QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, "TESSELLATION_CONTROL_SHADER_PATCHES_BIT")-  , ( QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT+  [+    ( QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT+    , "INPUT_ASSEMBLY_VERTICES_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT+    , "INPUT_ASSEMBLY_PRIMITIVES_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT+    , "VERTEX_SHADER_INVOCATIONS_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT+    , "GEOMETRY_SHADER_INVOCATIONS_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT+    , "GEOMETRY_SHADER_PRIMITIVES_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT+    , "CLIPPING_INVOCATIONS_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT+    , "CLIPPING_PRIMITIVES_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT+    , "FRAGMENT_SHADER_INVOCATIONS_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT+    , "TESSELLATION_CONTROL_SHADER_PATCHES_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT     , "TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT"     )-  , (QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT , "COMPUTE_SHADER_INVOCATIONS_BIT")-  , (QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT, "MESH_SHADER_INVOCATIONS_BIT_EXT")-  , (QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT, "TASK_SHADER_INVOCATIONS_BIT_EXT")+  ,+    ( QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT+    , "COMPUTE_SHADER_INVOCATIONS_BIT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT+    , "MESH_SHADER_INVOCATIONS_BIT_EXT"+    )+  ,+    ( QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT+    , "TASK_SHADER_INVOCATIONS_BIT_EXT"+    )   ]  instance Show QueryPipelineStatisticFlagBits where-  showsPrec = enumShowsPrec enumPrefixQueryPipelineStatisticFlagBits-                            showTableQueryPipelineStatisticFlagBits-                            conNameQueryPipelineStatisticFlagBits-                            (\(QueryPipelineStatisticFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixQueryPipelineStatisticFlagBits+      showTableQueryPipelineStatisticFlagBits+      conNameQueryPipelineStatisticFlagBits+      (\(QueryPipelineStatisticFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read QueryPipelineStatisticFlagBits where-  readPrec = enumReadPrec enumPrefixQueryPipelineStatisticFlagBits-                          showTableQueryPipelineStatisticFlagBits-                          conNameQueryPipelineStatisticFlagBits-                          QueryPipelineStatisticFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixQueryPipelineStatisticFlagBits+      showTableQueryPipelineStatisticFlagBits+      conNameQueryPipelineStatisticFlagBits+      QueryPipelineStatisticFlagBits
src/Vulkan/Core10/Enums/QueryPoolCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype QueryPoolCreateFlags = QueryPoolCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameQueryPoolCreateFlags :: String conNameQueryPoolCreateFlags = "QueryPoolCreateFlags" @@ -39,15 +37,18 @@ showTableQueryPoolCreateFlags = []  instance Show QueryPoolCreateFlags where-  showsPrec = enumShowsPrec enumPrefixQueryPoolCreateFlags-                            showTableQueryPoolCreateFlags-                            conNameQueryPoolCreateFlags-                            (\(QueryPoolCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixQueryPoolCreateFlags+      showTableQueryPoolCreateFlags+      conNameQueryPoolCreateFlags+      (\(QueryPoolCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read QueryPoolCreateFlags where-  readPrec = enumReadPrec enumPrefixQueryPoolCreateFlags-                          showTableQueryPoolCreateFlags-                          conNameQueryPoolCreateFlags-                          QueryPoolCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixQueryPoolCreateFlags+      showTableQueryPoolCreateFlags+      conNameQueryPoolCreateFlags+      QueryPoolCreateFlags
src/Vulkan/Core10/Enums/QueryResultFlagBits.hs view
@@ -35,16 +35,19 @@ -- | 'QUERY_RESULT_64_BIT' specifies the results will be written as an array -- of 64-bit unsigned integer values. If this bit is not set, the results -- will be written as an array of 32-bit unsigned integer values.-pattern QUERY_RESULT_64_BIT                = QueryResultFlagBits 0x00000001+pattern QUERY_RESULT_64_BIT = QueryResultFlagBits 0x00000001+ -- | 'QUERY_RESULT_WAIT_BIT' specifies that Vulkan will wait for each query’s -- status to become available before retrieving its results.-pattern QUERY_RESULT_WAIT_BIT              = QueryResultFlagBits 0x00000002+pattern QUERY_RESULT_WAIT_BIT = QueryResultFlagBits 0x00000002+ -- | 'QUERY_RESULT_WITH_AVAILABILITY_BIT' specifies that the availability -- status accompanies the results. pattern QUERY_RESULT_WITH_AVAILABILITY_BIT = QueryResultFlagBits 0x00000004+ -- | 'QUERY_RESULT_PARTIAL_BIT' specifies that returning partial results is -- acceptable.-pattern QUERY_RESULT_PARTIAL_BIT           = QueryResultFlagBits 0x00000008+pattern QUERY_RESULT_PARTIAL_BIT = QueryResultFlagBits 0x00000008  conNameQueryResultFlagBits :: String conNameQueryResultFlagBits = "QueryResultFlagBits"@@ -54,22 +57,28 @@  showTableQueryResultFlagBits :: [(QueryResultFlagBits, String)] showTableQueryResultFlagBits =-  [ (QUERY_RESULT_64_BIT               , "64_BIT")-  , (QUERY_RESULT_WAIT_BIT             , "WAIT_BIT")-  , (QUERY_RESULT_WITH_AVAILABILITY_BIT, "WITH_AVAILABILITY_BIT")-  , (QUERY_RESULT_PARTIAL_BIT          , "PARTIAL_BIT")+  [ (QUERY_RESULT_64_BIT, "64_BIT")+  , (QUERY_RESULT_WAIT_BIT, "WAIT_BIT")+  ,+    ( QUERY_RESULT_WITH_AVAILABILITY_BIT+    , "WITH_AVAILABILITY_BIT"+    )+  , (QUERY_RESULT_PARTIAL_BIT, "PARTIAL_BIT")   ]  instance Show QueryResultFlagBits where-  showsPrec = enumShowsPrec enumPrefixQueryResultFlagBits-                            showTableQueryResultFlagBits-                            conNameQueryResultFlagBits-                            (\(QueryResultFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixQueryResultFlagBits+      showTableQueryResultFlagBits+      conNameQueryResultFlagBits+      (\(QueryResultFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read QueryResultFlagBits where-  readPrec = enumReadPrec enumPrefixQueryResultFlagBits-                          showTableQueryResultFlagBits-                          conNameQueryResultFlagBits-                          QueryResultFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixQueryResultFlagBits+      showTableQueryResultFlagBits+      conNameQueryResultFlagBits+      QueryResultFlagBits
src/Vulkan/Core10/Enums/QueryType.hs view
@@ -3,6 +3,8 @@ module Vulkan.Core10.Enums.QueryType  (QueryType( QUERY_TYPE_OCCLUSION                                                 , QUERY_TYPE_PIPELINE_STATISTICS                                                 , QUERY_TYPE_TIMESTAMP+                                                , QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT+                                                , QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT                                                 , QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR                                                 , QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR                                                 , QUERY_TYPE_PRIMITIVES_GENERATED_EXT@@ -33,19 +35,30 @@ -- 'Vulkan.Core10.Query.QueryPoolCreateInfo', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.writeMicromapsPropertiesEXT' newtype QueryType = QueryType Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'QUERY_TYPE_OCCLUSION' specifies an -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-occlusion occlusion query>.-pattern QUERY_TYPE_OCCLUSION                       = QueryType 0+pattern QUERY_TYPE_OCCLUSION = QueryType 0+ -- | 'QUERY_TYPE_PIPELINE_STATISTICS' specifies a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-pipestats pipeline statistics query>.-pattern QUERY_TYPE_PIPELINE_STATISTICS             = QueryType 1+pattern QUERY_TYPE_PIPELINE_STATISTICS = QueryType 1+ -- | 'QUERY_TYPE_TIMESTAMP' specifies a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-timestamps timestamp query>.-pattern QUERY_TYPE_TIMESTAMP                       = QueryType 2+pattern QUERY_TYPE_TIMESTAMP = QueryType 2++-- No documentation found for Nested "VkQueryType" "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT"+pattern QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = QueryType 1000396001++-- No documentation found for Nested "VkQueryType" "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT"+pattern QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = QueryType 1000396000+ -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR' specifies an -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query> -- for use with@@ -53,27 +66,34 @@ -- or -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = QueryType 1000386001+ -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR' -- specifies a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#serialized-as-header serialization acceleration structure pointer count query>. pattern QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = QueryType 1000386000+ -- | 'QUERY_TYPE_PRIMITIVES_GENERATED_EXT' specifies a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-primitives-generated primitives generated query>.-pattern QUERY_TYPE_PRIMITIVES_GENERATED_EXT        = QueryType 1000382000+pattern QUERY_TYPE_PRIMITIVES_GENERATED_EXT = QueryType 1000382000+ -- | 'QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT' specifies a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-mesh-shader generated mesh primitives query>.-pattern QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT   = QueryType 1000328000+pattern QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = QueryType 1000328000+ -- | 'QUERY_TYPE_PERFORMANCE_QUERY_INTEL' specifies a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance-intel Intel performance query>.-pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL         = QueryType 1000210000+pattern QUERY_TYPE_PERFORMANCE_QUERY_INTEL = QueryType 1000210000+ -- | 'QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV' specifies an -- <https://registry.khronos.org/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://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure size query> -- for use with@@ -81,26 +101,34 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#queries-performance performance query>.-pattern QUERY_TYPE_PERFORMANCE_QUERY_KHR           = QueryType 1000116000+pattern QUERY_TYPE_PERFORMANCE_QUERY_KHR = QueryType 1000116000+ -- | 'QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT' specifies a -- <https://registry.khronos.org/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,-             QUERY_TYPE_TIMESTAMP,-             QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR,-             QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR,-             QUERY_TYPE_PRIMITIVES_GENERATED_EXT,-             QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT,-             QUERY_TYPE_PERFORMANCE_QUERY_INTEL,-             QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV,-             QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR,-             QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,-             QUERY_TYPE_PERFORMANCE_QUERY_KHR,-             QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT :: QueryType #-}+pattern QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = QueryType 1000028004 +{-# COMPLETE+  QUERY_TYPE_OCCLUSION+  , QUERY_TYPE_PIPELINE_STATISTICS+  , QUERY_TYPE_TIMESTAMP+  , QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT+  , QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT+  , QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR+  , QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR+  , QUERY_TYPE_PRIMITIVES_GENERATED_EXT+  , QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT+  , QUERY_TYPE_PERFORMANCE_QUERY_INTEL+  , QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV+  , QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR+  , QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR+  , QUERY_TYPE_PERFORMANCE_QUERY_KHR+  , QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT ::+    QueryType+  #-}+ conNameQueryType :: String conNameQueryType = "QueryType" @@ -109,27 +137,72 @@  showTableQueryType :: [(QueryType, String)] showTableQueryType =-  [ (QUERY_TYPE_OCCLUSION                      , "OCCLUSION")-  , (QUERY_TYPE_PIPELINE_STATISTICS            , "PIPELINE_STATISTICS")-  , (QUERY_TYPE_TIMESTAMP                      , "TIMESTAMP")-  , (QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR, "ACCELERATION_STRUCTURE_SIZE_KHR")-  , ( QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR+  [ (QUERY_TYPE_OCCLUSION, "OCCLUSION")+  , (QUERY_TYPE_PIPELINE_STATISTICS, "PIPELINE_STATISTICS")+  , (QUERY_TYPE_TIMESTAMP, "TIMESTAMP")+  ,+    ( QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT+    , "MICROMAP_COMPACTED_SIZE_EXT"+    )+  ,+    ( QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT+    , "MICROMAP_SERIALIZATION_SIZE_EXT"+    )+  ,+    ( QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR+    , "ACCELERATION_STRUCTURE_SIZE_KHR"+    )+  ,+    ( QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR     , "ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR"     )-  , (QUERY_TYPE_PRIMITIVES_GENERATED_EXT                     , "PRIMITIVES_GENERATED_EXT")-  , (QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT                , "MESH_PRIMITIVES_GENERATED_EXT")-  , (QUERY_TYPE_PERFORMANCE_QUERY_INTEL                      , "PERFORMANCE_QUERY_INTEL")-  , (QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV     , "ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV")-  , (QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, "ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR")-  , (QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR    , "ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR")-  , (QUERY_TYPE_PERFORMANCE_QUERY_KHR                        , "PERFORMANCE_QUERY_KHR")-  , (QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT                , "TRANSFORM_FEEDBACK_STREAM_EXT")+  ,+    ( QUERY_TYPE_PRIMITIVES_GENERATED_EXT+    , "PRIMITIVES_GENERATED_EXT"+    )+  ,+    ( QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT+    , "MESH_PRIMITIVES_GENERATED_EXT"+    )+  ,+    ( QUERY_TYPE_PERFORMANCE_QUERY_INTEL+    , "PERFORMANCE_QUERY_INTEL"+    )+  ,+    ( QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV+    , "ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV"+    )+  ,+    ( QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR+    , "ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR"+    )+  ,+    ( QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR+    , "ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR"+    )+  ,+    ( QUERY_TYPE_PERFORMANCE_QUERY_KHR+    , "PERFORMANCE_QUERY_KHR"+    )+  ,+    ( QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT+    , "TRANSFORM_FEEDBACK_STREAM_EXT"+    )   ]  instance Show QueryType where   showsPrec =-    enumShowsPrec enumPrefixQueryType showTableQueryType conNameQueryType (\(QueryType x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixQueryType+      showTableQueryType+      conNameQueryType+      (\(QueryType x) -> x)+      (showsPrec 11)  instance Read QueryType where-  readPrec = enumReadPrec enumPrefixQueryType showTableQueryType conNameQueryType QueryType-+  readPrec =+    enumReadPrec+      enumPrefixQueryType+      showTableQueryType+      conNameQueryType+      QueryType
src/Vulkan/Core10/Enums/QueueFlagBits.hs view
@@ -5,6 +5,7 @@                                                          , QUEUE_COMPUTE_BIT                                                          , QUEUE_TRANSFER_BIT                                                          , QUEUE_SPARSE_BINDING_BIT+                                                         , QUEUE_OPTICAL_FLOW_BIT_NV                                                          , QUEUE_PROTECTED_BIT                                                          , ..                                                          )@@ -33,10 +34,12 @@ -- exposed by the implementation /must/ support both graphics and compute -- operations. ----- Furthermore, if the protected memory physical device feature is--- supported, then at least one queue family of at least one physical--- device exposed by the implementation /must/ support graphics operations,--- compute operations, and protected memory operations.+-- Furthermore, if the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory>+-- physical device feature is supported, then at least one queue family of+-- at least one physical device exposed by the implementation /must/+-- support graphics operations, compute operations, and protected memory+-- operations. -- -- Note --@@ -59,19 +62,27 @@  -- | 'QUEUE_GRAPHICS_BIT' specifies that queues in this queue family support -- graphics operations.-pattern QUEUE_GRAPHICS_BIT       = QueueFlagBits 0x00000001+pattern QUEUE_GRAPHICS_BIT = QueueFlagBits 0x00000001+ -- | 'QUEUE_COMPUTE_BIT' specifies that queues in this queue family support -- compute operations.-pattern QUEUE_COMPUTE_BIT        = QueueFlagBits 0x00000002+pattern QUEUE_COMPUTE_BIT = QueueFlagBits 0x00000002+ -- | 'QUEUE_TRANSFER_BIT' specifies that queues in this queue family support -- transfer operations.-pattern QUEUE_TRANSFER_BIT       = QueueFlagBits 0x00000004+pattern QUEUE_TRANSFER_BIT = QueueFlagBits 0x00000004+ -- | 'QUEUE_SPARSE_BINDING_BIT' specifies that queues in this queue family -- support sparse memory management operations (see -- <https://registry.khronos.org/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++-- | 'QUEUE_OPTICAL_FLOW_BIT_NV' specifies that queues in this queue family+-- support optical flow operations.+pattern QUEUE_OPTICAL_FLOW_BIT_NV = QueueFlagBits 0x00000100+ -- | 'QUEUE_PROTECTED_BIT' specifies that queues in this queue family support -- the -- 'Vulkan.Core10.Enums.DeviceQueueCreateFlagBits.DEVICE_QUEUE_CREATE_PROTECTED_BIT'@@ -80,7 +91,7 @@ -- If the physical device supports the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-protectedMemory protectedMemory> -- feature, at least one of its queue families /must/ support this bit.-pattern QUEUE_PROTECTED_BIT      = QueueFlagBits 0x00000010+pattern QUEUE_PROTECTED_BIT = QueueFlagBits 0x00000010  conNameQueueFlagBits :: String conNameQueueFlagBits = "QueueFlagBits"@@ -90,20 +101,27 @@  showTableQueueFlagBits :: [(QueueFlagBits, String)] showTableQueueFlagBits =-  [ (QUEUE_GRAPHICS_BIT      , "GRAPHICS_BIT")-  , (QUEUE_COMPUTE_BIT       , "COMPUTE_BIT")-  , (QUEUE_TRANSFER_BIT      , "TRANSFER_BIT")+  [ (QUEUE_GRAPHICS_BIT, "GRAPHICS_BIT")+  , (QUEUE_COMPUTE_BIT, "COMPUTE_BIT")+  , (QUEUE_TRANSFER_BIT, "TRANSFER_BIT")   , (QUEUE_SPARSE_BINDING_BIT, "SPARSE_BINDING_BIT")-  , (QUEUE_PROTECTED_BIT     , "PROTECTED_BIT")+  , (QUEUE_OPTICAL_FLOW_BIT_NV, "OPTICAL_FLOW_BIT_NV")+  , (QUEUE_PROTECTED_BIT, "PROTECTED_BIT")   ]  instance Show QueueFlagBits where-  showsPrec = enumShowsPrec enumPrefixQueueFlagBits-                            showTableQueueFlagBits-                            conNameQueueFlagBits-                            (\(QueueFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixQueueFlagBits+      showTableQueueFlagBits+      conNameQueueFlagBits+      (\(QueueFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read QueueFlagBits where-  readPrec = enumReadPrec enumPrefixQueueFlagBits showTableQueueFlagBits conNameQueueFlagBits QueueFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixQueueFlagBits+      showTableQueueFlagBits+      conNameQueueFlagBits+      QueueFlagBits
src/Vulkan/Core10/Enums/RenderPassCreateFlagBits.hs view
@@ -41,18 +41,26 @@ enumPrefixRenderPassCreateFlagBits = "RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM"  showTableRenderPassCreateFlagBits :: [(RenderPassCreateFlagBits, String)]-showTableRenderPassCreateFlagBits = [(RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM, "")]+showTableRenderPassCreateFlagBits =+  [+    ( RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM+    , ""+    )+  ]  instance Show RenderPassCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixRenderPassCreateFlagBits-                            showTableRenderPassCreateFlagBits-                            conNameRenderPassCreateFlagBits-                            (\(RenderPassCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixRenderPassCreateFlagBits+      showTableRenderPassCreateFlagBits+      conNameRenderPassCreateFlagBits+      (\(RenderPassCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read RenderPassCreateFlagBits where-  readPrec = enumReadPrec enumPrefixRenderPassCreateFlagBits-                          showTableRenderPassCreateFlagBits-                          conNameRenderPassCreateFlagBits-                          RenderPassCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixRenderPassCreateFlagBits+      showTableRenderPassCreateFlagBits+      conNameRenderPassCreateFlagBits+      RenderPassCreateFlagBits
src/Vulkan/Core10/Enums/Result.hs view
@@ -101,72 +101,96 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'SUCCESS' Command successfully completed-pattern SUCCESS                              = Result 0+pattern SUCCESS = Result 0+ -- | 'NOT_READY' A fence or query has not yet completed-pattern NOT_READY                            = Result 1+pattern NOT_READY = Result 1+ -- | 'TIMEOUT' A wait operation has not completed in the specified time-pattern TIMEOUT                              = Result 2+pattern TIMEOUT = Result 2+ -- | 'EVENT_SET' An event is signaled-pattern EVENT_SET                            = Result 3+pattern EVENT_SET = Result 3+ -- | 'EVENT_RESET' An event is unsignaled-pattern EVENT_RESET                          = Result 4+pattern EVENT_RESET = Result 4+ -- | 'INCOMPLETE' A return array was too small for the result-pattern INCOMPLETE                           = Result 5+pattern INCOMPLETE = Result 5+ -- | 'ERROR_OUT_OF_HOST_MEMORY' A host memory allocation has failed.-pattern ERROR_OUT_OF_HOST_MEMORY             = Result (-1)+pattern ERROR_OUT_OF_HOST_MEMORY = Result (-1)+ -- | 'ERROR_OUT_OF_DEVICE_MEMORY' A device memory allocation has failed.-pattern ERROR_OUT_OF_DEVICE_MEMORY           = Result (-2)+pattern ERROR_OUT_OF_DEVICE_MEMORY = Result (-2)+ -- | 'ERROR_INITIALIZATION_FAILED' Initialization of an object could not be -- completed for implementation-specific reasons.-pattern ERROR_INITIALIZATION_FAILED          = Result (-3)+pattern ERROR_INITIALIZATION_FAILED = Result (-3)+ -- | 'ERROR_DEVICE_LOST' The logical or physical device has been lost. See -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#devsandqueues-lost-device Lost Device>-pattern ERROR_DEVICE_LOST                    = Result (-4)+pattern ERROR_DEVICE_LOST = Result (-4)+ -- | 'ERROR_MEMORY_MAP_FAILED' Mapping of a memory object has failed.-pattern ERROR_MEMORY_MAP_FAILED              = Result (-5)+pattern ERROR_MEMORY_MAP_FAILED = Result (-5)+ -- | 'ERROR_LAYER_NOT_PRESENT' A requested layer is not present or could not -- be loaded.-pattern ERROR_LAYER_NOT_PRESENT              = Result (-6)+pattern ERROR_LAYER_NOT_PRESENT = Result (-6)+ -- | 'ERROR_EXTENSION_NOT_PRESENT' A requested extension is not supported.-pattern ERROR_EXTENSION_NOT_PRESENT          = Result (-7)+pattern ERROR_EXTENSION_NOT_PRESENT = Result (-7)+ -- | 'ERROR_FEATURE_NOT_PRESENT' A requested feature is not supported.-pattern ERROR_FEATURE_NOT_PRESENT            = Result (-8)+pattern ERROR_FEATURE_NOT_PRESENT = Result (-8)+ -- | 'ERROR_INCOMPATIBLE_DRIVER' The requested version of Vulkan is not -- supported by the driver or is otherwise incompatible for -- implementation-specific reasons.-pattern ERROR_INCOMPATIBLE_DRIVER            = Result (-9)+pattern ERROR_INCOMPATIBLE_DRIVER = Result (-9)+ -- | 'ERROR_TOO_MANY_OBJECTS' Too many objects of the type have already been -- created.-pattern ERROR_TOO_MANY_OBJECTS               = Result (-10)+pattern ERROR_TOO_MANY_OBJECTS = Result (-10)+ -- | 'ERROR_FORMAT_NOT_SUPPORTED' A requested format is not supported on this -- device.-pattern ERROR_FORMAT_NOT_SUPPORTED           = Result (-11)+pattern ERROR_FORMAT_NOT_SUPPORTED = Result (-11)+ -- | 'ERROR_FRAGMENTED_POOL' A pool allocation has failed due to -- fragmentation of the pool’s memory. This /must/ only be returned if no -- attempt to allocate host or device memory was made to accommodate the -- new allocation. This /should/ be returned in preference to -- 'ERROR_OUT_OF_POOL_MEMORY', but only if the implementation is certain -- that the pool allocation failure was due to fragmentation.-pattern ERROR_FRAGMENTED_POOL                = Result (-12)+pattern ERROR_FRAGMENTED_POOL = Result (-12)+ -- | '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)+pattern ERROR_UNKNOWN = Result (-13)+ -- | 'ERROR_COMPRESSION_EXHAUSTED_EXT' An image creation failed because -- internal resources required for compression are exhausted. This /must/ -- only be returned when fixed-rate compression is requested.-pattern ERROR_COMPRESSION_EXHAUSTED_EXT      = Result (-1000338000)+pattern ERROR_COMPRESSION_EXHAUSTED_EXT = Result (-1000338000)+ -- | 'OPERATION_NOT_DEFERRED_KHR' A deferred operation was requested and no -- operations were deferred.-pattern OPERATION_NOT_DEFERRED_KHR           = Result 1000268003+pattern OPERATION_NOT_DEFERRED_KHR = Result 1000268003+ -- | 'OPERATION_DEFERRED_KHR' A deferred operation was requested and at least -- some of the work was deferred.-pattern OPERATION_DEFERRED_KHR               = Result 1000268002+pattern OPERATION_DEFERRED_KHR = Result 1000268002+ -- | 'THREAD_DONE_KHR' A deferred operation is not complete but there is no -- work remaining to assign to additional threads.-pattern THREAD_DONE_KHR                      = Result 1000268001+pattern THREAD_DONE_KHR = Result 1000268001+ -- | 'THREAD_IDLE_KHR' A deferred operation is not complete but there is -- currently no work for this thread to do at the time of this call.-pattern THREAD_IDLE_KHR                      = Result 1000268000+pattern THREAD_IDLE_KHR = Result 1000268000+ -- | 'ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT' An operation on a swapchain -- created with -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT'@@ -174,96 +198,114 @@ -- 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_KHR"-pattern ERROR_NOT_PERMITTED_KHR              = Result (-1000174001)+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. -- More details are reported back to the application via -- @VK_EXT_debug_report@ if enabled.-pattern ERROR_INVALID_SHADER_NV              = Result (-1000012000)+pattern ERROR_INVALID_SHADER_NV = Result (-1000012000)+ -- No documentation found for Nested "VkResult" "VK_ERROR_VALIDATION_FAILED_EXT"-pattern ERROR_VALIDATION_FAILED_EXT          = Result (-1000011001)+pattern ERROR_VALIDATION_FAILED_EXT = Result (-1000011001)+ -- | 'ERROR_INCOMPATIBLE_DISPLAY_KHR' The display used by a swapchain does -- not use the same presentable image layout, or is incompatible in a way -- that prevents sharing an image.-pattern ERROR_INCOMPATIBLE_DISPLAY_KHR       = Result (-1000003001)+pattern ERROR_INCOMPATIBLE_DISPLAY_KHR = Result (-1000003001)+ -- | 'ERROR_OUT_OF_DATE_KHR' A surface has changed in such a way that it is -- no longer compatible with the swapchain, and further presentation -- requests using the swapchain will fail. Applications /must/ query the -- new surface properties and recreate their swapchain if they wish to -- continue presenting to the surface.-pattern ERROR_OUT_OF_DATE_KHR                = Result (-1000001004)+pattern ERROR_OUT_OF_DATE_KHR = Result (-1000001004)+ -- | 'SUBOPTIMAL_KHR' A swapchain no longer matches the surface properties -- exactly, but /can/ still be used to present to the surface successfully.-pattern SUBOPTIMAL_KHR                       = Result 1000001003+pattern SUBOPTIMAL_KHR = Result 1000001003+ -- | '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.-pattern ERROR_NATIVE_WINDOW_IN_USE_KHR       = Result (-1000000001)+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)+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+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 -- handle information is no longer valid. pattern ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = Result (-1000257000)+ -- | 'ERROR_FRAGMENTATION' A descriptor pool creation has failed due to -- fragmentation.-pattern ERROR_FRAGMENTATION                  = Result (-1000161000)+pattern ERROR_FRAGMENTATION = Result (-1000161000)+ -- | 'ERROR_INVALID_EXTERNAL_HANDLE' An external handle is not a valid handle -- of the specified type.-pattern ERROR_INVALID_EXTERNAL_HANDLE        = Result (-1000072003)+pattern ERROR_INVALID_EXTERNAL_HANDLE = Result (-1000072003)+ -- | 'ERROR_OUT_OF_POOL_MEMORY' A pool memory allocation has failed. This -- /must/ only be returned if no attempt to allocate host or device memory -- was made to accommodate the new allocation. If the failure was -- definitely due to fragmentation of the pool, 'ERROR_FRAGMENTED_POOL' -- /should/ be returned instead.-pattern ERROR_OUT_OF_POOL_MEMORY             = Result (-1000069000)-{-# complete SUCCESS,-             NOT_READY,-             TIMEOUT,-             EVENT_SET,-             EVENT_RESET,-             INCOMPLETE,-             ERROR_OUT_OF_HOST_MEMORY,-             ERROR_OUT_OF_DEVICE_MEMORY,-             ERROR_INITIALIZATION_FAILED,-             ERROR_DEVICE_LOST,-             ERROR_MEMORY_MAP_FAILED,-             ERROR_LAYER_NOT_PRESENT,-             ERROR_EXTENSION_NOT_PRESENT,-             ERROR_FEATURE_NOT_PRESENT,-             ERROR_INCOMPATIBLE_DRIVER,-             ERROR_TOO_MANY_OBJECTS,-             ERROR_FORMAT_NOT_SUPPORTED,-             ERROR_FRAGMENTED_POOL,-             ERROR_UNKNOWN,-             ERROR_COMPRESSION_EXHAUSTED_EXT,-             OPERATION_NOT_DEFERRED_KHR,-             OPERATION_DEFERRED_KHR,-             THREAD_DONE_KHR,-             THREAD_IDLE_KHR,-             ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT,-             ERROR_NOT_PERMITTED_KHR,-             ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT,-             ERROR_INVALID_SHADER_NV,-             ERROR_VALIDATION_FAILED_EXT,-             ERROR_INCOMPATIBLE_DISPLAY_KHR,-             ERROR_OUT_OF_DATE_KHR,-             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,-             ERROR_OUT_OF_POOL_MEMORY :: Result #-}+pattern ERROR_OUT_OF_POOL_MEMORY = Result (-1000069000) +{-# COMPLETE+  SUCCESS+  , NOT_READY+  , TIMEOUT+  , EVENT_SET+  , EVENT_RESET+  , INCOMPLETE+  , ERROR_OUT_OF_HOST_MEMORY+  , ERROR_OUT_OF_DEVICE_MEMORY+  , ERROR_INITIALIZATION_FAILED+  , ERROR_DEVICE_LOST+  , ERROR_MEMORY_MAP_FAILED+  , ERROR_LAYER_NOT_PRESENT+  , ERROR_EXTENSION_NOT_PRESENT+  , ERROR_FEATURE_NOT_PRESENT+  , ERROR_INCOMPATIBLE_DRIVER+  , ERROR_TOO_MANY_OBJECTS+  , ERROR_FORMAT_NOT_SUPPORTED+  , ERROR_FRAGMENTED_POOL+  , ERROR_UNKNOWN+  , ERROR_COMPRESSION_EXHAUSTED_EXT+  , OPERATION_NOT_DEFERRED_KHR+  , OPERATION_DEFERRED_KHR+  , THREAD_DONE_KHR+  , THREAD_IDLE_KHR+  , ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT+  , ERROR_NOT_PERMITTED_KHR+  , ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT+  , ERROR_INVALID_SHADER_NV+  , ERROR_VALIDATION_FAILED_EXT+  , ERROR_INCOMPATIBLE_DISPLAY_KHR+  , ERROR_OUT_OF_DATE_KHR+  , 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+  , ERROR_OUT_OF_POOL_MEMORY ::+    Result+  #-}+ conNameResult :: String conNameResult = "Result" @@ -272,50 +314,81 @@  showTableResult :: [(Result, String)] showTableResult =-  [ (SUCCESS                             , "SUCCESS")-  , (NOT_READY                           , "NOT_READY")-  , (TIMEOUT                             , "TIMEOUT")-  , (EVENT_SET                           , "EVENT_SET")-  , (EVENT_RESET                         , "EVENT_RESET")-  , (INCOMPLETE                          , "INCOMPLETE")-  , (ERROR_OUT_OF_HOST_MEMORY            , "ERROR_OUT_OF_HOST_MEMORY")-  , (ERROR_OUT_OF_DEVICE_MEMORY          , "ERROR_OUT_OF_DEVICE_MEMORY")-  , (ERROR_INITIALIZATION_FAILED         , "ERROR_INITIALIZATION_FAILED")-  , (ERROR_DEVICE_LOST                   , "ERROR_DEVICE_LOST")-  , (ERROR_MEMORY_MAP_FAILED             , "ERROR_MEMORY_MAP_FAILED")-  , (ERROR_LAYER_NOT_PRESENT             , "ERROR_LAYER_NOT_PRESENT")-  , (ERROR_EXTENSION_NOT_PRESENT         , "ERROR_EXTENSION_NOT_PRESENT")-  , (ERROR_FEATURE_NOT_PRESENT           , "ERROR_FEATURE_NOT_PRESENT")-  , (ERROR_INCOMPATIBLE_DRIVER           , "ERROR_INCOMPATIBLE_DRIVER")-  , (ERROR_TOO_MANY_OBJECTS              , "ERROR_TOO_MANY_OBJECTS")-  , (ERROR_FORMAT_NOT_SUPPORTED          , "ERROR_FORMAT_NOT_SUPPORTED")-  , (ERROR_FRAGMENTED_POOL               , "ERROR_FRAGMENTED_POOL")-  , (ERROR_UNKNOWN                       , "ERROR_UNKNOWN")-  , (ERROR_COMPRESSION_EXHAUSTED_EXT     , "ERROR_COMPRESSION_EXHAUSTED_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_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")-  , (ERROR_INCOMPATIBLE_DISPLAY_KHR      , "ERROR_INCOMPATIBLE_DISPLAY_KHR")-  , (ERROR_OUT_OF_DATE_KHR               , "ERROR_OUT_OF_DATE_KHR")-  , (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")-  , (ERROR_OUT_OF_POOL_MEMORY            , "ERROR_OUT_OF_POOL_MEMORY")+  [ (SUCCESS, "SUCCESS")+  , (NOT_READY, "NOT_READY")+  , (TIMEOUT, "TIMEOUT")+  , (EVENT_SET, "EVENT_SET")+  , (EVENT_RESET, "EVENT_RESET")+  , (INCOMPLETE, "INCOMPLETE")+  , (ERROR_OUT_OF_HOST_MEMORY, "ERROR_OUT_OF_HOST_MEMORY")+  , (ERROR_OUT_OF_DEVICE_MEMORY, "ERROR_OUT_OF_DEVICE_MEMORY")+  , (ERROR_INITIALIZATION_FAILED, "ERROR_INITIALIZATION_FAILED")+  , (ERROR_DEVICE_LOST, "ERROR_DEVICE_LOST")+  , (ERROR_MEMORY_MAP_FAILED, "ERROR_MEMORY_MAP_FAILED")+  , (ERROR_LAYER_NOT_PRESENT, "ERROR_LAYER_NOT_PRESENT")+  , (ERROR_EXTENSION_NOT_PRESENT, "ERROR_EXTENSION_NOT_PRESENT")+  , (ERROR_FEATURE_NOT_PRESENT, "ERROR_FEATURE_NOT_PRESENT")+  , (ERROR_INCOMPATIBLE_DRIVER, "ERROR_INCOMPATIBLE_DRIVER")+  , (ERROR_TOO_MANY_OBJECTS, "ERROR_TOO_MANY_OBJECTS")+  , (ERROR_FORMAT_NOT_SUPPORTED, "ERROR_FORMAT_NOT_SUPPORTED")+  , (ERROR_FRAGMENTED_POOL, "ERROR_FRAGMENTED_POOL")+  , (ERROR_UNKNOWN, "ERROR_UNKNOWN")+  ,+    ( ERROR_COMPRESSION_EXHAUSTED_EXT+    , "ERROR_COMPRESSION_EXHAUSTED_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_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")+  ,+    ( ERROR_INCOMPATIBLE_DISPLAY_KHR+    , "ERROR_INCOMPATIBLE_DISPLAY_KHR"+    )+  , (ERROR_OUT_OF_DATE_KHR, "ERROR_OUT_OF_DATE_KHR")+  , (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"+    )+  , (ERROR_OUT_OF_POOL_MEMORY, "ERROR_OUT_OF_POOL_MEMORY")   ]  instance Show Result where-  showsPrec = enumShowsPrec enumPrefixResult showTableResult conNameResult (\(Result x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixResult+      showTableResult+      conNameResult+      (\(Result x) -> x)+      (showsPrec 11)  instance Read Result where-  readPrec = enumReadPrec enumPrefixResult showTableResult conNameResult Result-+  readPrec =+    enumReadPrec+      enumPrefixResult+      showTableResult+      conNameResult+      Result
src/Vulkan/Core10/Enums/SampleCountFlagBits.hs view
@@ -44,23 +44,31 @@ -- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo', -- 'SampleCountFlags', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT', -- 'Vulkan.Core10.SparseResourceMemoryManagement.getPhysicalDeviceSparseImageFormatProperties' newtype SampleCountFlagBits = SampleCountFlagBits Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'SAMPLE_COUNT_1_BIT' specifies an image with one sample per pixel.-pattern SAMPLE_COUNT_1_BIT  = SampleCountFlagBits 0x00000001+pattern SAMPLE_COUNT_1_BIT = SampleCountFlagBits 0x00000001+ -- | 'SAMPLE_COUNT_2_BIT' specifies an image with 2 samples per pixel.-pattern SAMPLE_COUNT_2_BIT  = SampleCountFlagBits 0x00000002+pattern SAMPLE_COUNT_2_BIT = SampleCountFlagBits 0x00000002+ -- | 'SAMPLE_COUNT_4_BIT' specifies an image with 4 samples per pixel.-pattern SAMPLE_COUNT_4_BIT  = SampleCountFlagBits 0x00000004+pattern SAMPLE_COUNT_4_BIT = SampleCountFlagBits 0x00000004+ -- | 'SAMPLE_COUNT_8_BIT' specifies an image with 8 samples per pixel.-pattern SAMPLE_COUNT_8_BIT  = SampleCountFlagBits 0x00000008+pattern SAMPLE_COUNT_8_BIT = SampleCountFlagBits 0x00000008+ -- | 'SAMPLE_COUNT_16_BIT' specifies an image with 16 samples per pixel. pattern SAMPLE_COUNT_16_BIT = SampleCountFlagBits 0x00000010+ -- | 'SAMPLE_COUNT_32_BIT' specifies an image with 32 samples per pixel. pattern SAMPLE_COUNT_32_BIT = SampleCountFlagBits 0x00000020+ -- | 'SAMPLE_COUNT_64_BIT' specifies an image with 64 samples per pixel. pattern SAMPLE_COUNT_64_BIT = SampleCountFlagBits 0x00000040 @@ -72,25 +80,28 @@  showTableSampleCountFlagBits :: [(SampleCountFlagBits, String)] showTableSampleCountFlagBits =-  [ (SAMPLE_COUNT_1_BIT , "1_BIT")-  , (SAMPLE_COUNT_2_BIT , "2_BIT")-  , (SAMPLE_COUNT_4_BIT , "4_BIT")-  , (SAMPLE_COUNT_8_BIT , "8_BIT")+  [ (SAMPLE_COUNT_1_BIT, "1_BIT")+  , (SAMPLE_COUNT_2_BIT, "2_BIT")+  , (SAMPLE_COUNT_4_BIT, "4_BIT")+  , (SAMPLE_COUNT_8_BIT, "8_BIT")   , (SAMPLE_COUNT_16_BIT, "16_BIT")   , (SAMPLE_COUNT_32_BIT, "32_BIT")   , (SAMPLE_COUNT_64_BIT, "64_BIT")   ]  instance Show SampleCountFlagBits where-  showsPrec = enumShowsPrec enumPrefixSampleCountFlagBits-                            showTableSampleCountFlagBits-                            conNameSampleCountFlagBits-                            (\(SampleCountFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSampleCountFlagBits+      showTableSampleCountFlagBits+      conNameSampleCountFlagBits+      (\(SampleCountFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SampleCountFlagBits where-  readPrec = enumReadPrec enumPrefixSampleCountFlagBits-                          showTableSampleCountFlagBits-                          conNameSampleCountFlagBits-                          SampleCountFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSampleCountFlagBits+      showTableSampleCountFlagBits+      conNameSampleCountFlagBits+      SampleCountFlagBits
src/Vulkan/Core10/Enums/SamplerAddressMode.hs view
@@ -29,28 +29,36 @@  -- | 'SAMPLER_ADDRESS_MODE_REPEAT' specifies that the repeat wrap mode will -- be used.-pattern SAMPLER_ADDRESS_MODE_REPEAT               = SamplerAddressMode 0+pattern SAMPLER_ADDRESS_MODE_REPEAT = SamplerAddressMode 0+ -- | 'SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT' specifies that the mirrored -- repeat wrap mode will be used.-pattern SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT      = SamplerAddressMode 1+pattern SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = SamplerAddressMode 1+ -- | 'SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE' specifies that the clamp to edge -- wrap mode will be used.-pattern SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE        = SamplerAddressMode 2+pattern SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = SamplerAddressMode 2+ -- | 'SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER' specifies that the clamp to -- border wrap mode will be used.-pattern SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER      = SamplerAddressMode 3+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://registry.khronos.org/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-{-# complete SAMPLER_ADDRESS_MODE_REPEAT,-             SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT,-             SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE,-             SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER,-             SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE :: SamplerAddressMode #-} +{-# COMPLETE+  SAMPLER_ADDRESS_MODE_REPEAT+  , SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT+  , SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE+  , SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER+  , SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE ::+    SamplerAddressMode+  #-}+ conNameSamplerAddressMode :: String conNameSamplerAddressMode = "SamplerAddressMode" @@ -59,21 +67,38 @@  showTableSamplerAddressMode :: [(SamplerAddressMode, String)] showTableSamplerAddressMode =-  [ (SAMPLER_ADDRESS_MODE_REPEAT              , "REPEAT")-  , (SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT     , "MIRRORED_REPEAT")-  , (SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE       , "CLAMP_TO_EDGE")-  , (SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER     , "CLAMP_TO_BORDER")-  , (SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, "MIRROR_CLAMP_TO_EDGE")+  [ (SAMPLER_ADDRESS_MODE_REPEAT, "REPEAT")+  ,+    ( SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT+    , "MIRRORED_REPEAT"+    )+  ,+    ( SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE+    , "CLAMP_TO_EDGE"+    )+  ,+    ( SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER+    , "CLAMP_TO_BORDER"+    )+  ,+    ( SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE+    , "MIRROR_CLAMP_TO_EDGE"+    )   ]  instance Show SamplerAddressMode where-  showsPrec = enumShowsPrec enumPrefixSamplerAddressMode-                            showTableSamplerAddressMode-                            conNameSamplerAddressMode-                            (\(SamplerAddressMode x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSamplerAddressMode+      showTableSamplerAddressMode+      conNameSamplerAddressMode+      (\(SamplerAddressMode x) -> x)+      (showsPrec 11)  instance Read SamplerAddressMode where   readPrec =-    enumReadPrec enumPrefixSamplerAddressMode showTableSamplerAddressMode conNameSamplerAddressMode SamplerAddressMode-+    enumReadPrec+      enumPrefixSamplerAddressMode+      showTableSamplerAddressMode+      conNameSamplerAddressMode+      SamplerAddressMode
src/Vulkan/Core10/Enums/SamplerCreateFlagBits.hs view
@@ -48,20 +48,23 @@ -- will read from images using only @OpImageWeightedSampleQCOM@, -- @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or -- @OpImageBlockMatchSADQCOM@.-pattern SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM                = SamplerCreateFlagBits 0x00000010+pattern SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = SamplerCreateFlagBits 0x00000010+ -- | 'SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT' specifies that -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-cubemapedge cube map edge handling> -- is not performed.-pattern SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT            = SamplerCreateFlagBits 0x00000004+pattern SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = SamplerCreateFlagBits 0x00000004+ -- | 'SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT' specifies that -- the implementation /may/ use approximations when reconstructing a full -- color value for texture access from a subsampled image. pattern SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = SamplerCreateFlagBits 0x00000002+ -- | #samplers-subsamplesampler# 'SAMPLER_CREATE_SUBSAMPLED_BIT_EXT' -- specifies that the sampler will read from an image created with @flags@ -- containing -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'.-pattern SAMPLER_CREATE_SUBSAMPLED_BIT_EXT                       = SamplerCreateFlagBits 0x00000001+pattern SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = SamplerCreateFlagBits 0x00000001  conNameSamplerCreateFlagBits :: String conNameSamplerCreateFlagBits = "SamplerCreateFlagBits"@@ -71,22 +74,37 @@  showTableSamplerCreateFlagBits :: [(SamplerCreateFlagBits, String)] showTableSamplerCreateFlagBits =-  [ (SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM               , "IMAGE_PROCESSING_BIT_QCOM")-  , (SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT           , "NON_SEAMLESS_CUBE_MAP_BIT_EXT")-  , (SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT, "SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT")-  , (SAMPLER_CREATE_SUBSAMPLED_BIT_EXT                      , "SUBSAMPLED_BIT_EXT")+  [+    ( SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM+    , "IMAGE_PROCESSING_BIT_QCOM"+    )+  ,+    ( SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT+    , "NON_SEAMLESS_CUBE_MAP_BIT_EXT"+    )+  ,+    ( SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT+    , "SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT"+    )+  ,+    ( SAMPLER_CREATE_SUBSAMPLED_BIT_EXT+    , "SUBSAMPLED_BIT_EXT"+    )   ]  instance Show SamplerCreateFlagBits where-  showsPrec = enumShowsPrec enumPrefixSamplerCreateFlagBits-                            showTableSamplerCreateFlagBits-                            conNameSamplerCreateFlagBits-                            (\(SamplerCreateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSamplerCreateFlagBits+      showTableSamplerCreateFlagBits+      conNameSamplerCreateFlagBits+      (\(SamplerCreateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SamplerCreateFlagBits where-  readPrec = enumReadPrec enumPrefixSamplerCreateFlagBits-                          showTableSamplerCreateFlagBits-                          conNameSamplerCreateFlagBits-                          SamplerCreateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSamplerCreateFlagBits+      showTableSamplerCreateFlagBits+      conNameSamplerCreateFlagBits+      SamplerCreateFlagBits
src/Vulkan/Core10/Enums/SamplerMipmapMode.hs view
@@ -30,11 +30,16 @@  -- | 'SAMPLER_MIPMAP_MODE_NEAREST' specifies nearest filtering. pattern SAMPLER_MIPMAP_MODE_NEAREST = SamplerMipmapMode 0+ -- | 'SAMPLER_MIPMAP_MODE_LINEAR' specifies linear filtering.-pattern SAMPLER_MIPMAP_MODE_LINEAR  = SamplerMipmapMode 1-{-# complete SAMPLER_MIPMAP_MODE_NEAREST,-             SAMPLER_MIPMAP_MODE_LINEAR :: SamplerMipmapMode #-}+pattern SAMPLER_MIPMAP_MODE_LINEAR = SamplerMipmapMode 1 +{-# COMPLETE+  SAMPLER_MIPMAP_MODE_NEAREST+  , SAMPLER_MIPMAP_MODE_LINEAR ::+    SamplerMipmapMode+  #-}+ conNameSamplerMipmapMode :: String conNameSamplerMipmapMode = "SamplerMipmapMode" @@ -42,16 +47,24 @@ enumPrefixSamplerMipmapMode = "SAMPLER_MIPMAP_MODE_"  showTableSamplerMipmapMode :: [(SamplerMipmapMode, String)]-showTableSamplerMipmapMode = [(SAMPLER_MIPMAP_MODE_NEAREST, "NEAREST"), (SAMPLER_MIPMAP_MODE_LINEAR, "LINEAR")]+showTableSamplerMipmapMode =+  [ (SAMPLER_MIPMAP_MODE_NEAREST, "NEAREST")+  , (SAMPLER_MIPMAP_MODE_LINEAR, "LINEAR")+  ]  instance Show SamplerMipmapMode where-  showsPrec = enumShowsPrec enumPrefixSamplerMipmapMode-                            showTableSamplerMipmapMode-                            conNameSamplerMipmapMode-                            (\(SamplerMipmapMode x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSamplerMipmapMode+      showTableSamplerMipmapMode+      conNameSamplerMipmapMode+      (\(SamplerMipmapMode x) -> x)+      (showsPrec 11)  instance Read SamplerMipmapMode where   readPrec =-    enumReadPrec enumPrefixSamplerMipmapMode showTableSamplerMipmapMode conNameSamplerMipmapMode SamplerMipmapMode-+    enumReadPrec+      enumPrefixSamplerMipmapMode+      showTableSamplerMipmapMode+      conNameSamplerMipmapMode+      SamplerMipmapMode
src/Vulkan/Core10/Enums/SemaphoreCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype SemaphoreCreateFlags = SemaphoreCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameSemaphoreCreateFlags :: String conNameSemaphoreCreateFlags = "SemaphoreCreateFlags" @@ -39,15 +37,18 @@ showTableSemaphoreCreateFlags = []  instance Show SemaphoreCreateFlags where-  showsPrec = enumShowsPrec enumPrefixSemaphoreCreateFlags-                            showTableSemaphoreCreateFlags-                            conNameSemaphoreCreateFlags-                            (\(SemaphoreCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSemaphoreCreateFlags+      showTableSemaphoreCreateFlags+      conNameSemaphoreCreateFlags+      (\(SemaphoreCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SemaphoreCreateFlags where-  readPrec = enumReadPrec enumPrefixSemaphoreCreateFlags-                          showTableSemaphoreCreateFlags-                          conNameSemaphoreCreateFlags-                          SemaphoreCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixSemaphoreCreateFlags+      showTableSemaphoreCreateFlags+      conNameSemaphoreCreateFlags+      SemaphoreCreateFlags
src/Vulkan/Core10/Enums/ShaderModuleCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype ShaderModuleCreateFlags = ShaderModuleCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameShaderModuleCreateFlags :: String conNameShaderModuleCreateFlags = "ShaderModuleCreateFlags" @@ -39,15 +37,18 @@ showTableShaderModuleCreateFlags = []  instance Show ShaderModuleCreateFlags where-  showsPrec = enumShowsPrec enumPrefixShaderModuleCreateFlags-                            showTableShaderModuleCreateFlags-                            conNameShaderModuleCreateFlags-                            (\(ShaderModuleCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixShaderModuleCreateFlags+      showTableShaderModuleCreateFlags+      conNameShaderModuleCreateFlags+      (\(ShaderModuleCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ShaderModuleCreateFlags where-  readPrec = enumReadPrec enumPrefixShaderModuleCreateFlags-                          showTableShaderModuleCreateFlags-                          conNameShaderModuleCreateFlags-                          ShaderModuleCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixShaderModuleCreateFlags+      showTableShaderModuleCreateFlags+      conNameShaderModuleCreateFlags+      ShaderModuleCreateFlags
src/Vulkan/Core10/Enums/ShaderStageFlagBits.hs view
@@ -55,45 +55,61 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'SHADER_STAGE_VERTEX_BIT' specifies the vertex stage.-pattern SHADER_STAGE_VERTEX_BIT                  = ShaderStageFlagBits 0x00000001+pattern SHADER_STAGE_VERTEX_BIT = ShaderStageFlagBits 0x00000001+ -- | 'SHADER_STAGE_TESSELLATION_CONTROL_BIT' specifies the tessellation -- control stage.-pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT    = ShaderStageFlagBits 0x00000002+pattern SHADER_STAGE_TESSELLATION_CONTROL_BIT = ShaderStageFlagBits 0x00000002+ -- | 'SHADER_STAGE_TESSELLATION_EVALUATION_BIT' specifies the tessellation -- evaluation stage. pattern SHADER_STAGE_TESSELLATION_EVALUATION_BIT = ShaderStageFlagBits 0x00000004+ -- | 'SHADER_STAGE_GEOMETRY_BIT' specifies the geometry stage.-pattern SHADER_STAGE_GEOMETRY_BIT                = ShaderStageFlagBits 0x00000008+pattern SHADER_STAGE_GEOMETRY_BIT = ShaderStageFlagBits 0x00000008+ -- | 'SHADER_STAGE_FRAGMENT_BIT' specifies the fragment stage.-pattern SHADER_STAGE_FRAGMENT_BIT                = ShaderStageFlagBits 0x00000010+pattern SHADER_STAGE_FRAGMENT_BIT = ShaderStageFlagBits 0x00000010+ -- | 'SHADER_STAGE_COMPUTE_BIT' specifies the compute stage.-pattern SHADER_STAGE_COMPUTE_BIT                 = ShaderStageFlagBits 0x00000020+pattern SHADER_STAGE_COMPUTE_BIT = ShaderStageFlagBits 0x00000020+ -- | 'SHADER_STAGE_ALL_GRAPHICS' is a combination of bits used as shorthand -- to specify all graphics stages defined above (excluding the compute -- stage).-pattern SHADER_STAGE_ALL_GRAPHICS                = ShaderStageFlagBits 0x0000001f+pattern SHADER_STAGE_ALL_GRAPHICS = ShaderStageFlagBits 0x0000001f+ -- | 'SHADER_STAGE_ALL' is a combination of bits used as shorthand to specify -- all shader stages supported by the device, including all additional -- stages which are introduced by extensions.-pattern SHADER_STAGE_ALL                         = ShaderStageFlagBits 0x7fffffff+pattern SHADER_STAGE_ALL = ShaderStageFlagBits 0x7fffffff+ -- No documentation found for Nested "VkShaderStageFlagBits" "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI"-pattern SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI  = ShaderStageFlagBits 0x00004000+pattern SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = ShaderStageFlagBits 0x00004000+ -- | 'SHADER_STAGE_MESH_BIT_EXT' specifies the mesh stage.-pattern SHADER_STAGE_MESH_BIT_EXT                = ShaderStageFlagBits 0x00000080+pattern SHADER_STAGE_MESH_BIT_EXT = ShaderStageFlagBits 0x00000080+ -- | 'SHADER_STAGE_TASK_BIT_EXT' specifies the task stage.-pattern SHADER_STAGE_TASK_BIT_EXT                = ShaderStageFlagBits 0x00000040+pattern SHADER_STAGE_TASK_BIT_EXT = ShaderStageFlagBits 0x00000040+ -- | 'SHADER_STAGE_CALLABLE_BIT_KHR' specifies the callable stage.-pattern SHADER_STAGE_CALLABLE_BIT_KHR            = ShaderStageFlagBits 0x00002000+pattern SHADER_STAGE_CALLABLE_BIT_KHR = ShaderStageFlagBits 0x00002000+ -- | 'SHADER_STAGE_INTERSECTION_BIT_KHR' specifies the intersection stage.-pattern SHADER_STAGE_INTERSECTION_BIT_KHR        = ShaderStageFlagBits 0x00001000+pattern SHADER_STAGE_INTERSECTION_BIT_KHR = ShaderStageFlagBits 0x00001000+ -- | 'SHADER_STAGE_MISS_BIT_KHR' specifies the miss stage.-pattern SHADER_STAGE_MISS_BIT_KHR                = ShaderStageFlagBits 0x00000800+pattern SHADER_STAGE_MISS_BIT_KHR = ShaderStageFlagBits 0x00000800+ -- | 'SHADER_STAGE_CLOSEST_HIT_BIT_KHR' specifies the closest hit stage.-pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR         = ShaderStageFlagBits 0x00000400+pattern SHADER_STAGE_CLOSEST_HIT_BIT_KHR = ShaderStageFlagBits 0x00000400+ -- | 'SHADER_STAGE_ANY_HIT_BIT_KHR' specifies the any-hit stage.-pattern SHADER_STAGE_ANY_HIT_BIT_KHR             = ShaderStageFlagBits 0x00000200+pattern SHADER_STAGE_ANY_HIT_BIT_KHR = ShaderStageFlagBits 0x00000200+ -- | 'SHADER_STAGE_RAYGEN_BIT_KHR' specifies the ray generation stage.-pattern SHADER_STAGE_RAYGEN_BIT_KHR              = ShaderStageFlagBits 0x00000100+pattern SHADER_STAGE_RAYGEN_BIT_KHR = ShaderStageFlagBits 0x00000100  conNameShaderStageFlagBits :: String conNameShaderStageFlagBits = "ShaderStageFlagBits"@@ -103,35 +119,62 @@  showTableShaderStageFlagBits :: [(ShaderStageFlagBits, String)] showTableShaderStageFlagBits =-  [ (SHADER_STAGE_VERTEX_BIT                 , "VERTEX_BIT")-  , (SHADER_STAGE_TESSELLATION_CONTROL_BIT   , "TESSELLATION_CONTROL_BIT")-  , (SHADER_STAGE_TESSELLATION_EVALUATION_BIT, "TESSELLATION_EVALUATION_BIT")-  , (SHADER_STAGE_GEOMETRY_BIT               , "GEOMETRY_BIT")-  , (SHADER_STAGE_FRAGMENT_BIT               , "FRAGMENT_BIT")-  , (SHADER_STAGE_COMPUTE_BIT                , "COMPUTE_BIT")-  , (SHADER_STAGE_ALL_GRAPHICS               , "ALL_GRAPHICS")-  , (SHADER_STAGE_ALL                        , "ALL")-  , (SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI , "SUBPASS_SHADING_BIT_HUAWEI")-  , (SHADER_STAGE_MESH_BIT_EXT               , "MESH_BIT_EXT")-  , (SHADER_STAGE_TASK_BIT_EXT               , "TASK_BIT_EXT")-  , (SHADER_STAGE_CALLABLE_BIT_KHR           , "CALLABLE_BIT_KHR")-  , (SHADER_STAGE_INTERSECTION_BIT_KHR       , "INTERSECTION_BIT_KHR")-  , (SHADER_STAGE_MISS_BIT_KHR               , "MISS_BIT_KHR")-  , (SHADER_STAGE_CLOSEST_HIT_BIT_KHR        , "CLOSEST_HIT_BIT_KHR")-  , (SHADER_STAGE_ANY_HIT_BIT_KHR            , "ANY_HIT_BIT_KHR")-  , (SHADER_STAGE_RAYGEN_BIT_KHR             , "RAYGEN_BIT_KHR")+  [ (SHADER_STAGE_VERTEX_BIT, "VERTEX_BIT")+  ,+    ( SHADER_STAGE_TESSELLATION_CONTROL_BIT+    , "TESSELLATION_CONTROL_BIT"+    )+  ,+    ( SHADER_STAGE_TESSELLATION_EVALUATION_BIT+    , "TESSELLATION_EVALUATION_BIT"+    )+  , (SHADER_STAGE_GEOMETRY_BIT, "GEOMETRY_BIT")+  , (SHADER_STAGE_FRAGMENT_BIT, "FRAGMENT_BIT")+  , (SHADER_STAGE_COMPUTE_BIT, "COMPUTE_BIT")+  , (SHADER_STAGE_ALL_GRAPHICS, "ALL_GRAPHICS")+  , (SHADER_STAGE_ALL, "ALL")+  ,+    ( SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI+    , "SUBPASS_SHADING_BIT_HUAWEI"+    )+  , (SHADER_STAGE_MESH_BIT_EXT, "MESH_BIT_EXT")+  , (SHADER_STAGE_TASK_BIT_EXT, "TASK_BIT_EXT")+  ,+    ( SHADER_STAGE_CALLABLE_BIT_KHR+    , "CALLABLE_BIT_KHR"+    )+  ,+    ( SHADER_STAGE_INTERSECTION_BIT_KHR+    , "INTERSECTION_BIT_KHR"+    )+  , (SHADER_STAGE_MISS_BIT_KHR, "MISS_BIT_KHR")+  ,+    ( SHADER_STAGE_CLOSEST_HIT_BIT_KHR+    , "CLOSEST_HIT_BIT_KHR"+    )+  ,+    ( SHADER_STAGE_ANY_HIT_BIT_KHR+    , "ANY_HIT_BIT_KHR"+    )+  ,+    ( SHADER_STAGE_RAYGEN_BIT_KHR+    , "RAYGEN_BIT_KHR"+    )   ]  instance Show ShaderStageFlagBits where-  showsPrec = enumShowsPrec enumPrefixShaderStageFlagBits-                            showTableShaderStageFlagBits-                            conNameShaderStageFlagBits-                            (\(ShaderStageFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixShaderStageFlagBits+      showTableShaderStageFlagBits+      conNameShaderStageFlagBits+      (\(ShaderStageFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ShaderStageFlagBits where-  readPrec = enumReadPrec enumPrefixShaderStageFlagBits-                          showTableShaderStageFlagBits-                          conNameShaderStageFlagBits-                          ShaderStageFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixShaderStageFlagBits+      showTableShaderStageFlagBits+      conNameShaderStageFlagBits+      ShaderStageFlagBits
src/Vulkan/Core10/Enums/SharingMode.hs view
@@ -67,14 +67,19 @@ -- | 'SHARING_MODE_EXCLUSIVE' specifies that access to any range or image -- subresource of the object will be exclusive to a single queue family at -- a time.-pattern SHARING_MODE_EXCLUSIVE  = SharingMode 0+pattern SHARING_MODE_EXCLUSIVE = SharingMode 0+ -- | 'SHARING_MODE_CONCURRENT' specifies that concurrent access to any range -- or image subresource of the object from multiple queue families is -- supported. pattern SHARING_MODE_CONCURRENT = SharingMode 1-{-# complete SHARING_MODE_EXCLUSIVE,-             SHARING_MODE_CONCURRENT :: SharingMode #-} +{-# COMPLETE+  SHARING_MODE_EXCLUSIVE+  , SHARING_MODE_CONCURRENT ::+    SharingMode+  #-}+ conNameSharingMode :: String conNameSharingMode = "SharingMode" @@ -82,12 +87,24 @@ enumPrefixSharingMode = "SHARING_MODE_"  showTableSharingMode :: [(SharingMode, String)]-showTableSharingMode = [(SHARING_MODE_EXCLUSIVE, "EXCLUSIVE"), (SHARING_MODE_CONCURRENT, "CONCURRENT")]+showTableSharingMode =+  [ (SHARING_MODE_EXCLUSIVE, "EXCLUSIVE")+  , (SHARING_MODE_CONCURRENT, "CONCURRENT")+  ]  instance Show SharingMode where   showsPrec =-    enumShowsPrec enumPrefixSharingMode showTableSharingMode conNameSharingMode (\(SharingMode x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixSharingMode+      showTableSharingMode+      conNameSharingMode+      (\(SharingMode x) -> x)+      (showsPrec 11)  instance Read SharingMode where-  readPrec = enumReadPrec enumPrefixSharingMode showTableSharingMode conNameSharingMode SharingMode-+  readPrec =+    enumReadPrec+      enumPrefixSharingMode+      showTableSharingMode+      conNameSharingMode+      SharingMode
src/Vulkan/Core10/Enums/SparseImageFormatFlagBits.hs view
@@ -33,11 +33,13 @@  -- | 'SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT' specifies that the image uses a -- single mip tail region for all array layers.-pattern SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT         = SparseImageFormatFlagBits 0x00000001+pattern SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = SparseImageFormatFlagBits 0x00000001+ -- | 'SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT' specifies that the first mip -- level whose dimensions are not integer multiples of the corresponding -- dimensions of the sparse image block begins the mip tail region.-pattern SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT       = SparseImageFormatFlagBits 0x00000002+pattern SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = SparseImageFormatFlagBits 0x00000002+ -- | 'SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT' specifies that the -- image uses non-standard sparse image block dimensions, and the -- @imageGranularity@ values do not match the standard sparse image block@@ -52,21 +54,33 @@  showTableSparseImageFormatFlagBits :: [(SparseImageFormatFlagBits, String)] showTableSparseImageFormatFlagBits =-  [ (SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT        , "SINGLE_MIPTAIL_BIT")-  , (SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT      , "ALIGNED_MIP_SIZE_BIT")-  , (SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT, "NONSTANDARD_BLOCK_SIZE_BIT")+  [+    ( SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT+    , "SINGLE_MIPTAIL_BIT"+    )+  ,+    ( SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT+    , "ALIGNED_MIP_SIZE_BIT"+    )+  ,+    ( SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT+    , "NONSTANDARD_BLOCK_SIZE_BIT"+    )   ]  instance Show SparseImageFormatFlagBits where-  showsPrec = enumShowsPrec enumPrefixSparseImageFormatFlagBits-                            showTableSparseImageFormatFlagBits-                            conNameSparseImageFormatFlagBits-                            (\(SparseImageFormatFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSparseImageFormatFlagBits+      showTableSparseImageFormatFlagBits+      conNameSparseImageFormatFlagBits+      (\(SparseImageFormatFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SparseImageFormatFlagBits where-  readPrec = enumReadPrec enumPrefixSparseImageFormatFlagBits-                          showTableSparseImageFormatFlagBits-                          conNameSparseImageFormatFlagBits-                          SparseImageFormatFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSparseImageFormatFlagBits+      showTableSparseImageFormatFlagBits+      conNameSparseImageFormatFlagBits+      SparseImageFormatFlagBits
src/Vulkan/Core10/Enums/SparseMemoryBindFlagBits.hs view
@@ -43,15 +43,18 @@ showTableSparseMemoryBindFlagBits = [(SPARSE_MEMORY_BIND_METADATA_BIT, "")]  instance Show SparseMemoryBindFlagBits where-  showsPrec = enumShowsPrec enumPrefixSparseMemoryBindFlagBits-                            showTableSparseMemoryBindFlagBits-                            conNameSparseMemoryBindFlagBits-                            (\(SparseMemoryBindFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSparseMemoryBindFlagBits+      showTableSparseMemoryBindFlagBits+      conNameSparseMemoryBindFlagBits+      (\(SparseMemoryBindFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SparseMemoryBindFlagBits where-  readPrec = enumReadPrec enumPrefixSparseMemoryBindFlagBits-                          showTableSparseMemoryBindFlagBits-                          conNameSparseMemoryBindFlagBits-                          SparseMemoryBindFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSparseMemoryBindFlagBits+      showTableSparseMemoryBindFlagBits+      conNameSparseMemoryBindFlagBits+      SparseMemoryBindFlagBits
src/Vulkan/Core10/Enums/StencilFaceFlagBits.hs view
@@ -38,10 +38,12 @@  -- | 'STENCIL_FACE_FRONT_BIT' specifies that only the front set of stencil -- state is updated.-pattern STENCIL_FACE_FRONT_BIT      = StencilFaceFlagBits 0x00000001+pattern STENCIL_FACE_FRONT_BIT = StencilFaceFlagBits 0x00000001+ -- | 'STENCIL_FACE_BACK_BIT' specifies that only the back set of stencil -- state is updated.-pattern STENCIL_FACE_BACK_BIT       = StencilFaceFlagBits 0x00000002+pattern STENCIL_FACE_BACK_BIT = StencilFaceFlagBits 0x00000002+ -- | 'STENCIL_FACE_FRONT_AND_BACK' is the combination of -- 'STENCIL_FACE_FRONT_BIT' and 'STENCIL_FACE_BACK_BIT', and specifies that -- both sets of stencil state are updated.@@ -55,21 +57,27 @@  showTableStencilFaceFlagBits :: [(StencilFaceFlagBits, String)] showTableStencilFaceFlagBits =-  [ (STENCIL_FACE_FRONT_BIT     , "FRONT_BIT")-  , (STENCIL_FACE_BACK_BIT      , "BACK_BIT")-  , (STENCIL_FACE_FRONT_AND_BACK, "FRONT_AND_BACK")+  [ (STENCIL_FACE_FRONT_BIT, "FRONT_BIT")+  , (STENCIL_FACE_BACK_BIT, "BACK_BIT")+  ,+    ( STENCIL_FACE_FRONT_AND_BACK+    , "FRONT_AND_BACK"+    )   ]  instance Show StencilFaceFlagBits where-  showsPrec = enumShowsPrec enumPrefixStencilFaceFlagBits-                            showTableStencilFaceFlagBits-                            conNameStencilFaceFlagBits-                            (\(StencilFaceFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixStencilFaceFlagBits+      showTableStencilFaceFlagBits+      conNameStencilFaceFlagBits+      (\(StencilFaceFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read StencilFaceFlagBits where-  readPrec = enumReadPrec enumPrefixStencilFaceFlagBits-                          showTableStencilFaceFlagBits-                          conNameStencilFaceFlagBits-                          StencilFaceFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixStencilFaceFlagBits+      showTableStencilFaceFlagBits+      conNameStencilFaceFlagBits+      StencilFaceFlagBits
src/Vulkan/Core10/Enums/StencilOp.hs view
@@ -37,34 +37,45 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'STENCIL_OP_KEEP' keeps the current value.-pattern STENCIL_OP_KEEP                = StencilOp 0+pattern STENCIL_OP_KEEP = StencilOp 0+ -- | 'STENCIL_OP_ZERO' sets the value to 0.-pattern STENCIL_OP_ZERO                = StencilOp 1+pattern STENCIL_OP_ZERO = StencilOp 1+ -- | 'STENCIL_OP_REPLACE' sets the value to @reference@.-pattern STENCIL_OP_REPLACE             = StencilOp 2+pattern STENCIL_OP_REPLACE = StencilOp 2+ -- | 'STENCIL_OP_INCREMENT_AND_CLAMP' increments the current value and clamps -- to the maximum representable unsigned value. pattern STENCIL_OP_INCREMENT_AND_CLAMP = StencilOp 3+ -- | 'STENCIL_OP_DECREMENT_AND_CLAMP' decrements the current value and clamps -- to 0. pattern STENCIL_OP_DECREMENT_AND_CLAMP = StencilOp 4+ -- | 'STENCIL_OP_INVERT' bitwise-inverts the current value.-pattern STENCIL_OP_INVERT              = StencilOp 5+pattern STENCIL_OP_INVERT = StencilOp 5+ -- | 'STENCIL_OP_INCREMENT_AND_WRAP' increments the current value and wraps -- to 0 when the maximum value would have been exceeded.-pattern STENCIL_OP_INCREMENT_AND_WRAP  = StencilOp 6+pattern STENCIL_OP_INCREMENT_AND_WRAP = StencilOp 6+ -- | 'STENCIL_OP_DECREMENT_AND_WRAP' decrements the current value and wraps -- to the maximum possible value when the value would go below 0.-pattern STENCIL_OP_DECREMENT_AND_WRAP  = StencilOp 7-{-# complete STENCIL_OP_KEEP,-             STENCIL_OP_ZERO,-             STENCIL_OP_REPLACE,-             STENCIL_OP_INCREMENT_AND_CLAMP,-             STENCIL_OP_DECREMENT_AND_CLAMP,-             STENCIL_OP_INVERT,-             STENCIL_OP_INCREMENT_AND_WRAP,-             STENCIL_OP_DECREMENT_AND_WRAP :: StencilOp #-}+pattern STENCIL_OP_DECREMENT_AND_WRAP = StencilOp 7 +{-# COMPLETE+  STENCIL_OP_KEEP+  , STENCIL_OP_ZERO+  , STENCIL_OP_REPLACE+  , STENCIL_OP_INCREMENT_AND_CLAMP+  , STENCIL_OP_DECREMENT_AND_CLAMP+  , STENCIL_OP_INVERT+  , STENCIL_OP_INCREMENT_AND_WRAP+  , STENCIL_OP_DECREMENT_AND_WRAP ::+    StencilOp+  #-}+ conNameStencilOp :: String conNameStencilOp = "StencilOp" @@ -73,20 +84,29 @@  showTableStencilOp :: [(StencilOp, String)] showTableStencilOp =-  [ (STENCIL_OP_KEEP               , "KEEP")-  , (STENCIL_OP_ZERO               , "ZERO")-  , (STENCIL_OP_REPLACE            , "REPLACE")+  [ (STENCIL_OP_KEEP, "KEEP")+  , (STENCIL_OP_ZERO, "ZERO")+  , (STENCIL_OP_REPLACE, "REPLACE")   , (STENCIL_OP_INCREMENT_AND_CLAMP, "INCREMENT_AND_CLAMP")   , (STENCIL_OP_DECREMENT_AND_CLAMP, "DECREMENT_AND_CLAMP")-  , (STENCIL_OP_INVERT             , "INVERT")-  , (STENCIL_OP_INCREMENT_AND_WRAP , "INCREMENT_AND_WRAP")-  , (STENCIL_OP_DECREMENT_AND_WRAP , "DECREMENT_AND_WRAP")+  , (STENCIL_OP_INVERT, "INVERT")+  , (STENCIL_OP_INCREMENT_AND_WRAP, "INCREMENT_AND_WRAP")+  , (STENCIL_OP_DECREMENT_AND_WRAP, "DECREMENT_AND_WRAP")   ]  instance Show StencilOp where   showsPrec =-    enumShowsPrec enumPrefixStencilOp showTableStencilOp conNameStencilOp (\(StencilOp x) -> x) (showsPrec 11)+    enumShowsPrec+      enumPrefixStencilOp+      showTableStencilOp+      conNameStencilOp+      (\(StencilOp x) -> x)+      (showsPrec 11)  instance Read StencilOp where-  readPrec = enumReadPrec enumPrefixStencilOp showTableStencilOp conNameStencilOp StencilOp-+  readPrec =+    enumReadPrec+      enumPrefixStencilOp+      showTableStencilOp+      conNameStencilOp+      StencilOp
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -55,4104 +55,6553 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC                                                         , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT-                                                        , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV-                                                        , 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_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE-                                                        , 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-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT-                                                        , 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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_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-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT-                                                        , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT-                                                        , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV-                                                        , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI-                                                        , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA-                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA-                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_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-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT-                                                        , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT-                                                        , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT-                                                        , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT-                                                        , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT-                                                        , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR-                                                        , 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-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV-                                                        , 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_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD-                                                        , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT-                                                        , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV-                                                        , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT-                                                        , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT-                                                        , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT-                                                        , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT-                                                        , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PRESENT_ID_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT-                                                        , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT-                                                        , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT-                                                        , 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_FEATURES_EXT-                                                        , 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-                                                        , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV-                                                        , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV-                                                        , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV-                                                        , 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_ATOMIC_FLOAT_2_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT-                                                        , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT-                                                        , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV-                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR-                                                        , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT-                                                        , STRUCTURE_TYPE_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-                                                        , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR-                                                        , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR-                                                        , 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_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_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA-                                                        , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD-                                                        , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL-                                                        , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL-                                                        , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL-                                                        , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL-                                                        , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL-                                                        , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_CHECKPOINT_DATA_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV-                                                        , 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_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-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR-                                                        , 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_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-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV-                                                        , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV-                                                        , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV-                                                        , STRUCTURE_TYPE_GEOMETRY_AABB_NV-                                                        , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV-                                                        , STRUCTURE_TYPE_GEOMETRY_NV-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR-                                                        , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT-                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT-                                                        , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV-                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR-                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR-                                                        , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR-                                                        , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR-                                                        , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR-                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR-                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR-                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT-                                                        , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT-                                                        , 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_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID-                                                        , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID-                                                        , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID-                                                        , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID-                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID-                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID-                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT-                                                        , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT-                                                        , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK-                                                        , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK-                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR-                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR-                                                        , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR-                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR-                                                        , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR-                                                        , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR-                                                        , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR-                                                        , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR-                                                        , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR-                                                        , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR-                                                        , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR-                                                        , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR-                                                        , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR-                                                        , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR-                                                        , STRUCTURE_TYPE_HDR_METADATA_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX-                                                        , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE-                                                        , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT-                                                        , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT-                                                        , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT-                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PRESENT_REGIONS_KHR-                                                        , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT-                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR-                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR-                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR-                                                        , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR-                                                        , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR-                                                        , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR-                                                        , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT-                                                        , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN-                                                        , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR-                                                        , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR-                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR-                                                        , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR-                                                        , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV-                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV-                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV-                                                        , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP-                                                        , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX-                                                        , 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_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX-                                                        , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX-                                                        , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX-                                                        , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT-                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV-                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV-                                                        , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT-                                                        , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT-                                                        , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT-                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD-                                                        , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT-                                                        , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR-                                                        , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR-                                                        , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR-                                                        , 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-                                                        , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES-                                                        , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO-                                                        , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO-                                                        , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO-                                                        , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES-                                                        , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT-                                                        , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES-                                                        , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO-                                                        , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES-                                                        , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES-                                                        , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES-                                                        , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES-                                                        , STRUCTURE_TYPE_SUBPASS_END_INFO-                                                        , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO-                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2-                                                        , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2-                                                        , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2-                                                        , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2-                                                        , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2-                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES-                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES-                                                        , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO-                                                        , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO-                                                        , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO-                                                        , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO-                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO-                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO-                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES-                                                        , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO-                                                        , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO-                                                        , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO-                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES-                                                        , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO-                                                        , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO-                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO-                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO-                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES-                                                        , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES-                                                        , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO-                                                        , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO-                                                        , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO-                                                        , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2-                                                        , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2-                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2-                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2-                                                        , STRUCTURE_TYPE_FORMAT_PROPERTIES_2-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2-                                                        , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2-                                                        , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2-                                                        , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2-                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2-                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES-                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO-                                                        , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO-                                                        , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO-                                                        , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO-                                                        , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO-                                                        , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES-                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO-                                                        , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO-                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES-                                                        , ..-                                                        )) where--import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import GHC.Show (showsPrec)-import Vulkan.Zero (Zero)-import Foreign.Storable (Storable)-import Data.Int (Int32)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))---- | VkStructureType - Vulkan structure types (@sType@)------ = 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_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildSizesInfoKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureDeviceAddressInfoKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryAabbsDataKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureInfoNV',--- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureMemoryRequirementsInfoNV',--- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureVersionInfoKHR',--- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',--- 'Vulkan.Extensions.VK_KHR_performance_query.AcquireProfilingLockInfoKHR',--- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID',--- 'Vulkan.Extensions.VK_KHR_android_surface.AndroidSurfaceCreateInfoKHR',--- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2',--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',--- 'Vulkan.CStruct.Extends.BaseInStructure',--- 'Vulkan.CStruct.Extends.BaseOutStructure',--- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV',--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindImageMemoryDeviceGroupInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',--- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo',--- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>,--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',--- 'Vulkan.Extensions.VK_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.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.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',--- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',--- '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',--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT',--- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV',--- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointDataNV',--- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',--- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo',--- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',--- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo',--- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',--- '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.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.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',--- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleCreateInfoNVX',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR',--- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT',--- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',--- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectTagInfoEXT',--- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsLabelEXT',--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT',--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',--- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectTagInfoEXT',--- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo',--- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo',--- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo',--- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',--- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetBindingReferenceVALVE',--- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo',--- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',--- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetLayoutHostMappingInfoVALVE',--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',--- '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.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',--- 'Vulkan.Extensions.VK_EXT_display_control.DeviceEventInfoEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupCommandBufferBeginInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',--- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentCapabilitiesKHR',--- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentInfoKHR',--- '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.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.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo',--- 'Vulkan.Core10.Device.DeviceQueueCreateInfo',--- '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',--- 'Vulkan.Extensions.VK_KHR_display.DisplayModeCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR',--- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneCapabilities2KHR',--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneInfo2KHR',--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneProperties2KHR',--- 'Vulkan.Extensions.VK_EXT_display_control.DisplayPowerInfoEXT',--- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',--- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayProperties2KHR',--- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR',--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT',--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',--- 'Vulkan.Core10.Event.EventCreateInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo',--- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ExportFenceWin32HandleInfoKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo',--- 'Vulkan.Extensions.VK_NV_external_memory.ExportMemoryAllocateInfoNV',--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ExportMemoryWin32HandleInfoKHR',--- 'Vulkan.Extensions.VK_NV_external_memory_win32.ExportMemoryWin32HandleInfoNV',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalDeviceInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectsInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ExportSemaphoreWin32HandleInfoKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo',--- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties',--- 'Vulkan.Core10.Fence.FenceCreateInfo',--- 'Vulkan.Extensions.VK_KHR_external_fence_fd.FenceGetFdInfoKHR',--- '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.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',--- 'Vulkan.Core10.Pass.FramebufferCreateInfo',--- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',--- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',--- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryNV',--- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',--- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',--- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT',--- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT',--- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK',--- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',--- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',--- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT',--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',--- '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',--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT',--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageFormatConstraintsInfoFUCHSIA',--- '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.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.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_EXT_image_compression_control.ImageSubresource2EXT',--- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',--- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT',--- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',--- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',--- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',--- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',--- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM',--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID',--- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR',--- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ImportFenceWin32HandleInfoKHR',--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA',--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR',--- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT',--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR',--- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',--- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalBufferInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT',--- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',--- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',--- 'Vulkan.Extensions.VK_INTEL_performance_query.InitializePerformanceApiInfoINTEL',--- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',--- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK',--- 'Vulkan.Core10.Memory.MappedMemoryRange',--- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',--- 'Vulkan.Core10.Memory.MemoryAllocateInfo',--- 'Vulkan.Core10.OtherTypes.MemoryBarrier',--- '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',--- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID',--- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',--- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV',--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',--- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA',--- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT',--- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',--- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2',--- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR',--- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA',--- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',--- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT',--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceConfigurationAcquireInfoINTEL',--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterDescriptionKHR',--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR',--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceMarkerInfoINTEL',--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL',--- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',--- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceStreamMarkerInfoINTEL',--- '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',--- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR',--- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',--- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',--- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures',--- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',--- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',--- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',--- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',--- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',--- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV',--- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV',--- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT',--- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT',--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',--- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures',--- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties',--- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',--- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',--- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',--- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',--- '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.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',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo',--- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',--- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',--- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',--- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',--- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',--- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',--- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',--- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',--- '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_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',--- '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_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',--- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM',--- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',--- '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.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_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT',--- '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.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',--- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT',--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV',--- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures',--- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties',--- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',--- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',--- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR',--- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_primitives_generated_query.PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',--- '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',--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT',--- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR',--- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',--- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',--- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',--- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',--- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',--- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',--- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',--- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',--- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',--- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',--- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD',--- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',--- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',--- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',--- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',--- '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.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_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT',--- '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.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.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',--- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties',--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features',--- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',--- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',--- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',--- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM',--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures',--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',--- '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',--- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>,--- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',--- '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.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',--- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT',--- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',--- '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.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',--- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo',--- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',--- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo',--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR',--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInternalRepresentationKHR',--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutablePropertiesKHR',--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableStatisticKHR',--- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',--- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR',--- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo',--- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo',--- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',--- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo',--- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PipelinePropertiesIdentifierEXT',--- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',--- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',--- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',--- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',--- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',--- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT',--- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT',--- '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',--- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',--- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',--- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',--- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo',--- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',--- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV',--- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',--- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR',--- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',--- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR',--- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',--- '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_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#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHR VkQueueFamilyVideoPropertiesKHR>,--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingShaderGroupCreateInfoKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingShaderGroupCreateInfoNV',--- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',--- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',--- 'Vulkan.Core10.Pass.RenderPassCreateInfo',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationFeedbackCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT',--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo',--- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',--- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT',--- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',--- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',--- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',--- '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',--- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT',--- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties',--- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',--- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateInfoQNX',--- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',--- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',--- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA',--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',--- 'Vulkan.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',--- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.ShaderModuleIdentifierEXT',--- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT',--- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.SparseImageFormatProperties2',--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2',--- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateInfoGGP',--- 'Vulkan.Core10.Queue.SubmitInfo',--- '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',--- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve',--- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo',--- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',--- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT',--- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI',--- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT',--- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR',--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',--- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT',--- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',--- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR',--- 'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT',--- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',--- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',--- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.SysmemColorSpaceFUCHSIA',--- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',--- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM',--- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo',--- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT',--- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',--- 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT',--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',--- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT',--- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilitiesKHR VkVideoDecodeCapabilitiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoEXT VkVideoDecodeH264DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoEXT VkVideoDecodeH264PictureInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoEXT VkVideoDecodeH264ProfileInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoEXT VkVideoDecodeH264SessionParametersAddInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoEXT VkVideoDecodeH264SessionParametersCreateInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoEXT VkVideoDecodeH265DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoEXT VkVideoDecodeH265PictureInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoEXT VkVideoDecodeH265ProfileInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoEXT VkVideoDecodeH265SessionParametersAddInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoEXT VkVideoDecodeH265SessionParametersCreateInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHR VkVideoDecodeUsageInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXT VkVideoEncodeH264DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersInfoEXT VkVideoEncodeH264EmitPictureParametersInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoEXT VkVideoEncodeH264NaluSliceInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXT VkVideoEncodeH264ProfileInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoEXT VkVideoEncodeH264RateControlInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT VkVideoEncodeH264RateControlLayerInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ReferenceListsInfoEXT VkVideoEncodeH264ReferenceListsInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT VkVideoEncodeH264SessionParametersAddInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT VkVideoEncodeH264SessionParametersCreateInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264VclFrameInfoEXT VkVideoEncodeH264VclFrameInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoEXT VkVideoEncodeH265DpbSlotInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265EmitPictureParametersInfoEXT VkVideoEncodeH265EmitPictureParametersInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoEXT VkVideoEncodeH265NaluSliceSegmentInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXT VkVideoEncodeH265ProfileInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoEXT VkVideoEncodeH265RateControlInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ReferenceListsInfoEXT VkVideoEncodeH265ReferenceListsInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoEXT VkVideoEncodeH265SessionParametersAddInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoEXT VkVideoEncodeH265SessionParametersCreateInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265VclFrameInfoEXT VkVideoEncodeH265VclFrameInfoEXT>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHR VkVideoEncodeRateControlInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR VkVideoEncodeRateControlLayerInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHR VkVideoEncodeUsageInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHR VkVideoEndCodingInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotInfoKHR VkVideoReferenceSlotInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR VkVideoSessionMemoryRequirementsKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>,--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>,--- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR',--- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',--- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',--- 'Vulkan.Extensions.VK_KHR_win32_surface.Win32SurfaceCreateInfoKHR',--- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR',--- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',--- '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-  deriving newtype (Eq, Ord, Storable, Zero)---- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_APPLICATION_INFO"-pattern STRUCTURE_TYPE_APPLICATION_INFO                          = StructureType 0--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"-pattern STRUCTURE_TYPE_INSTANCE_CREATE_INFO                      = StructureType 1--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"-pattern STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                  = StructureType 2--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"-pattern STRUCTURE_TYPE_DEVICE_CREATE_INFO                        = StructureType 3--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO"-pattern STRUCTURE_TYPE_SUBMIT_INFO                               = StructureType 4--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"-pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                      = StructureType 5--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"-pattern STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                       = StructureType 6--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"-pattern STRUCTURE_TYPE_BIND_SPARSE_INFO                          = StructureType 7--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"-pattern STRUCTURE_TYPE_FENCE_CREATE_INFO                         = StructureType 8--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"-pattern STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                     = StructureType 9--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"-pattern STRUCTURE_TYPE_EVENT_CREATE_INFO                         = StructureType 10--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"-pattern STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                    = StructureType 11--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"-pattern STRUCTURE_TYPE_BUFFER_CREATE_INFO                        = StructureType 12--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"-pattern STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                   = StructureType 13--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"-pattern STRUCTURE_TYPE_IMAGE_CREATE_INFO                         = StructureType 14--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"-pattern STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                    = StructureType 15--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"-pattern STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                 = StructureType 16--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO                = StructureType 17--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO         = StructureType 18--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO   = StructureType 19--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = StructureType 20--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO   = StructureType 21--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO       = StructureType 22--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO  = StructureType 23--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO    = StructureType 24--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO  = StructureType 25--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO    = StructureType 26--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO        = StructureType 27--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"-pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO             = StructureType 28--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"-pattern STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO              = StructureType 29--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO               = StructureType 30--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"-pattern STRUCTURE_TYPE_SAMPLER_CREATE_INFO                       = StructureType 31--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO         = StructureType 32--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"-pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO               = StructureType 33--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO              = StructureType 34--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                      = StructureType 35--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"-pattern STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                       = StructureType 36--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"-pattern STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                   = StructureType 37--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"-pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                   = StructureType 38--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"-pattern STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                  = StructureType 39--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO              = StructureType 40--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO           = StructureType 41--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                 = StructureType 42--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"-pattern STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                    = StructureType 43--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"-pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                     = StructureType 44--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"-pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                      = StructureType 45--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER"-pattern STRUCTURE_TYPE_MEMORY_BARRIER                            = StructureType 46--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"-pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO               = StructureType 47--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"-pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                 = StructureType 48--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT   = StructureType 1000351002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = StructureType 1000351000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC"-pattern STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC           = StructureType 1000485001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = StructureType 1000485000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"-pattern STRUCTURE_TYPE_TILE_PROPERTIES_QCOM                      = StructureType 1000484001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = StructureType 1000484000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = StructureType 1000465000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = StructureType 1000342000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"-pattern STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT              = StructureType 1000462003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = StructureType 1000462002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = StructureType 1000462001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = StructureType 1000462000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"-pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT          = StructureType 1000458001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = StructureType 1000458000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"-pattern STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = StructureType 1000440002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = StructureType 1000440001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = StructureType 1000440000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = StructureType 1000437000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = StructureType 1000430000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"-pattern STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = StructureType 1000425002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"-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_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = StructureType 1000422000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = StructureType 1000421000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = StructureType 1000420002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE    = StructureType 1000420001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = StructureType 1000420000--- 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"-pattern STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = StructureType 1000411001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = StructureType 1000393000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = StructureType 1000392001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT   = StructureType 1000392000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"-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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = StructureType 1000386000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = StructureType 1000382000--- 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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = StructureType 1000381000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"-pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX            = StructureType 1000378000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"-pattern STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = StructureType 1000376002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"-pattern STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT     = StructureType 1000376001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = StructureType 1000376000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = StructureType 1000372001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"-pattern STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT        = StructureType 1000372000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"-pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV         = StructureType 1000371000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = StructureType 1000370000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = StructureType 1000369002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = StructureType 1000369001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"-pattern STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = StructureType 1000369000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"-pattern STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA                = StructureType 1000366008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA     = StructureType 1000366007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA            = StructureType 1000366006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = StructureType 1000366005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA           = StructureType 1000366004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA      = StructureType 1000366003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = StructureType 1000366002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"-pattern STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA   = StructureType 1000366001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA     = StructureType 1000366000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000365001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA     = StructureType 1000364002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"-pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA   = StructureType 1000364001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"-pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA  = StructureType 1000364000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = StructureType 1000355001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = StructureType 1000355000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT        = StructureType 1000353000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"-pattern STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT  = StructureType 1000352002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"-pattern STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT    = StructureType 1000352001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000352000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT          = StructureType 1000346000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = StructureType 1000344000--- 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_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = StructureType 1000339000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT          = StructureType 1000338004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"-pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT                   = StructureType 1000338003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"-pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT                  = StructureType 1000338002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"-pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT             = StructureType 1000338001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = StructureType 1000338000--- 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_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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = StructureType 1000328001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT  = StructureType 1000328000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV     = StructureType 1000327002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = StructureType 1000327001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = StructureType 1000327000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = StructureType 1000326002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"-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_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_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = StructureType 1000322000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = StructureType 1000203000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = StructureType 1000321000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = StructureType 1000320002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = StructureType 1000320001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = StructureType 1000320000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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_IMPORT_METAL_SHARED_EVENT_INFO_EXT"-pattern STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT        = StructureType 1000311011--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT        = StructureType 1000311010--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT"-pattern STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT          = StructureType 1000311009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT          = StructureType 1000311008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT"-pattern STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT             = StructureType 1000311007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT             = StructureType 1000311006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT"-pattern STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT              = StructureType 1000311005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT              = StructureType 1000311004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT       = StructureType 1000311003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT              = StructureType 1000311002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT             = StructureType 1000311001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT       = StructureType 1000311000--- 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_PRESENT_ID_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR   = StructureType 1000294001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"-pattern STRUCTURE_TYPE_PRESENT_ID_KHR                            = StructureType 1000294000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR          = StructureType 1000290000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = StructureType 1000287002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = StructureType 1000287001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = StructureType 1000287000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = StructureType 1000286001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = StructureType 1000286000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"-pattern STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT    = StructureType 1000284002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = StructureType 1000284001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = StructureType 1000284000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"-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_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000--- 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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = StructureType 1000278000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = StructureType 1000277007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"-pattern STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000277006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"-pattern STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV                = StructureType 1000277005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV   = StructureType 1000277004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"-pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV         = StructureType 1000277003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = StructureType 1000277002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"-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_ATOMIC_FLOAT_2_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = StructureType 1000269005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR         = StructureType 1000269004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR              = StructureType 1000269003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR        = StructureType 1000269002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"-pattern STRUCTURE_TYPE_PIPELINE_INFO_KHR                         = StructureType 1000269001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = StructureType 1000269000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000267000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = StructureType 1000265000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = StructureType 1000260000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000259002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = StructureType 1000259001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = StructureType 1000259000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT          = StructureType 1000256000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"-pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = StructureType 1000255001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = StructureType 1000255002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"-pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT    = StructureType 1000255000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = StructureType 1000254002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = StructureType 1000254001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = StructureType 1000254000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = StructureType 1000252000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = StructureType 1000251000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"-pattern STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV  = StructureType 1000250002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = StructureType 1000250001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = StructureType 1000250000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"-pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV          = StructureType 1000249001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = StructureType 1000249000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"-pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                   = StructureType 1000247000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = StructureType 1000244000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = StructureType 1000240000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"-pattern STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR        = StructureType 1000239000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"-pattern STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT         = StructureType 1000238001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = StructureType 1000238000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = StructureType 1000237000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = StructureType 1000234000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = StructureType 1000229000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = StructureType 1000227000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = StructureType 1000226004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = StructureType 1000226003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = StructureType 1000226002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"-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_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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000218001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"-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_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"-pattern STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = StructureType 1000213001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"-pattern STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = StructureType 1000213000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = StructureType 1000212000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"-pattern STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = StructureType 1000210005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"-pattern STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL           = StructureType 1000210004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"-pattern STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL      = StructureType 1000210003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"-pattern STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL             = StructureType 1000210002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"-pattern STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL     = StructureType 1000210001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"-pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = StructureType 1000210000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = StructureType 1000209000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"-pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV     = StructureType 1000206001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"-pattern STRUCTURE_TYPE_CHECKPOINT_DATA_NV                        = StructureType 1000206000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = StructureType 1000205002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = StructureType 1000205000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = StructureType 1000204000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = StructureType 1000202001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"-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_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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = StructureType 1000190002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = StructureType 1000190001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"-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"-pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT             = StructureType 1000184000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"-pattern STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = StructureType 1000183000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = StructureType 1000181000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = StructureType 1000178002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"-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_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"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = StructureType 1000170000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = StructureType 1000166001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = StructureType 1000166000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV            = StructureType 1000165012--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV   = StructureType 1000165011--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = StructureType 1000165009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000165008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = StructureType 1000165007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"-pattern STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = StructureType 1000165006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"-pattern STRUCTURE_TYPE_GEOMETRY_AABB_NV                          = StructureType 1000165005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"-pattern STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV                     = StructureType 1000165004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_NV"-pattern STRUCTURE_TYPE_GEOMETRY_NV                               = StructureType 1000165003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV     = StructureType 1000165001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV       = StructureType 1000165000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = StructureType 1000164005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = StructureType 1000164002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = StructureType 1000164001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = StructureType 1000164000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = StructureType 1000163001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = StructureType 1000163000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT          = StructureType 1000160000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"-pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = StructureType 1000158006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT  = StructureType 1000158005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = StructureType 1000158004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = StructureType 1000158003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = StructureType 1000158002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"-pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT   = StructureType 1000158000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = StructureType 1000154001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = StructureType 1000154000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = StructureType 1000152000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR    = StructureType 1000348013--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = StructureType 1000150018--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR  = StructureType 1000150016--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR      = StructureType 1000150015--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = StructureType 1000347001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = StructureType 1000347000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = StructureType 1000150020--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR    = StructureType 1000150017--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = StructureType 1000150014--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = StructureType 1000150013--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"-pattern STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150012--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"-pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = StructureType 1000150011--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"-pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR      = StructureType 1000150010--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR   = StructureType 1000150009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR       = StructureType 1000150006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = StructureType 1000150005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = StructureType 1000150004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = StructureType 1000150003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = StructureType 1000150002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"-pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = StructureType 1000150000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"-pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = StructureType 1000150007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = StructureType 1000149000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = StructureType 1000148002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = StructureType 1000148001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = StructureType 1000148000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT                = StructureType 1000143004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = StructureType 1000143003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = StructureType 1000143002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"-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_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"-pattern STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                   = StructureType 1000129005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"-pattern STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"-pattern STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"-pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = StructureType 1000129002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"-pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = StructureType 1000129001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"-pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID     = StructureType 1000129000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT     = StructureType 1000128004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"-pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT   = StructureType 1000128003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"-pattern STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT                     = StructureType 1000128002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT           = StructureType 1000128001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT          = StructureType 1000128000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"-pattern STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK             = StructureType 1000123000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"-pattern STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK               = StructureType 1000122000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"-pattern STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR          = StructureType 1000121004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"-pattern STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR                  = StructureType 1000121003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"-pattern STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR             = StructureType 1000121002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"-pattern STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR            = StructureType 1000121001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"-pattern STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR                  = StructureType 1000121000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"-pattern STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                      = StructureType 1000119002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                = StructureType 1000119001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR        = StructureType 1000119000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"-pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR       = StructureType 1000116006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"-pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR                   = StructureType 1000116005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"-pattern STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR           = StructureType 1000116004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"-pattern STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR         = StructureType 1000116003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR    = StructureType 1000116002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = StructureType 1000116001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = StructureType 1000116000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"-pattern STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                     = StructureType 1000115001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"-pattern STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                  = StructureType 1000115000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR           = StructureType 1000114002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR        = StructureType 1000114001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR        = StructureType 1000114000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"-pattern STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR   = StructureType 1000111000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"-pattern STRUCTURE_TYPE_HDR_METADATA_EXT                          = StructureType 1000105000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = StructureType 1000102001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = StructureType 1000102000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = StructureType 1000101001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000101000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = StructureType 1000099001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = StructureType 1000099000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = StructureType 1000098000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = StructureType 1000097000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"-pattern STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE                 = StructureType 1000092000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT         = StructureType 1000091003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"-pattern STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT                    = StructureType 1000091002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"-pattern STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT                     = StructureType 1000091001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"-pattern STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT                    = StructureType 1000091000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"-pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT                = StructureType 1000090000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = StructureType 1000087000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"-pattern STRUCTURE_TYPE_PRESENT_REGIONS_KHR                       = StructureType 1000084000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"-pattern STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT      = StructureType 1000081002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = StructureType 1000081001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"-pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = StructureType 1000081000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = StructureType 1000080000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"-pattern STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                 = StructureType 1000079001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"-pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR              = StructureType 1000079000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR       = StructureType 1000078003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"-pattern STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR               = StructureType 1000078002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR    = StructureType 1000078001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR    = StructureType 1000078000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"-pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = StructureType 1000075000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"-pattern STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                    = StructureType 1000074002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                  = StructureType 1000074001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"-pattern STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                 = StructureType 1000074000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR          = StructureType 1000073003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"-pattern STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR        = StructureType 1000073002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR       = StructureType 1000073001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"-pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR       = StructureType 1000073000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = StructureType 1000068002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = StructureType 1000068001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT       = StructureType 1000068000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"-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_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"-pattern STRUCTURE_TYPE_VALIDATION_FLAGS_EXT                      = StructureType 1000061000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR    = StructureType 1000060012--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"-pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR             = StructureType 1000060011--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"-pattern STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR               = StructureType 1000060010--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR      = StructureType 1000060009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR           = StructureType 1000060008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"-pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR     = StructureType 1000060007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"-pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = StructureType 1000058000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"-pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV        = StructureType 1000057001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"-pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV        = StructureType 1000057000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"-pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV            = StructureType 1000056001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV      = StructureType 1000056000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = StructureType 1000050000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"-pattern STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = StructureType 1000049000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"-pattern STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX    = StructureType 1000044009--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"-pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD          = StructureType 1000044008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"-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_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"-pattern STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX         = StructureType 1000030001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"-pattern STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX                = StructureType 1000030000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"-pattern STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX                        = StructureType 1000029002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"-pattern STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX               = StructureType 1000029001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"-pattern STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX                 = StructureType 1000029000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = StructureType 1000028002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = StructureType 1000028001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = StructureType 1000028000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"-pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = StructureType 1000026002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = StructureType 1000026001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"-pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = StructureType 1000026000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT              = StructureType 1000022002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT          = StructureType 1000022001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT         = StructureType 1000022000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"-pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = StructureType 1000018000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"-pattern STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT     = StructureType 1000011000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR             = StructureType 1000009000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR           = StructureType 1000008000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR           = StructureType 1000006000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR               = StructureType 1000005000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR              = StructureType 1000004000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"-pattern STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR                  = StructureType 1000003000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR           = StructureType 1000002001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"-pattern STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR              = StructureType 1000002000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"-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"-pattern STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = StructureType 1000257003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"-pattern STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = StructureType 1000257002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"-pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO                = StructureType 1000244001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = StructureType 1000257000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"-pattern STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO                     = StructureType 1000207005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"-pattern STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO                       = StructureType 1000207004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"-pattern STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO            = StructureType 1000207003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"-pattern STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO                = StructureType 1000207002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = StructureType 1000207001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = StructureType 1000207000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = StructureType 1000261000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"-pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT     = StructureType 1000241002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"-pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT       = StructureType 1000241001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = StructureType 1000241000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = StructureType 1000175000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = StructureType 1000253000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"-pattern STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO         = StructureType 1000108003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"-pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO         = StructureType 1000108002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"-pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO       = StructureType 1000108001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = StructureType 1000108000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = StructureType 1000211000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"-pattern STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO        = StructureType 1000130001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = StructureType 1000130000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"-pattern STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO           = StructureType 1000246000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = StructureType 1000221000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"-pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = StructureType 1000199001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = StructureType 1000199000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = StructureType 1000161004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = StructureType 1000161003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = StructureType 1000161002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = StructureType 1000161001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = StructureType 1000161000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = StructureType 1000197000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = StructureType 1000082000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = StructureType 1000180000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES         = StructureType 1000196000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES     = StructureType 1000177000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_END_INFO"-pattern STRUCTURE_TYPE_SUBPASS_END_INFO                          = StructureType 1000109006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"-pattern STRUCTURE_TYPE_SUBPASS_BEGIN_INFO                        = StructureType 1000109005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"-pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2                 = StructureType 1000109004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"-pattern STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2                      = StructureType 1000109003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"-pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2                     = StructureType 1000109002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"-pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2                    = StructureType 1000109001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"-pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2                  = StructureType 1000109000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"-pattern STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO             = StructureType 1000147000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES     = StructureType 52--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES       = StructureType 51--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES     = StructureType 50--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES       = StructureType 49--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = StructureType 1000063000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"-pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT             = StructureType 1000168001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES  = StructureType 1000168000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"-pattern STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES             = StructureType 1000076001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO   = StructureType 1000076000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"-pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO              = StructureType 1000077000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"-pattern STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO                  = StructureType 1000113000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"-pattern STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES                 = StructureType 1000112001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO       = StructureType 1000112000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"-pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO               = StructureType 1000072002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"-pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO         = StructureType 1000072001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"-pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO        = StructureType 1000072000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES             = StructureType 1000071004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"-pattern STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES                = StructureType 1000071003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO      = StructureType 1000071002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"-pattern STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES          = StructureType 1000071001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = StructureType 1000071000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"-pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO    = StructureType 1000085000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"-pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = StructureType 1000156005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = StructureType 1000156004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"-pattern STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO      = StructureType 1000156003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"-pattern STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO              = StructureType 1000156002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"-pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO             = StructureType 1000156001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"-pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO      = StructureType 1000156000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"-pattern STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2                       = StructureType 1000145003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = StructureType 1000145002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = StructureType 1000145001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"-pattern STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO                     = StructureType 1000145000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = StructureType 1000120000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES      = StructureType 1000053002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES        = StructureType 1000053001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"-pattern STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO         = StructureType 1000053000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"-pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = StructureType 1000117003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"-pattern STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO              = StructureType 1000117002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"-pattern STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = StructureType 1000117001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = StructureType 1000117000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = StructureType 1000059008--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"-pattern STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2          = StructureType 1000059007--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2       = StructureType 1000059006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"-pattern STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2                 = StructureType 1000059005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2       = StructureType 1000059004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"-pattern STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2                 = StructureType 1000059003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"-pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_2                       = StructureType 1000059002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2              = StructureType 1000059001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2                = StructureType 1000059000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"-pattern STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2        = StructureType 1000146004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"-pattern STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2                     = StructureType 1000146003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"-pattern STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2   = StructureType 1000146002--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"-pattern STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2          = StructureType 1000146001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"-pattern STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2         = StructureType 1000146000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"-pattern STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO           = StructureType 1000070001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES          = StructureType 1000070000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO       = StructureType 1000060014--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"-pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO      = StructureType 1000060013--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"-pattern STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO             = StructureType 1000060006--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"-pattern STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO                  = StructureType 1000060005--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"-pattern STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO    = StructureType 1000060004--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"-pattern STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO       = StructureType 1000060003--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"-pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO                = StructureType 1000060000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"-pattern STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO            = StructureType 1000127001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"-pattern STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS             = StructureType 1000127000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES    = StructureType 1000083000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"-pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO                    = StructureType 1000157001--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"-pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO                   = StructureType 1000157000--- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"-pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES       = StructureType 1000094000-{-# complete STRUCTURE_TYPE_APPLICATION_INFO,-             STRUCTURE_TYPE_INSTANCE_CREATE_INFO,-             STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO,-             STRUCTURE_TYPE_DEVICE_CREATE_INFO,-             STRUCTURE_TYPE_SUBMIT_INFO,-             STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,-             STRUCTURE_TYPE_MAPPED_MEMORY_RANGE,-             STRUCTURE_TYPE_BIND_SPARSE_INFO,-             STRUCTURE_TYPE_FENCE_CREATE_INFO,-             STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO,-             STRUCTURE_TYPE_EVENT_CREATE_INFO,-             STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO,-             STRUCTURE_TYPE_BUFFER_CREATE_INFO,-             STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,-             STRUCTURE_TYPE_IMAGE_CREATE_INFO,-             STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,-             STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO,-             STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO,-             STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,-             STRUCTURE_TYPE_SAMPLER_CREATE_INFO,-             STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,-             STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO,-             STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO,-             STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET,-             STRUCTURE_TYPE_COPY_DESCRIPTOR_SET,-             STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,-             STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO,-             STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO,-             STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO,-             STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO,-             STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,-             STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO,-             STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,-             STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,-             STRUCTURE_TYPE_MEMORY_BARRIER,-             STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO,-             STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO,-             STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,-             STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC,-             STRUCTURE_TYPE_TILE_PROPERTIES_QCOM,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,-             STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT,-             STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT,-             STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT,-             STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT,-             STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT,-             STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV,-             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_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT,-             STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE,-             STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE,-             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,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT,-             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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_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,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,-             STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT,-             STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT,-             STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,-             STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI,-             STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI,-             STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA,-             STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA,-             STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA,-             STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA,-             STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA,-             STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA,-             STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA,-             STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA,-             STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA,-             STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA,-             STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA,-             STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA,-             STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,-             STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA,-             STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA,-             STRUCTURE_TYPE_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,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT,-             STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT,-             STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT,-             STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT,-             STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT,-             STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT,-             STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT,-             STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR,-             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,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV,-             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_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD,-             STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT,-             STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV,-             STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV,-             STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT,-             STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT,-             STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT,-             STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT,-             STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT,-             STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR,-             STRUCTURE_TYPE_PRESENT_ID_KHR,-             STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT,-             STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT,-             STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT,-             STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT,-             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_FEATURES_EXT,-             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,-             STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV,-             STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV,-             STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV,-             STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV,-             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_ATOMIC_FLOAT_2_FEATURES_EXT,-             STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR,-             STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR,-             STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR,-             STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR,-             STRUCTURE_TYPE_PIPELINE_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT,-             STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT,-             STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT,-             STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT,-             STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV,-             STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV,-             STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR,-             STRUCTURE_TYPE_VALIDATION_FEATURES_EXT,-             STRUCTURE_TYPE_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,-             STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR,-             STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR,-             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_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_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA,-             STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD,-             STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT,-             STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL,-             STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL,-             STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL,-             STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL,-             STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL,-             STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL,-             STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV,-             STRUCTURE_TYPE_CHECKPOINT_DATA_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV,-             STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV,-             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_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,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR,-             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_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,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV,-             STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV,-             STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV,-             STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV,-             STRUCTURE_TYPE_GEOMETRY_AABB_NV,-             STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV,-             STRUCTURE_TYPE_GEOMETRY_NV,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV,-             STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,-             STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR,-             STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT,-             STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,-             STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT,-             STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT,-             STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV,-             STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR,-             STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR,-             STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR,-             STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR,-             STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR,-             STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,-             STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR,-             STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,-             STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT,-             STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT,-             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_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID,-             STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID,-             STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,-             STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID,-             STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID,-             STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID,-             STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID,-             STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,-             STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT,-             STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT,-             STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT,-             STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT,-             STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK,-             STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK,-             STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR,-             STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR,-             STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR,-             STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR,-             STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR,-             STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR,-             STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR,-             STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR,-             STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR,-             STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR,-             STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR,-             STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR,-             STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR,-             STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR,-             STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR,-             STRUCTURE_TYPE_HDR_METADATA_EXT,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT,-             STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT,-             STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX,-             STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE,-             STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT,-             STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT,-             STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT,-             STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT,-             STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,-             STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PRESENT_REGIONS_KHR,-             STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT,-             STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR,-             STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR,-             STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR,-             STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR,-             STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR,-             STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR,-             STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR,-             STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR,-             STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR,-             STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT,-             STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT,-             STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT,-             STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN,-             STRUCTURE_TYPE_VALIDATION_FLAGS_EXT,-             STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR,-             STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR,-             STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR,-             STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR,-             STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR,-             STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR,-             STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV,-             STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV,-             STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV,-             STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV,-             STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV,-             STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP,-             STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX,-             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_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD,-             STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX,-             STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX,-             STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX,-             STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX,-             STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT,-             STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV,-             STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV,-             STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV,-             STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT,-             STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT,-             STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT,-             STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD,-             STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,-             STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,-             STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR,-             STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR,-             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,-             STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,-             STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,-             STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,-             STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,-             STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,-             STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,-             STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,-             STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,-             STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,-             STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,-             STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,-             STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,-             STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,-             STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,-             STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,-             STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,-             STRUCTURE_TYPE_SUBPASS_END_INFO,-             STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,-             STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,-             STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,-             STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,-             STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,-             STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,-             STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,-             STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,-             STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,-             STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,-             STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,-             STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,-             STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,-             STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,-             STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,-             STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,-             STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,-             STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,-             STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,-             STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,-             STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,-             STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,-             STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,-             STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES,-             STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,-             STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,-             STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,-             STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,-             STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,-             STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,-             STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,-             STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,-             STRUCTURE_TYPE_FORMAT_PROPERTIES_2,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,-             STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,-             STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,-             STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,-             STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,-             STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,-             STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,-             STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,-             STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,-             STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,-             STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,-             STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,-             STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,-             STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,-             STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,-             STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,-             STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,-             STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,-             STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES :: StructureType #-}--conNameStructureType :: String-conNameStructureType = "StructureType"--enumPrefixStructureType :: String-enumPrefixStructureType = "STRUCTURE_TYPE_"--showTableStructureType :: [(StructureType, String)]-showTableStructureType =-  [ (STRUCTURE_TYPE_APPLICATION_INFO                         , "APPLICATION_INFO")-  , (STRUCTURE_TYPE_INSTANCE_CREATE_INFO                     , "INSTANCE_CREATE_INFO")-  , (STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO                 , "DEVICE_QUEUE_CREATE_INFO")-  , (STRUCTURE_TYPE_DEVICE_CREATE_INFO                       , "DEVICE_CREATE_INFO")-  , (STRUCTURE_TYPE_SUBMIT_INFO                              , "SUBMIT_INFO")-  , (STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO                     , "MEMORY_ALLOCATE_INFO")-  , (STRUCTURE_TYPE_MAPPED_MEMORY_RANGE                      , "MAPPED_MEMORY_RANGE")-  , (STRUCTURE_TYPE_BIND_SPARSE_INFO                         , "BIND_SPARSE_INFO")-  , (STRUCTURE_TYPE_FENCE_CREATE_INFO                        , "FENCE_CREATE_INFO")-  , (STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO                    , "SEMAPHORE_CREATE_INFO")-  , (STRUCTURE_TYPE_EVENT_CREATE_INFO                        , "EVENT_CREATE_INFO")-  , (STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO                   , "QUERY_POOL_CREATE_INFO")-  , (STRUCTURE_TYPE_BUFFER_CREATE_INFO                       , "BUFFER_CREATE_INFO")-  , (STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO                  , "BUFFER_VIEW_CREATE_INFO")-  , (STRUCTURE_TYPE_IMAGE_CREATE_INFO                        , "IMAGE_CREATE_INFO")-  , (STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO                   , "IMAGE_VIEW_CREATE_INFO")-  , (STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO                , "SHADER_MODULE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO               , "PIPELINE_CACHE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO        , "PIPELINE_SHADER_STAGE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO  , "PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, "PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO  , "PIPELINE_TESSELLATION_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO      , "PIPELINE_VIEWPORT_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO , "PIPELINE_RASTERIZATION_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO   , "PIPELINE_MULTISAMPLE_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO , "PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO   , "PIPELINE_COLOR_BLEND_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO       , "PIPELINE_DYNAMIC_STATE_CREATE_INFO")-  , (STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO            , "GRAPHICS_PIPELINE_CREATE_INFO")-  , (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO             , "COMPUTE_PIPELINE_CREATE_INFO")-  , (STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO              , "PIPELINE_LAYOUT_CREATE_INFO")-  , (STRUCTURE_TYPE_SAMPLER_CREATE_INFO                      , "SAMPLER_CREATE_INFO")-  , (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO        , "DESCRIPTOR_SET_LAYOUT_CREATE_INFO")-  , (STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO              , "DESCRIPTOR_POOL_CREATE_INFO")-  , (STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO             , "DESCRIPTOR_SET_ALLOCATE_INFO")-  , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET                     , "WRITE_DESCRIPTOR_SET")-  , (STRUCTURE_TYPE_COPY_DESCRIPTOR_SET                      , "COPY_DESCRIPTOR_SET")-  , (STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO                  , "FRAMEBUFFER_CREATE_INFO")-  , (STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO                  , "RENDER_PASS_CREATE_INFO")-  , (STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO                 , "COMMAND_POOL_CREATE_INFO")-  , (STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO             , "COMMAND_BUFFER_ALLOCATE_INFO")-  , (STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO          , "COMMAND_BUFFER_INHERITANCE_INFO")-  , (STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO                , "COMMAND_BUFFER_BEGIN_INFO")-  , (STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO                   , "RENDER_PASS_BEGIN_INFO")-  , (STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER                    , "BUFFER_MEMORY_BARRIER")-  , (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER                     , "IMAGE_MEMORY_BARRIER")-  , (STRUCTURE_TYPE_MEMORY_BARRIER                           , "MEMORY_BARRIER")-  , (STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO              , "LOADER_INSTANCE_CREATE_INFO")-  , (STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                , "LOADER_DEVICE_CREATE_INFO")-  , (STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT  , "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT-    , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC              , "AMIGO_PROFILING_SUBMIT_INFO_SEC")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC , "PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC")-  , (STRUCTURE_TYPE_TILE_PROPERTIES_QCOM                         , "TILE_PROPERTIES_QCOM")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM, "PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT, "PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT-    , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT, "SHADER_MODULE_IDENTIFIER_EXT")-  , ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT-    , "PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT-    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT , "RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT, "RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT             , "RENDER_PASS_CREATION_CONTROL_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT-    , "PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM, "IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM-    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM, "PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT-    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV-    , "PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"-    )-  , ( STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM-    , "SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT-    , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT-    , "PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE, "DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE")-  , (STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE       , "DESCRIPTOR_SET_BINDING_REFERENCE_VALVE")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE-    , "PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT-    , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT-    , "SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT-    , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT-    , "PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT      , "PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT")-  , (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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR-    , "PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT-    , "PHYSICAL_DEVICE_PRIMITIVES_GENERATED_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")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT-    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT, "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT")-  , (STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT         , "SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT-    , "PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT-    , "PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT, "PIPELINE_PROPERTIES_IDENTIFIER_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV-    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"-    )-  , (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV              , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI, "PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI-    , "PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI, "PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI")-  , (STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI    , "SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI")-  , (STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA     , "BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA                     , "SYSMEM_COLOR_SPACE_FUCHSIA")-  , (STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA          , "IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA                 , "IMAGE_CONSTRAINTS_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA   , "BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA                , "BUFFER_CONSTRAINTS_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA           , "BUFFER_COLLECTION_PROPERTIES_FUCHSIA")-  , (STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA    , "BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA        , "IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA")-  , (STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA          , "BUFFER_COLLECTION_CREATE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA       , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA    , "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA          , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")-  , (STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA        , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA       , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT-    , "PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT-    , "PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT, "PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT             , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT       , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT")-  , (STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT         , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT-    , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT             , "DIRECTFB_SURFACE_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT, "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT    , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT-    , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT, "IMAGE_COMPRESSION_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT         , "IMAGE_SUBRESOURCE_2_EXT")-  , (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT        , "SUBRESOURCE_LAYOUT_2_EXT")-  , (STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT   , "IMAGE_COMPRESSION_CONTROL_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT-    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR-    , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"-    )-  , (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"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT-    , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT, "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT  , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV     , "ACCELERATION_STRUCTURE_MOTION_INFO_NV")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV-    , "PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"-    )-  , ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV-    , "ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"-    )-  , ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV-    , "PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR-    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR-    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD-    , "PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"-    )-  , (STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT, "GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT-    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"-    )-  , (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_IMPORT_METAL_SHARED_EVENT_INFO_EXT      , "IMPORT_METAL_SHARED_EVENT_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT      , "EXPORT_METAL_SHARED_EVENT_INFO_EXT")-  , (STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT        , "IMPORT_METAL_IO_SURFACE_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT        , "EXPORT_METAL_IO_SURFACE_INFO_EXT")-  , (STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT           , "IMPORT_METAL_TEXTURE_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT           , "EXPORT_METAL_TEXTURE_INFO_EXT")-  , (STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT            , "IMPORT_METAL_BUFFER_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT            , "EXPORT_METAL_BUFFER_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT     , "EXPORT_METAL_COMMAND_QUEUE_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT            , "EXPORT_METAL_DEVICE_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT           , "EXPORT_METAL_OBJECTS_INFO_EXT")-  , (STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT     , "EXPORT_METAL_OBJECT_CREATE_INFO_EXT")-  , (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_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"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"-    )-  , (STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT, "SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, "PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT  , "PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT")-  , (STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT     , "DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT")-  , (STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT, "DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT-    , "PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM, "RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM")-  , ( 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_FEATURES_EXT-    , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV-    , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV-    , "PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV-    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"-    )-  , (STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV, "GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV")-  , (STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV                    , "GENERATED_COMMANDS_INFO_NV")-  , (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV       , "INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV")-  , (STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV             , "INDIRECT_COMMANDS_LAYOUT_TOKEN_NV")-  , (STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV, "GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV")-  , (STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV          , "GRAPHICS_SHADER_GROUP_CREATE_INFO_NV")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV-    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT-    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, "PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR")-  , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR              , "PIPELINE_EXECUTABLE_STATISTIC_KHR")-  , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR                   , "PIPELINE_EXECUTABLE_INFO_KHR")-  , (STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR             , "PIPELINE_EXECUTABLE_PROPERTIES_KHR")-  , (STRUCTURE_TYPE_PIPELINE_INFO_KHR                              , "PIPELINE_INFO_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR-    , "PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT-    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, "PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT-    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT-    , "PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, "PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT")-  , (STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT               , "HEADLESS_SURFACE_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT   , "SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT")-  , (STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT , "SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT")-  , (STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT         , "SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT, "PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT")-  , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT-    , "PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT  , "PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, "PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT-    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV, "FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV")-  , ( STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV-    , "PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV-    , "PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV-    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"-    )-  , (STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV              , "COOPERATIVE_MATRIX_PROPERTIES_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR     , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR")-  , (STRUCTURE_TYPE_VALIDATION_FEATURES_EXT                       , "VALIDATION_FEATURES_EXT")-  , (STRUCTURE_TYPE_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"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV-    , "PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"-    )-  , (STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR          , "SURFACE_PROTECTED_CAPABILITIES_KHR")-  , (STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT           , "MEMORY_PRIORITY_ALLOCATE_INFO_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, "PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT, "PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT-    , "PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, "PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR   , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"-    )-  , ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR-    , "PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"-    )-  , (STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR, "FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR")-  , ( STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT-    , "RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"-    )-  , ( 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_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")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT   , "PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL  , "PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL")-  , (STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL               , "PERFORMANCE_OVERRIDE_INFO_INTEL")-  , (STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL          , "PERFORMANCE_STREAM_MARKER_INFO_INTEL")-  , (STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL                 , "PERFORMANCE_MARKER_INFO_INTEL")-  , (STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL         , "INITIALIZE_PERFORMANCE_API_INFO_INTEL")-  , (STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, "QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL-    , "PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"-    )-  , (STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV        , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV")-  , (STRUCTURE_TYPE_CHECKPOINT_DATA_NV                           , "CHECKPOINT_DATA_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, "PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV")-  , ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV-    , "PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV-    , "PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV  , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV-    , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"-    )-  , (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"-    )-  , ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT-    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT-    , "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")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR   , "PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR")-  , ( 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_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT-    , "FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT-    , "PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV-    , "PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV-    , "PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"-    )-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV           , "ACCELERATION_STRUCTURE_INFO_NV")-  , (STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV  , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, "PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV")-  , ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV-    , "ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"-    )-  , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV, "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV")-  , (STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV, "BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV")-  , (STRUCTURE_TYPE_GEOMETRY_AABB_NV                     , "GEOMETRY_AABB_NV")-  , (STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV                , "GEOMETRY_TRIANGLES_NV")-  , (STRUCTURE_TYPE_GEOMETRY_NV                          , "GEOMETRY_NV")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV, "ACCELERATION_STRUCTURE_CREATE_INFO_NV")-  , (STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV  , "RAY_TRACING_PIPELINE_CREATE_INFO_NV")-  , ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV-    , "PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV-    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV")-  , ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV-    , "PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, "PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR")-  , (STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT , "SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT               , "VALIDATION_CACHE_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT      , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT")-  , (STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT       , "IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT")-  , ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT-    , "IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"-    )-  , (STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT, "IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT-    , "PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"-    )-  , (STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT, "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV-    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV")-  , ( STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV-    , "PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR        , "PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR")-  , (STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR, "RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR      , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR")-  , (STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR          , "RAY_TRACING_PIPELINE_CREATE_INFO_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR-    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"-    )-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR, "ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR     , "ACCELERATION_STRUCTURE_CREATE_INFO_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR-    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"-    )-  , (STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR, "COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR")-  , (STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR, "COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR")-  , (STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR          , "COPY_ACCELERATION_STRUCTURE_INFO_KHR")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR       , "ACCELERATION_STRUCTURE_VERSION_INFO_KHR")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR           , "ACCELERATION_STRUCTURE_GEOMETRY_KHR")-  , ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR-    , "ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"-    )-  , ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR-    , "ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"-    )-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR , "ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR , "ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR")-  , (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR , "ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR")-  , (STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR, "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR")-  , (STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV, "PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV")-  , ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT-    , "PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT-    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT                     , "MULTISAMPLE_PROPERTIES_EXT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, "PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT")-  , (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_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID-    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"-    )-  , (STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID                        , "EXTERNAL_FORMAT_ANDROID")-  , (STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, "MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID")-  , (STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID    , "IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID")-  , ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID-    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"-    )-  , (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID, "ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID")-  , (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID     , "ANDROID_HARDWARE_BUFFER_USAGE_ANDROID")-  , (STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT     , "DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT   , "DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT")-  , (STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT                     , "DEBUG_UTILS_LABEL_EXT")-  , (STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT           , "DEBUG_UTILS_OBJECT_TAG_INFO_EXT")-  , (STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT          , "DEBUG_UTILS_OBJECT_NAME_INFO_EXT")-  , (STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK             , "MACOS_SURFACE_CREATE_INFO_MVK")-  , (STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK               , "IOS_SURFACE_CREATE_INFO_MVK")-  , (STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR          , "DISPLAY_PLANE_CAPABILITIES_2_KHR")-  , (STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR                  , "DISPLAY_PLANE_INFO_2_KHR")-  , (STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR             , "DISPLAY_MODE_PROPERTIES_2_KHR")-  , (STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR            , "DISPLAY_PLANE_PROPERTIES_2_KHR")-  , (STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR                  , "DISPLAY_PROPERTIES_2_KHR")-  , (STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR                      , "SURFACE_FORMAT_2_KHR")-  , (STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR                , "SURFACE_CAPABILITIES_2_KHR")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR        , "PHYSICAL_DEVICE_SURFACE_INFO_2_KHR")-  , (STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR       , "PERFORMANCE_COUNTER_DESCRIPTION_KHR")-  , (STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR                   , "PERFORMANCE_COUNTER_KHR")-  , (STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR           , "ACQUIRE_PROFILING_LOCK_INFO_KHR")-  , (STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR         , "PERFORMANCE_QUERY_SUBMIT_INFO_KHR")-  , (STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR    , "QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR-    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, "PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR")-  , (STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR                         , "FENCE_GET_FD_INFO_KHR")-  , (STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR                      , "IMPORT_FENCE_FD_INFO_KHR")-  , (STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR               , "FENCE_GET_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR            , "EXPORT_FENCE_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR            , "IMPORT_FENCE_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR       , "SHARED_PRESENT_SURFACE_CAPABILITIES_KHR")-  , (STRUCTURE_TYPE_HDR_METADATA_EXT                              , "HDR_METADATA_EXT")-  , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT-    , "PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, "PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT")-  , ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT-    , "PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT-    , "PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"-    )-  , (STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV, "PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX-    , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"-    )-  , (STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE        , "PRESENT_TIMES_INFO_GOOGLE")-  , (STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT, "SWAPCHAIN_COUNTER_CREATE_INFO_EXT")-  , (STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT           , "DISPLAY_EVENT_INFO_EXT")-  , (STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT            , "DEVICE_EVENT_INFO_EXT")-  , (STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT           , "DISPLAY_POWER_INFO_EXT")-  , (STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT       , "SURFACE_CAPABILITIES_2_EXT")-  , ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV-    , "PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"-    )-  , (STRUCTURE_TYPE_PRESENT_REGIONS_KHR                 , "PRESENT_REGIONS_KHR")-  , (STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT, "CONDITIONAL_RENDERING_BEGIN_INFO_EXT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT-    , "PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"-    )-  , ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT-    , "COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, "PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR")-  , (STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR                     , "SEMAPHORE_GET_FD_INFO_KHR")-  , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR                  , "IMPORT_SEMAPHORE_FD_INFO_KHR")-  , (STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR           , "SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR                   , "D3D12_FENCE_SUBMIT_INFO_KHR")-  , (STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR        , "EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR        , "IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR    , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR")-  , (STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR                        , "MEMORY_GET_FD_INFO_KHR")-  , (STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR                      , "MEMORY_FD_PROPERTIES_KHR")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR                     , "IMPORT_MEMORY_FD_INFO_KHR")-  , (STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR              , "MEMORY_GET_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR            , "MEMORY_WIN32_HANDLE_PROPERTIES_KHR")-  , (STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR           , "EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR")-  , (STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR           , "IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT-    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"-    )-  , (STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT      , "PIPELINE_ROBUSTNESS_CREATE_INFO_EXT")-  , (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_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"-    )-  , (STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP, "STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP")-  , (STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX   , "MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX")-  , (STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD         , "ATTACHMENT_SAMPLE_COUNT_INFO_AMD")-  , ( STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT-    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR-    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_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_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT-    , "PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT-    , "PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, "PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT")-  , (STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV   , "DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV")-  , (STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV     , "DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV")-  , (STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV      , "DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV")-  , (STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT                   , "DEBUG_MARKER_MARKER_INFO_EXT")-  , (STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT               , "DEBUG_MARKER_OBJECT_TAG_INFO_EXT")-  , (STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT              , "DEBUG_MARKER_OBJECT_NAME_INFO_EXT")-  , ( 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_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")-  , (STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO                    , "BUFFER_DEVICE_ADDRESS_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, "PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES")-  , (STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO                         , "SEMAPHORE_SIGNAL_INFO")-  , (STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO                           , "SEMAPHORE_WAIT_INFO")-  , (STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO                , "TIMELINE_SEMAPHORE_SUBMIT_INFO")-  , (STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO                    , "SEMAPHORE_TYPE_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES , "PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES   , "PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES     , "PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES")-  , (STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT         , "ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT")-  , (STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT           , "ATTACHMENT_REFERENCE_STENCIL_LAYOUT")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES-    , "PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES-    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES-    , "PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"-    )-  , (STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO             , "RENDER_PASS_ATTACHMENT_BEGIN_INFO")-  , (STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO             , "FRAMEBUFFER_ATTACHMENT_IMAGE_INFO")-  , (STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO           , "FRAMEBUFFER_ATTACHMENTS_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, "PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES  , "PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES")-  , (STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO            , "SAMPLER_REDUCTION_MODE_CREATE_INFO")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES-    , "PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"-    )-  , (STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO             , "IMAGE_STENCIL_USAGE_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, "PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES")-  , (STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE   , "SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE")-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES-    , "PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"-    )-  , ( STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT-    , "DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"-    )-  , ( STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO-    , "DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"-    )-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, "PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES  , "PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES")-  , (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO, "DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES     , "PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES  , "PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES  , "PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES             , "PHYSICAL_DEVICE_DRIVER_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES         , "PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES")-  , (STRUCTURE_TYPE_SUBPASS_END_INFO                              , "SUBPASS_END_INFO")-  , (STRUCTURE_TYPE_SUBPASS_BEGIN_INFO                            , "SUBPASS_BEGIN_INFO")-  , (STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2                     , "RENDER_PASS_CREATE_INFO_2")-  , (STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2                          , "SUBPASS_DEPENDENCY_2")-  , (STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2                         , "SUBPASS_DESCRIPTION_2")-  , (STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2                        , "ATTACHMENT_REFERENCE_2")-  , (STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2                      , "ATTACHMENT_DESCRIPTION_2")-  , (STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO                 , "IMAGE_FORMAT_LIST_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES         , "PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES           , "PHYSICAL_DEVICE_VULKAN_1_2_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES         , "PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES           , "PHYSICAL_DEVICE_VULKAN_1_1_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, "PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES")-  , (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT                 , "DESCRIPTOR_SET_LAYOUT_SUPPORT")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES      , "PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES")-  , (STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES                 , "EXTERNAL_SEMAPHORE_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO       , "PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO")-  , (STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO                  , "EXPORT_SEMAPHORE_CREATE_INFO")-  , (STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO                      , "EXPORT_FENCE_CREATE_INFO")-  , (STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES                     , "EXTERNAL_FENCE_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO           , "PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO")-  , (STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO                   , "EXPORT_MEMORY_ALLOCATE_INFO")-  , (STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO             , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO")-  , (STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO            , "EXTERNAL_MEMORY_BUFFER_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES                 , "PHYSICAL_DEVICE_ID_PROPERTIES")-  , (STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES                    , "EXTERNAL_BUFFER_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO          , "PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO")-  , (STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES              , "EXTERNAL_IMAGE_FORMAT_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO    , "PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO")-  , (STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO        , "DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO")-  , ( STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES-    , "SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"-    )-  , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES-    , "PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"-    )-  , (STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO       , "IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO")-  , (STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO               , "BIND_IMAGE_PLANE_MEMORY_INFO")-  , (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO              , "SAMPLER_YCBCR_CONVERSION_INFO")-  , (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO       , "SAMPLER_YCBCR_CONVERSION_CREATE_INFO")-  , (STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2                        , "DEVICE_QUEUE_INFO_2")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, "PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES  , "PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES")-  , (STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO                      , "PROTECTED_SUBMIT_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES , "PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES       , "PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES         , "PHYSICAL_DEVICE_MULTIVIEW_FEATURES")-  , (STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO          , "RENDER_PASS_MULTIVIEW_CREATE_INFO")-  , ( STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO-    , "PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"-    )-  , (STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO                   , "IMAGE_VIEW_USAGE_CREATE_INFO")-  , (STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, "RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES      , "PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2     , "PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2")-  , (STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2               , "SPARSE_IMAGE_FORMAT_PROPERTIES_2")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2            , "PHYSICAL_DEVICE_MEMORY_PROPERTIES_2")-  , (STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2                      , "QUEUE_FAMILY_PROPERTIES_2")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2            , "PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2")-  , (STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2                      , "IMAGE_FORMAT_PROPERTIES_2")-  , (STRUCTURE_TYPE_FORMAT_PROPERTIES_2                            , "FORMAT_PROPERTIES_2")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2                   , "PHYSICAL_DEVICE_PROPERTIES_2")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2                     , "PHYSICAL_DEVICE_FEATURES_2")-  , (STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2             , "SPARSE_IMAGE_MEMORY_REQUIREMENTS_2")-  , (STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2                          , "MEMORY_REQUIREMENTS_2")-  , (STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2        , "IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2")-  , (STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2               , "IMAGE_MEMORY_REQUIREMENTS_INFO_2")-  , (STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2              , "BUFFER_MEMORY_REQUIREMENTS_INFO_2")-  , (STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO                , "DEVICE_GROUP_DEVICE_CREATE_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES               , "PHYSICAL_DEVICE_GROUP_PROPERTIES")-  , (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO            , "BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO")-  , (STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO           , "BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO")-  , (STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO                  , "DEVICE_GROUP_BIND_SPARSE_INFO")-  , (STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO                       , "DEVICE_GROUP_SUBMIT_INFO")-  , (STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO         , "DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO")-  , (STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO            , "DEVICE_GROUP_RENDER_PASS_BEGIN_INFO")-  , (STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO                     , "MEMORY_ALLOCATE_FLAGS_INFO")-  , (STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO                 , "MEMORY_DEDICATED_ALLOCATE_INFO")-  , (STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS                  , "MEMORY_DEDICATED_REQUIREMENTS")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES         , "PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES")-  , (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO                         , "BIND_IMAGE_MEMORY_INFO")-  , (STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO                        , "BIND_BUFFER_MEMORY_INFO")-  , (STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES            , "PHYSICAL_DEVICE_SUBGROUP_PROPERTIES")-  ]--instance Show StructureType where-  showsPrec = enumShowsPrec enumPrefixStructureType-                            showTableStructureType-                            conNameStructureType-                            (\(StructureType x) -> x)-                            (showsPrec 11)--instance Read StructureType where-  readPrec = enumReadPrec enumPrefixStructureType showTableStructureType conNameStructureType StructureType-+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT+                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV+                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV+                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT+                                                        , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT+                                                        , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV+                                                        , 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_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT+                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE+                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE+                                                        , 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+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT+                                                        , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT+                                                        , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT+                                                        , STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT+                                                        , STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT+                                                        , STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT+                                                        , STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT+                                                        , STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT+                                                        , 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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_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+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+                                                        , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT+                                                        , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV+                                                        , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI+                                                        , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI+                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA+                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA+                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA+                                                        , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA+                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_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+                                                        , STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT+                                                        , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT+                                                        , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT+                                                        , STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT+                                                        , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT+                                                        , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT+                                                        , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR+                                                        , 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+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV+                                                        , 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_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD+                                                        , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT+                                                        , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV+                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV+                                                        , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT+                                                        , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT+                                                        , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT+                                                        , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT+                                                        , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PRESENT_ID_KHR+                                                        , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV+                                                        , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT+                                                        , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT+                                                        , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT+                                                        , 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_FEATURES_EXT+                                                        , 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+                                                        , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV+                                                        , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV+                                                        , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV+                                                        , 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_ATOMIC_FLOAT_2_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT+                                                        , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT+                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT+                                                        , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT+                                                        , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV+                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR+                                                        , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT+                                                        , STRUCTURE_TYPE_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+                                                        , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR+                                                        , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR+                                                        , 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_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_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA+                                                        , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD+                                                        , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL+                                                        , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL+                                                        , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL+                                                        , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL+                                                        , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL+                                                        , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL+                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_CHECKPOINT_DATA_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV+                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV+                                                        , 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_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+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR+                                                        , 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_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+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV+                                                        , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV+                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV+                                                        , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV+                                                        , STRUCTURE_TYPE_GEOMETRY_AABB_NV+                                                        , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV+                                                        , STRUCTURE_TYPE_GEOMETRY_NV+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV+                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR+                                                        , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT+                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT+                                                        , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV+                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR+                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR+                                                        , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR+                                                        , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR+                                                        , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR+                                                        , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR+                                                        , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT+                                                        , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT+                                                        , 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_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID+                                                        , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID+                                                        , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+                                                        , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID+                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID+                                                        , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID+                                                        , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT+                                                        , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT+                                                        , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT+                                                        , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT+                                                        , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK+                                                        , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK+                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR+                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR+                                                        , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR+                                                        , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR+                                                        , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR+                                                        , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR+                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR+                                                        , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR+                                                        , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR+                                                        , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR+                                                        , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR+                                                        , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR+                                                        , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR+                                                        , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR+                                                        , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR+                                                        , STRUCTURE_TYPE_HDR_METADATA_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX+                                                        , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE+                                                        , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT+                                                        , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT+                                                        , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT+                                                        , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PRESENT_REGIONS_KHR+                                                        , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT+                                                        , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR+                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR+                                                        , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR+                                                        , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR+                                                        , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR+                                                        , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR+                                                        , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR+                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT+                                                        , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT+                                                        , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN+                                                        , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR+                                                        , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR+                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR+                                                        , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR+                                                        , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV+                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV+                                                        , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV+                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV+                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV+                                                        , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP+                                                        , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX+                                                        , 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_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD+                                                        , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX+                                                        , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX+                                                        , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX+                                                        , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX+                                                        , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT+                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV+                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV+                                                        , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT+                                                        , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT+                                                        , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT+                                                        , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD+                                                        , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT+                                                        , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR+                                                        , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR+                                                        , 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+                                                        , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES+                                                        , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO+                                                        , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO+                                                        , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO+                                                        , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES+                                                        , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT+                                                        , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES+                                                        , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO+                                                        , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO+                                                        , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES+                                                        , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES+                                                        , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES+                                                        , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES+                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT+                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES+                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES+                                                        , STRUCTURE_TYPE_SUBPASS_END_INFO+                                                        , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO+                                                        , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2+                                                        , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2+                                                        , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2+                                                        , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2+                                                        , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2+                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES+                                                        , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES+                                                        , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO+                                                        , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO+                                                        , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+                                                        , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO+                                                        , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO+                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO+                                                        , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES+                                                        , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO+                                                        , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO+                                                        , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO+                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES+                                                        , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO+                                                        , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO+                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+                                                        , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO+                                                        , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES+                                                        , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES+                                                        , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO+                                                        , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO+                                                        , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO+                                                        , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2+                                                        , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2+                                                        , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2+                                                        , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2+                                                        , STRUCTURE_TYPE_FORMAT_PROPERTIES_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2+                                                        , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2+                                                        , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2+                                                        , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2+                                                        , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2+                                                        , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES+                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO+                                                        , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO+                                                        , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO+                                                        , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO+                                                        , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO+                                                        , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES+                                                        , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO+                                                        , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES+                                                        , ..+                                                        )) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import GHC.Show (showsPrec)+import Vulkan.Zero (Zero)+import Foreign.Storable (Storable)+import Data.Int (Int32)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))++-- | VkStructureType - Vulkan structure types (@sType@)+--+-- = 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_acceleration_structure.AccelerationStructureBuildGeometryInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildSizesInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureDeviceAddressInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryAabbsDataKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureInfoNV',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureMemoryRequirementsInfoNV',+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureMotionInfoNV',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureVersionInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_swapchain.AcquireNextImageInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_performance_query.AcquireProfilingLockInfoKHR',+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.AmigoProfilingSubmitInfoSEC',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatProperties2ANDROID',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferFormatPropertiesANDROID',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferUsageANDROID',+-- 'Vulkan.Extensions.VK_KHR_android_surface.AndroidSurfaceCreateInfoKHR',+-- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentDescription2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentDescriptionStencilLayout',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD',+-- 'Vulkan.CStruct.Extends.BaseInStructure',+-- 'Vulkan.CStruct.Extends.BaseOutStructure',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindBufferMemoryDeviceGroupInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_groupAndVK_KHR_bind_memory2.BindImageMemoryDeviceGroupInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',+-- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo',+-- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkBindVideoSessionMemoryInfoKHR VkBindVideoSessionMemoryInfoKHR>,+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.BlitImageInfo2',+-- 'Vulkan.Extensions.VK_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.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.Core13.Promoted_From_VK_KHR_copy_commands2.BufferImageCopy2',+-- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier',+-- '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',+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV',+-- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointDataNV',+-- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',+-- 'Vulkan.Core10.CommandBuffer.CommandBufferBeginInfo',+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT',+-- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo',+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.CommandBufferInheritanceRenderPassTransformInfoQCOM',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.CommandBufferInheritanceRenderingInfo',+-- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',+-- '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.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.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_EXT_opacity_micromap.CopyMemoryToMicromapInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapToMemoryInfoEXT',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuFunctionCreateInfoNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuLaunchInfoNVX',+-- 'Vulkan.Extensions.VK_NVX_binary_import.CuModuleCreateInfoNVX',+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectNameInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerObjectTagInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_report.DebugReportCallbackCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsLabelEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectNameInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsObjectTagInfoEXT',+-- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationBufferCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationImageCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.DependencyInfo',+-- 'Vulkan.Core10.DescriptorSet.DescriptorPoolCreateInfo',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_inline_uniform_block.DescriptorPoolInlineUniformBlockCreateInfo',+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetAllocateInfo',+-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetBindingReferenceVALVE',+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.DescriptorSetLayoutBindingFlagsCreateInfo',+-- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo',+-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.DescriptorSetLayoutHostMappingInfoVALVE',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.DescriptorSetLayoutSupport',+-- '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_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',+-- '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',+-- 'Vulkan.Extensions.VK_EXT_display_control.DeviceEventInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultInfoEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupBindSparseInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupCommandBufferBeginInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group_creation.DeviceGroupDeviceCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentCapabilitiesKHR',+-- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentInfoKHR',+-- '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.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.Core13.Promoted_From_VK_EXT_private_data.DevicePrivateDataCreateInfo',+-- 'Vulkan.Core10.Device.DeviceQueueCreateInfo',+-- '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',+-- 'Vulkan.Extensions.VK_KHR_display.DisplayModeCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayModeProperties2KHR',+-- 'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD',+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneCapabilities2KHR',+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayPlaneProperties2KHR',+-- 'Vulkan.Extensions.VK_EXT_display_control.DisplayPowerInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_get_display_properties2.DisplayProperties2KHR',+-- 'Vulkan.Extensions.VK_KHR_display.DisplaySurfaceCreateInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesList2EXT',+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.DrmFormatModifierPropertiesListEXT',+-- 'Vulkan.Core10.Event.EventCreateInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence.ExportFenceCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ExportFenceWin32HandleInfoKHR',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo',+-- 'Vulkan.Extensions.VK_NV_external_memory.ExportMemoryAllocateInfoNV',+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ExportMemoryWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_NV_external_memory_win32.ExportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalBufferInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalCommandQueueInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalDeviceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalIOSurfaceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectsInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalSharedEventInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalTextureInfoEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore.ExportSemaphoreCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ExportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalBufferProperties',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.ExternalFenceProperties',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.ExternalImageFormatProperties',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryBufferCreateInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExternalMemoryImageCreateInfo',+-- 'Vulkan.Extensions.VK_NV_external_memory.ExternalMemoryImageCreateInfoNV',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.ExternalSemaphoreProperties',+-- 'Vulkan.Core10.Fence.FenceCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.FenceGetFdInfoKHR',+-- '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.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',+-- 'Vulkan.Core10.Pass.FramebufferCreateInfo',+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.FramebufferMixedSamplesCombinationNV',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsMemoryRequirementsInfoNV',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryNV',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV',+-- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.GraphicsPipelineLibraryCreateInfoEXT',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsPipelineShaderGroupsCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.GraphicsShaderGroupCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT',+-- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT',+-- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.ImageBlit2',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionPropertiesEXT',+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageConstraintsInfoFUCHSIA',+-- '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',+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierPropertiesEXT',+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImageFormatConstraintsInfoFUCHSIA',+-- '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.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.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_EXT_image_compression_control.ImageSubresource2EXT',+-- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.ImageViewASTCDecodeModeEXT',+-- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',+-- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',+-- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewHandleInfoNVX',+-- 'Vulkan.Extensions.VK_EXT_image_view_min_lod.ImageViewMinLodCreateInfoEXT',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.ImageViewSampleWeightCreateInfoQCOM',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.ImageViewUsageCreateInfo',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ImportAndroidHardwareBufferInfoANDROID',+-- 'Vulkan.Extensions.VK_KHR_external_fence_fd.ImportFenceFdInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_external_fence_win32.ImportFenceWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.ImportMemoryBufferCollectionFUCHSIA',+-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.ImportMemoryFdInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_external_memory_host.ImportMemoryHostPointerInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_NV_external_memory_win32.ImportMemoryWin32HandleInfoNV',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalBufferInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalSharedEventInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.ImportSemaphoreFdInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.ImportSemaphoreWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.ImportSemaphoreZirconHandleInfoFUCHSIA',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV',+-- 'Vulkan.Extensions.VK_INTEL_performance_query.InitializePerformanceApiInfoINTEL',+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo',+-- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK',+-- 'Vulkan.Core10.Memory.MappedMemoryRange',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',+-- 'Vulkan.Core10.Memory.MemoryAllocateInfo',+-- 'Vulkan.Core10.OtherTypes.MemoryBarrier',+-- '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',+-- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID',+-- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV',+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA',+-- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.MemoryOpaqueCaptureAddressAllocateInfo',+-- 'Vulkan.Extensions.VK_EXT_memory_priority.MemoryPriorityAllocateInfoEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2',+-- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryWin32HandlePropertiesKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryZirconHandlePropertiesFUCHSIA',+-- 'Vulkan.Extensions.VK_EXT_metal_surface.MetalSurfaceCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapVersionInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX',+-- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.MutableDescriptorTypeCreateInfoEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowExecuteInfoNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatPropertiesNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowSessionCreatePrivateDataInfoNV',+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceConfigurationAcquireInfoINTEL',+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterDescriptionKHR',+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceCounterKHR',+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceMarkerInfoINTEL',+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL',+-- 'Vulkan.Extensions.VK_KHR_performance_query.PerformanceQuerySubmitInfoKHR',+-- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceStreamMarkerInfoINTEL',+-- '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',+-- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT',+-- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC',+-- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_border_color_swizzle.PhysicalDeviceBorderColorSwizzleFeaturesEXT',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures',+-- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT',+-- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_conditional_rendering.PhysicalDeviceConditionalRenderingFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixFeaturesNV',+-- 'Vulkan.Extensions.VK_NV_cooperative_matrix.PhysicalDeviceCooperativeMatrixPropertiesNV',+-- 'Vulkan.Extensions.VK_NV_corner_sampled_image.PhysicalDeviceCornerSampledImageFeaturesNV',+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PhysicalDeviceCoverageReductionModeFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_custom_border_color.PhysicalDeviceCustomBorderColorPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_dedicated_allocation_image_aliasing.PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_depth_clamp_zero_one.PhysicalDeviceDepthClampZeroOneFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PhysicalDeviceDepthClipControlFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PhysicalDeviceDepthClipEnableFeaturesEXT',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.PhysicalDeviceDepthStencilResolveProperties',+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingFeatures',+-- 'Vulkan.Core12.Promoted_From_VK_EXT_descriptor_indexing.PhysicalDeviceDescriptorIndexingProperties',+-- 'Vulkan.Extensions.VK_VALVE_descriptor_set_host_mapping.PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsFeaturesNV',+-- 'Vulkan.Extensions.VK_NV_device_generated_commands.PhysicalDeviceDeviceGeneratedCommandsPropertiesNV',+-- 'Vulkan.Extensions.VK_EXT_device_memory_report.PhysicalDeviceDeviceMemoryReportFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_device_diagnostics_config.PhysicalDeviceDiagnosticsConfigFeaturesNV',+-- '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.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_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo',+-- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo',+-- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM',+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_fragment_shader_barycentric.PhysicalDeviceFragmentShaderBarycentricPropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_fragment_shader_interlock.PhysicalDeviceFragmentShaderInterlockFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsFeaturesNV',+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PhysicalDeviceFragmentShadingRateEnumsPropertiesNV',+-- '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_KHR_global_priority.PhysicalDeviceGlobalPriorityQueryFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_graphics_pipeline_library.PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT',+-- '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_2d_view_of_3d.PhysicalDeviceImage2DViewOf3DFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.PhysicalDeviceImageCompressionControlFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control_swapchain.PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingFeaturesQCOM',+-- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',+-- '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.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_legacy_dithering.PhysicalDeviceLegacyDitheringFeaturesEXT',+-- '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.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',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_mesh_shader.PhysicalDeviceMeshShaderPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderPropertiesNV',+-- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewFeatures',+-- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties',+-- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV',+-- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures',+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_protected_access.PhysicalDevicePipelineProtectedAccessFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR',+-- 'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV',+-- '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_primitives_generated_query.PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT',+-- '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',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PhysicalDeviceProvokingVertexPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_rgba10x6_formats.PhysicalDeviceRGBA10X6FormatsFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_rasterization_order_attachment_access.PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT',+-- 'Vulkan.Extensions.VK_KHR_ray_query.PhysicalDeviceRayQueryFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.PhysicalDeviceRayTracingMaintenance1FeaturesKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.PhysicalDeviceRayTracingMotionBlurFeaturesNV',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',+-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',+-- 'Vulkan.Core12.Promoted_From_VK_EXT_scalar_block_layout.PhysicalDeviceScalarBlockLayoutFeatures',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.PhysicalDeviceSeparateDepthStencilLayoutsFeatures',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float2.PhysicalDeviceShaderAtomicFloat2FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_shader_atomic_float.PhysicalDeviceShaderAtomicFloatFeaturesEXT',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_atomic_int64.PhysicalDeviceShaderAtomicInt64Features',+-- 'Vulkan.Extensions.VK_KHR_shader_clock.PhysicalDeviceShaderClockFeaturesKHR',+-- 'Vulkan.Extensions.VK_AMD_shader_core_properties2.PhysicalDeviceShaderCoreProperties2AMD',+-- 'Vulkan.Extensions.VK_AMD_shader_core_properties.PhysicalDeviceShaderCorePropertiesAMD',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_shader_demote_to_helper_invocation.PhysicalDeviceShaderDemoteToHelperInvocationFeatures',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_shader_draw_parameters.PhysicalDeviceShaderDrawParametersFeatures',+-- 'Vulkan.Extensions.VK_AMD_shader_early_and_late_fragment_tests.PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD',+-- '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.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_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PhysicalDeviceShaderModuleIdentifierPropertiesEXT',+-- '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.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.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlFeatures',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control.PhysicalDeviceSubgroupSizeControlProperties',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.PhysicalDeviceSubpassMergeFeedbackFeaturesEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingFeaturesHUAWEI',+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.PhysicalDeviceSubpassShadingPropertiesHUAWEI',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.PhysicalDeviceSynchronization2Features',+-- 'Vulkan.Extensions.VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentFeaturesEXT',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texel_buffer_alignment.PhysicalDeviceTexelBufferAlignmentProperties',+-- 'Vulkan.Core13.Promoted_From_VK_EXT_texture_compression_astc_hdr.PhysicalDeviceTextureCompressionASTCHDRFeatures',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.PhysicalDeviceTilePropertiesFeaturesQCOM',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreFeatures',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties',+-- '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',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers.PhysicalDeviceVariablePointersFeatures',+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>,+-- 'Vulkan.Core12.PhysicalDeviceVulkan11Features',+-- '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.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',+-- 'Vulkan.Extensions.VK_EXT_color_write_enable.PipelineColorWriteCreateInfoEXT',+-- 'Vulkan.Extensions.VK_AMD_pipeline_compiler_control.PipelineCompilerControlCreateInfoAMD',+-- '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.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo',+-- 'Vulkan.Core10.Pipeline.PipelineDepthStencilStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT',+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableInternalRepresentationKHR',+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutablePropertiesKHR',+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineExecutableStatisticKHR',+-- 'Vulkan.Extensions.VK_NV_fragment_shading_rate_enums.PipelineFragmentShadingRateEnumStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PipelineInfoKHR',+-- 'Vulkan.Core10.Pipeline.PipelineInputAssemblyStateCreateInfo',+-- 'Vulkan.Core10.PipelineLayout.PipelineLayoutCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_pipeline_library.PipelineLibraryCreateInfoKHR',+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PipelinePropertiesIdentifierEXT',+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo',+-- 'Vulkan.Extensions.VK_AMD_rasterization_order.PipelineRasterizationStateRasterizationOrderAMD',+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo',+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PipelineRobustnessCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT',+-- 'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.PipelineShaderStageModuleIdentifierCreateInfoEXT',+-- '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',+-- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo',+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',+-- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV',+-- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo',+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_GGP_frame_token.PresentFrameTokenGGP',+-- 'Vulkan.Extensions.VK_KHR_present_id.PresentIdKHR',+-- 'Vulkan.Extensions.VK_KHR_swapchain.PresentInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_incremental_present.PresentRegionsKHR',+-- 'Vulkan.Extensions.VK_GOOGLE_display_timing.PresentTimesInfoGOOGLE',+-- '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_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#VkQueueFamilyQueryResultStatusPropertiesKHR VkQueueFamilyQueryResultStatusPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFamilyVideoPropertiesKHR VkQueueFamilyVideoPropertiesKHR>,+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingPipelineCreateInfoNV',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingPipelineInterfaceCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.RayTracingShaderGroupCreateInfoKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.RayTracingShaderGroupCreateInfoNV',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo',+-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',+-- 'Vulkan.Core10.Pass.RenderPassCreateInfo',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.RenderPassCreateInfo2',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationControlEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassCreationFeedbackCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_fragment_density_map.RenderPassFragmentDensityMapCreateInfoEXT',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.RenderPassInputAttachmentAspectCreateInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT',+-- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingAttachmentInfo',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR',+-- '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',+-- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT',+-- 'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.SamplerReductionModeCreateInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionImageFormatProperties',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionInfo',+-- 'Vulkan.Extensions.VK_QNX_screen_surface.ScreenSurfaceCreateInfoQNX',+-- 'Vulkan.Core10.QueueSemaphore.SemaphoreCreateInfo',+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_fd.SemaphoreGetFdInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.SemaphoreGetWin32HandleInfoKHR',+-- 'Vulkan.Extensions.VK_FUCHSIA_external_semaphore.SemaphoreGetZirconHandleInfoFUCHSIA',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreSignalInfo',+-- 'Vulkan.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',+-- 'Vulkan.Extensions.VK_EXT_shader_module_identifier.ShaderModuleIdentifierEXT',+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ShaderModuleValidationCacheCreateInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.SparseImageFormatProperties2',+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2',+-- 'Vulkan.Extensions.VK_GGP_stream_descriptor_surface.StreamDescriptorSurfaceCreateInfoGGP',+-- 'Vulkan.Core10.Queue.SubmitInfo',+-- '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',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_depth_stencil_resolve.SubpassDescriptionDepthStencilResolve',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.SubpassEndInfo',+-- 'Vulkan.Extensions.VK_QCOM_fragment_density_map_offset.SubpassFragmentDensityMapOffsetEndInfoQCOM',+-- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT',+-- 'Vulkan.Extensions.VK_HUAWEI_subpass_shading.SubpassShadingPipelineCreateInfoHUAWEI',+-- 'Vulkan.Extensions.VK_EXT_image_compression_control.SubresourceLayout2EXT',+-- 'Vulkan.Extensions.VK_EXT_display_surface_counter.SurfaceCapabilities2EXT',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR',+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',+-- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceFormat2KHR',+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT',+-- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR',+-- 'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR',+-- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',+-- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV',+-- 'Vulkan.Extensions.VK_FUCHSIA_buffer_collection.SysmemColorSpaceFUCHSIA',+-- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD',+-- 'Vulkan.Extensions.VK_QCOM_tile_properties.TilePropertiesQCOM',+-- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.TimelineSemaphoreSubmitInfo',+-- 'Vulkan.Extensions.VK_EXT_validation_cache.ValidationCacheCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputAttributeDescription2EXT',+-- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.VertexInputBindingDescription2EXT',+-- 'Vulkan.Extensions.VK_NN_vi_surface.ViSurfaceCreateInfoNN',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoBeginCodingInfoKHR VkVideoBeginCodingInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCapabilitiesKHR VkVideoCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoCodingControlInfoKHR VkVideoCodingControlInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeCapabilitiesKHR VkVideoDecodeCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264CapabilitiesEXT VkVideoDecodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264DpbSlotInfoEXT VkVideoDecodeH264DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264PictureInfoEXT VkVideoDecodeH264PictureInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264ProfileInfoEXT VkVideoDecodeH264ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersAddInfoEXT VkVideoDecodeH264SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH264SessionParametersCreateInfoEXT VkVideoDecodeH264SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265CapabilitiesEXT VkVideoDecodeH265CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265DpbSlotInfoEXT VkVideoDecodeH265DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265PictureInfoEXT VkVideoDecodeH265PictureInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265ProfileInfoEXT VkVideoDecodeH265ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersAddInfoEXT VkVideoDecodeH265SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeH265SessionParametersCreateInfoEXT VkVideoDecodeH265SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeUsageInfoKHR VkVideoDecodeUsageInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeCapabilitiesKHR VkVideoEncodeCapabilitiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264DpbSlotInfoEXT VkVideoEncodeH264DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersInfoEXT VkVideoEncodeH264EmitPictureParametersInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264NaluSliceInfoEXT VkVideoEncodeH264NaluSliceInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ProfileInfoEXT VkVideoEncodeH264ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlInfoEXT VkVideoEncodeH264RateControlInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264RateControlLayerInfoEXT VkVideoEncodeH264RateControlLayerInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264ReferenceListsInfoEXT VkVideoEncodeH264ReferenceListsInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersAddInfoEXT VkVideoEncodeH264SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264SessionParametersCreateInfoEXT VkVideoEncodeH264SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264VclFrameInfoEXT VkVideoEncodeH264VclFrameInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265CapabilitiesEXT VkVideoEncodeH265CapabilitiesEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265DpbSlotInfoEXT VkVideoEncodeH265DpbSlotInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265EmitPictureParametersInfoEXT VkVideoEncodeH265EmitPictureParametersInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265NaluSliceSegmentInfoEXT VkVideoEncodeH265NaluSliceSegmentInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ProfileInfoEXT VkVideoEncodeH265ProfileInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlInfoEXT VkVideoEncodeH265RateControlInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265ReferenceListsInfoEXT VkVideoEncodeH265ReferenceListsInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersAddInfoEXT VkVideoEncodeH265SessionParametersAddInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265SessionParametersCreateInfoEXT VkVideoEncodeH265SessionParametersCreateInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265VclFrameInfoEXT VkVideoEncodeH265VclFrameInfoEXT>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlInfoKHR VkVideoEncodeRateControlInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeRateControlLayerInfoKHR VkVideoEncodeRateControlLayerInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeUsageInfoKHR VkVideoEncodeUsageInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEndCodingInfoKHR VkVideoEndCodingInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoFormatPropertiesKHR VkVideoFormatPropertiesKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileInfoKHR VkVideoProfileInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoReferenceSlotInfoKHR VkVideoReferenceSlotInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionMemoryRequirementsKHR VkVideoSessionMemoryRequirementsKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersCreateInfoKHR VkVideoSessionParametersCreateInfoKHR>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionParametersUpdateInfoKHR VkVideoSessionParametersUpdateInfoKHR>,+-- 'Vulkan.Extensions.VK_KHR_wayland_surface.WaylandSurfaceCreateInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoKHR',+-- 'Vulkan.Extensions.VK_NV_win32_keyed_mutex.Win32KeyedMutexAcquireReleaseInfoNV',+-- 'Vulkan.Extensions.VK_KHR_win32_surface.Win32SurfaceCreateInfoKHR',+-- 'Vulkan.Core10.DescriptorSet.WriteDescriptorSet',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.WriteDescriptorSetAccelerationStructureKHR',+-- 'Vulkan.Extensions.VK_NV_ray_tracing.WriteDescriptorSetAccelerationStructureNV',+-- '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+  deriving newtype (Eq, Ord, Storable, Zero)++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_APPLICATION_INFO"+pattern STRUCTURE_TYPE_APPLICATION_INFO = StructureType 0++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO"+pattern STRUCTURE_TYPE_INSTANCE_CREATE_INFO = StructureType 1++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO"+pattern STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = StructureType 2++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO"+pattern STRUCTURE_TYPE_DEVICE_CREATE_INFO = StructureType 3++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBMIT_INFO"+pattern STRUCTURE_TYPE_SUBMIT_INFO = StructureType 4++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO"+pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = StructureType 5++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE"+pattern STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = StructureType 6++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO"+pattern STRUCTURE_TYPE_BIND_SPARSE_INFO = StructureType 7++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO"+pattern STRUCTURE_TYPE_FENCE_CREATE_INFO = StructureType 8++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO"+pattern STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = StructureType 9++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO"+pattern STRUCTURE_TYPE_EVENT_CREATE_INFO = StructureType 10++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO"+pattern STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = StructureType 11++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO"+pattern STRUCTURE_TYPE_BUFFER_CREATE_INFO = StructureType 12++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO"+pattern STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = StructureType 13++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO"+pattern STRUCTURE_TYPE_IMAGE_CREATE_INFO = StructureType 14++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO"+pattern STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = StructureType 15++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO"+pattern STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = StructureType 16++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = StructureType 17++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = StructureType 18++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = StructureType 19++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = StructureType 20++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = StructureType 21++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = StructureType 22++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = StructureType 23++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = StructureType 24++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = StructureType 25++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = StructureType 26++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = StructureType 27++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO"+pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = StructureType 28++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO"+pattern STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = StructureType 29++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = StructureType 30++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO"+pattern STRUCTURE_TYPE_SAMPLER_CREATE_INFO = StructureType 31++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = StructureType 32++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = StructureType 33++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = StructureType 34++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = StructureType 35++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET"+pattern STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = StructureType 36++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO"+pattern STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = StructureType 37++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO"+pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = StructureType 38++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO"+pattern STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = StructureType 39++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = StructureType 40++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = StructureType 41++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = StructureType 42++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO"+pattern STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = StructureType 43++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER"+pattern STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = StructureType 44++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER"+pattern STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = StructureType 45++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_BARRIER"+pattern STRUCTURE_TYPE_MEMORY_BARRIER = StructureType 46++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO"+pattern STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = StructureType 47++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO"+pattern STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = StructureType 48++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = StructureType 1000351002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = StructureType 1000351000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC"+pattern STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = StructureType 1000485001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = StructureType 1000485000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM"+pattern STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = StructureType 1000484001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = StructureType 1000484000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = StructureType 1000466000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = StructureType 1000465000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"+pattern STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = StructureType 1000464010++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV"+pattern STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = StructureType 1000464005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = StructureType 1000464004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"+pattern STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = StructureType 1000464003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"+pattern STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = StructureType 1000464002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = StructureType 1000464001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = StructureType 1000464000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = StructureType 1000342000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT"+pattern STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = StructureType 1000462003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = StructureType 1000462002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = StructureType 1000462001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = StructureType 1000462000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = StructureType 1000458002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT"+pattern STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = StructureType 1000458001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = StructureType 1000458000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = StructureType 1000455001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = StructureType 1000455000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"+pattern STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = StructureType 1000440002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = StructureType 1000440001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = StructureType 1000440000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = StructureType 1000437000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = StructureType 1000430000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"+pattern STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = StructureType 1000425002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"+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_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = StructureType 1000422000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = StructureType 1000421000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = StructureType 1000420002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = StructureType 1000420001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = StructureType 1000420000++-- 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"+pattern STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = StructureType 1000411001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = StructureType 1000411000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = StructureType 1000396009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT"+pattern STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = StructureType 1000396008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = StructureType 1000396007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = StructureType 1000396006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = StructureType 1000396005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT"+pattern STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = StructureType 1000396004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT"+pattern STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = StructureType 1000396003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT"+pattern STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = StructureType 1000396002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT"+pattern STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = StructureType 1000396001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT"+pattern STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = StructureType 1000396000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = StructureType 1000393000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = StructureType 1000392001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = StructureType 1000392000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT"+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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = StructureType 1000386000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = StructureType 1000382000++-- 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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = StructureType 1000381000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX"+pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"+pattern STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = StructureType 1000376002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"+pattern STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = StructureType 1000376001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = StructureType 1000376000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = StructureType 1000372001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT"+pattern STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = StructureType 1000372000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"+pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = StructureType 1000371000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = StructureType 1000370000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = StructureType 1000369002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = StructureType 1000369001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"+pattern STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = StructureType 1000369000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA"+pattern STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = StructureType 1000366008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = StructureType 1000366005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = StructureType 1000366004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA"+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = StructureType 1000366003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = StructureType 1000366002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = StructureType 1000366001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = StructureType 1000366000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"+pattern STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = StructureType 1000364001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000364000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = StructureType 1000355001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = StructureType 1000355000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"+pattern STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = StructureType 1000354001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = StructureType 1000354000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = StructureType 1000353000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"+pattern STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = StructureType 1000352002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"+pattern STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = StructureType 1000352001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000352000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = StructureType 1000344000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = StructureType 1000341002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT"+pattern STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = StructureType 1000341001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = StructureType 1000341000++-- 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_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = StructureType 1000339000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = StructureType 1000338004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT"+pattern STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = StructureType 1000338003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT"+pattern STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = StructureType 1000338002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT"+pattern STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = StructureType 1000338001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = StructureType 1000338000++-- 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_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = StructureType 1000332001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = StructureType 1000332000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = StructureType 1000330000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = StructureType 1000328001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = StructureType 1000328000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = StructureType 1000327002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = StructureType 1000327001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = StructureType 1000327000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = StructureType 1000326002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"+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_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_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = StructureType 1000322000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = StructureType 1000203000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = StructureType 1000321000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = StructureType 1000320002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = StructureType 1000320001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = StructureType 1000320000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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_IMPORT_METAL_SHARED_EVENT_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311011++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = StructureType 1000311010++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = StructureType 1000311008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = StructureType 1000311006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT"+pattern STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = StructureType 1000311004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = StructureType 1000311003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = StructureType 1000311002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = StructureType 1000311001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = StructureType 1000311000++-- 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_PRESENT_ID_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = StructureType 1000294001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_ID_KHR"+pattern STRUCTURE_TYPE_PRESENT_ID_KHR = StructureType 1000294000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = StructureType 1000292002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = StructureType 1000292001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = StructureType 1000292000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = StructureType 1000290000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = StructureType 1000287002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = StructureType 1000287001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = StructureType 1000287000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = StructureType 1000286001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = StructureType 1000286000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"+pattern STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = StructureType 1000284002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = StructureType 1000284001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = StructureType 1000284000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"+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_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = StructureType 1000281000++-- 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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = StructureType 1000278000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = StructureType 1000277007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000277006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV"+pattern STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = StructureType 1000277005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = StructureType 1000277004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"+pattern STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = StructureType 1000277003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = StructureType 1000277002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"+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_ATOMIC_FLOAT_2_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = StructureType 1000273000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = StructureType 1000269005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR"+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = StructureType 1000269004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = StructureType 1000269003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = StructureType 1000269002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_INFO_KHR = StructureType 1000269001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = StructureType 1000269000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000267000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = StructureType 1000265000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = StructureType 1000260000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000259002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = StructureType 1000259001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = StructureType 1000259000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = StructureType 1000256000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"+pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = StructureType 1000255001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = StructureType 1000255002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"+pattern STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = StructureType 1000255000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = StructureType 1000254002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = StructureType 1000254001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = StructureType 1000254000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = StructureType 1000252000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = StructureType 1000251000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"+pattern STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = StructureType 1000250002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = StructureType 1000250001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = StructureType 1000250000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV"+pattern STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = StructureType 1000249001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = StructureType 1000249000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = StructureType 1000248000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT"+pattern STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = StructureType 1000247000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = StructureType 1000244000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = StructureType 1000240000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR"+pattern STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = StructureType 1000239000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT"+pattern STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = StructureType 1000238001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = StructureType 1000238000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = StructureType 1000237000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = StructureType 1000234000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = StructureType 1000229000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = StructureType 1000227000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = StructureType 1000226004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = StructureType 1000226003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = StructureType 1000226002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"+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_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = StructureType 1000218001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT"+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_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"+pattern STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = StructureType 1000213001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD"+pattern STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = StructureType 1000213000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = StructureType 1000212000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"+pattern STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = StructureType 1000210005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL"+pattern STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = StructureType 1000210004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL"+pattern STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = StructureType 1000210003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL"+pattern STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = StructureType 1000210002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL"+pattern STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = StructureType 1000210001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"+pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = StructureType 1000210000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = StructureType 1000209000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"+pattern STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = StructureType 1000206001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV"+pattern STRUCTURE_TYPE_CHECKPOINT_DATA_NV = StructureType 1000206000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = StructureType 1000205002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = StructureType 1000205000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = StructureType 1000204000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = StructureType 1000202001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"+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_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = StructureType 1000190002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = StructureType 1000190001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT"+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"+pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = StructureType 1000184000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD"+pattern STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = StructureType 1000183000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = StructureType 1000181000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = StructureType 1000178002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT"+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_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"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = StructureType 1000170000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = StructureType 1000166001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = StructureType 1000166000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = StructureType 1000165012++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = StructureType 1000165011++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = StructureType 1000165009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = StructureType 1000165008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = StructureType 1000165007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"+pattern STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = StructureType 1000165006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV"+pattern STRUCTURE_TYPE_GEOMETRY_AABB_NV = StructureType 1000165005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV"+pattern STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = StructureType 1000165004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_GEOMETRY_NV"+pattern STRUCTURE_TYPE_GEOMETRY_NV = StructureType 1000165003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = StructureType 1000165001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = StructureType 1000165000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = StructureType 1000164005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = StructureType 1000164002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = StructureType 1000164001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = StructureType 1000164000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = StructureType 1000163001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = StructureType 1000163000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"+pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = StructureType 1000158006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = StructureType 1000158005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = StructureType 1000158004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = StructureType 1000158003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = StructureType 1000158002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"+pattern STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = StructureType 1000158000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = StructureType 1000154001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = StructureType 1000154000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = StructureType 1000152000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = StructureType 1000348013++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = StructureType 1000150018++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = StructureType 1000150016++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = StructureType 1000150015++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = StructureType 1000347001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = StructureType 1000347000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = StructureType 1000150020++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = StructureType 1000150017++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = StructureType 1000150014++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = StructureType 1000150013++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"+pattern STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150012++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"+pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = StructureType 1000150011++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR"+pattern STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = StructureType 1000150010++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = StructureType 1000150009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = StructureType 1000150006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = StructureType 1000150005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = StructureType 1000150004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = StructureType 1000150003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = StructureType 1000150002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"+pattern STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = StructureType 1000150000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"+pattern STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = StructureType 1000150007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = StructureType 1000149000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = StructureType 1000148002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = StructureType 1000148001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = StructureType 1000148000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = StructureType 1000143004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = StructureType 1000143003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = StructureType 1000143002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT"+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_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"+pattern STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = StructureType 1000129005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+pattern STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+pattern STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = StructureType 1000129003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = StructureType 1000129002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = StructureType 1000129001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"+pattern STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = StructureType 1000129000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = StructureType 1000128004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"+pattern STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = StructureType 1000128003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT"+pattern STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = StructureType 1000128002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = StructureType 1000128001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = StructureType 1000128000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK"+pattern STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = StructureType 1000123000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK"+pattern STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = StructureType 1000122000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR"+pattern STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = StructureType 1000121004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR"+pattern STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = StructureType 1000121003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR"+pattern STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = StructureType 1000121002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR"+pattern STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = StructureType 1000121001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR"+pattern STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = StructureType 1000121000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR"+pattern STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = StructureType 1000119002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR"+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = StructureType 1000119001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = StructureType 1000119000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR"+pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = StructureType 1000116006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR"+pattern STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = StructureType 1000116005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR"+pattern STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = StructureType 1000116004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR"+pattern STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = StructureType 1000116003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = StructureType 1000116002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = StructureType 1000116001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = StructureType 1000116000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR"+pattern STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = StructureType 1000115001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR"+pattern STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = StructureType 1000115000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000114002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = StructureType 1000114001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = StructureType 1000114000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"+pattern STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = StructureType 1000111000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_HDR_METADATA_EXT"+pattern STRUCTURE_TYPE_HDR_METADATA_EXT = StructureType 1000105000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = StructureType 1000102001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = StructureType 1000102000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = StructureType 1000101001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = StructureType 1000101000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = StructureType 1000099001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = StructureType 1000099000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = StructureType 1000098000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = StructureType 1000097000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE"+pattern STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = StructureType 1000092000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = StructureType 1000091003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT"+pattern STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = StructureType 1000091002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT"+pattern STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = StructureType 1000091001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT"+pattern STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = StructureType 1000091000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT"+pattern STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = StructureType 1000090000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = StructureType 1000087000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR"+pattern STRUCTURE_TYPE_PRESENT_REGIONS_KHR = StructureType 1000084000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT"+pattern STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = StructureType 1000081002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = StructureType 1000081001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"+pattern STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = StructureType 1000081000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = StructureType 1000080000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR"+pattern STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = StructureType 1000079001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR"+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = StructureType 1000079000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000078003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR"+pattern STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = StructureType 1000078002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = StructureType 1000078001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = StructureType 1000078000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"+pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = StructureType 1000075000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR"+pattern STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = StructureType 1000074002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = StructureType 1000074001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = StructureType 1000074000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = StructureType 1000073003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = StructureType 1000073002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = StructureType 1000073000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = StructureType 1000068002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = StructureType 1000068001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = StructureType 1000068000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT"+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_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"+pattern STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = StructureType 1000061000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000060012++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR"+pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = StructureType 1000060011++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR"+pattern STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = StructureType 1000060010++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR"+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = StructureType 1000060009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = StructureType 1000060008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR"+pattern STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = StructureType 1000060007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV"+pattern STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = StructureType 1000058000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV"+pattern STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = StructureType 1000057001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV"+pattern STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = StructureType 1000057000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV"+pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = StructureType 1000056001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = StructureType 1000056000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = StructureType 1000050000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"+pattern STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = StructureType 1000049000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"+pattern STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = StructureType 1000044009++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD"+pattern STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = StructureType 1000044008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"+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_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"+pattern STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = StructureType 1000030001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX"+pattern STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = StructureType 1000030000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX"+pattern STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = StructureType 1000029002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX"+pattern STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = StructureType 1000029001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX"+pattern STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = StructureType 1000029000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = StructureType 1000028002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = StructureType 1000028001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = StructureType 1000028000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"+pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = StructureType 1000026002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = StructureType 1000026001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"+pattern STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = StructureType 1000026000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = StructureType 1000022002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = StructureType 1000022001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = StructureType 1000022000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD"+pattern STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = StructureType 1000018000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = StructureType 1000011000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = StructureType 1000009000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = StructureType 1000008000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = StructureType 1000006000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = StructureType 1000005000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = StructureType 1000004000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR"+pattern STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = StructureType 1000003000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = StructureType 1000002001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = StructureType 1000002000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR"+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"+pattern STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = StructureType 1000257003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO"+pattern STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = StructureType 1000257002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO"+pattern STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = StructureType 1000244001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = StructureType 1000257000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO"+pattern STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = StructureType 1000207005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO"+pattern STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = StructureType 1000207004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO"+pattern STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = StructureType 1000207003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO"+pattern STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = StructureType 1000207002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = StructureType 1000207001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = StructureType 1000207000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = StructureType 1000261000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"+pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = StructureType 1000241002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT"+pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = StructureType 1000241001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = StructureType 1000241000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = StructureType 1000175000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = StructureType 1000253000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO"+pattern STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = StructureType 1000108003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"+pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = StructureType 1000108002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"+pattern STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = StructureType 1000108001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = StructureType 1000108000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = StructureType 1000211000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO"+pattern STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = StructureType 1000130001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = StructureType 1000130000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO"+pattern STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = StructureType 1000246000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = StructureType 1000221000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"+pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = StructureType 1000199001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = StructureType 1000199000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = StructureType 1000161004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = StructureType 1000161003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = StructureType 1000161002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = StructureType 1000161001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = StructureType 1000161000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = StructureType 1000197000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = StructureType 1000082000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = StructureType 1000180000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = StructureType 1000196000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = StructureType 1000177000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_END_INFO"+pattern STRUCTURE_TYPE_SUBPASS_END_INFO = StructureType 1000109006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO"+pattern STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = StructureType 1000109005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2"+pattern STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = StructureType 1000109004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2"+pattern STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = StructureType 1000109003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2"+pattern STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = StructureType 1000109002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2"+pattern STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = StructureType 1000109001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2"+pattern STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = StructureType 1000109000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO"+pattern STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = StructureType 1000147000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = StructureType 52++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = StructureType 51++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = StructureType 50++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = StructureType 49++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = StructureType 1000063000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT"+pattern STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = StructureType 1000168001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = StructureType 1000168000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES"+pattern STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = StructureType 1000076001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = StructureType 1000076000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO"+pattern STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = StructureType 1000077000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO"+pattern STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = StructureType 1000113000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES"+pattern STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = StructureType 1000112001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = StructureType 1000112000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO"+pattern STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = StructureType 1000072002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO"+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = StructureType 1000072001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO"+pattern STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = StructureType 1000072000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = StructureType 1000071004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES"+pattern STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = StructureType 1000071003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = StructureType 1000071002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES"+pattern STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = StructureType 1000071001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = StructureType 1000071000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"+pattern STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = StructureType 1000085000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = StructureType 1000156005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = StructureType 1000156004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"+pattern STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = StructureType 1000156003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO"+pattern STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = StructureType 1000156002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO"+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = StructureType 1000156001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO"+pattern STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = StructureType 1000156000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2"+pattern STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = StructureType 1000145003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = StructureType 1000145002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = StructureType 1000145001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO"+pattern STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = StructureType 1000145000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = StructureType 1000120000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = StructureType 1000053002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = StructureType 1000053001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO"+pattern STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = StructureType 1000053000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"+pattern STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = StructureType 1000117003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO"+pattern STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = StructureType 1000117002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"+pattern STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = StructureType 1000117001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = StructureType 1000117000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = StructureType 1000059008++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2"+pattern STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = StructureType 1000059007++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = StructureType 1000059006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2"+pattern STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = StructureType 1000059005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = StructureType 1000059004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2"+pattern STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = StructureType 1000059003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2"+pattern STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = StructureType 1000059002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = StructureType 1000059001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = StructureType 1000059000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"+pattern STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = StructureType 1000146004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2"+pattern STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = StructureType 1000146003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"+pattern STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2"+pattern STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2"+pattern STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = StructureType 1000146000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO"+pattern STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = StructureType 1000070001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = StructureType 1000070000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = StructureType 1000060014++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"+pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = StructureType 1000060013++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO"+pattern STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = StructureType 1000060006++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO"+pattern STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = StructureType 1000060005++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"+pattern STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = StructureType 1000060004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"+pattern STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = StructureType 1000060003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO"+pattern STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = StructureType 1000060000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO"+pattern STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = StructureType 1000127001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS"+pattern STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = StructureType 1000127000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = StructureType 1000083000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO"+pattern STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = StructureType 1000157001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO"+pattern STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = StructureType 1000157000++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = StructureType 1000094000++{-# COMPLETE+  STRUCTURE_TYPE_APPLICATION_INFO+  , STRUCTURE_TYPE_INSTANCE_CREATE_INFO+  , STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO+  , STRUCTURE_TYPE_DEVICE_CREATE_INFO+  , STRUCTURE_TYPE_SUBMIT_INFO+  , STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO+  , STRUCTURE_TYPE_MAPPED_MEMORY_RANGE+  , STRUCTURE_TYPE_BIND_SPARSE_INFO+  , STRUCTURE_TYPE_FENCE_CREATE_INFO+  , STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO+  , STRUCTURE_TYPE_EVENT_CREATE_INFO+  , STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO+  , STRUCTURE_TYPE_BUFFER_CREATE_INFO+  , STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO+  , STRUCTURE_TYPE_IMAGE_CREATE_INFO+  , STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO+  , STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO+  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO+  , STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO+  , STRUCTURE_TYPE_SAMPLER_CREATE_INFO+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO+  , STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO+  , STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET+  , STRUCTURE_TYPE_COPY_DESCRIPTOR_SET+  , STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO+  , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO+  , STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO+  , STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO+  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO+  , STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO+  , STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO+  , STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER+  , STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER+  , STRUCTURE_TYPE_MEMORY_BARRIER+  , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO+  , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+  , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT+  , STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC+  , STRUCTURE_TYPE_TILE_PROPERTIES_QCOM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT+  , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV+  , STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV+  , STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV+  , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV+  , STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT+  , STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT+  , STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT+  , STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT+  , STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT+  , STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT+  , STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV+  , 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_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE+  , STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE+  , 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+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT+  , STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT+  , STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT+  , STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT+  , STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT+  , STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT+  , STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT+  , STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT+  , 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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_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+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+  , STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT+  , STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT+  , STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV+  , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI+  , STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI+  , STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA+  , STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA+  , STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA+  , STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA+  , STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA+  , STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA+  , STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA+  , STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA+  , STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA+  , STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA+  , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA+  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA+  , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA+  , STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA+  , STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA+  , STRUCTURE_TYPE_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+  , STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT+  , STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT+  , STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT+  , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT+  , STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT+  , STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT+  , STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT+  , STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT+  , STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT+  , STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR+  , 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+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV+  , 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_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD+  , STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT+  , STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV+  , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV+  , STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT+  , STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT+  , STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT+  , STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT+  , STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT+  , STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR+  , STRUCTURE_TYPE_PRESENT_ID_KHR+  , STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV+  , STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT+  , STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT+  , STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT+  , STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT+  , 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_FEATURES_EXT+  , 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+  , STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV+  , STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV+  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV+  , STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV+  , 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_ATOMIC_FLOAT_2_FEATURES_EXT+  , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR+  , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR+  , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR+  , STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR+  , STRUCTURE_TYPE_PIPELINE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT+  , STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT+  , STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT+  , STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV+  , STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV+  , STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR+  , STRUCTURE_TYPE_VALIDATION_FEATURES_EXT+  , STRUCTURE_TYPE_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+  , STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR+  , STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR+  , 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_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_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA+  , STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD+  , STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT+  , STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL+  , STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL+  , STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL+  , STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL+  , STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL+  , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL+  , STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV+  , STRUCTURE_TYPE_CHECKPOINT_DATA_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV+  , 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_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+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR+  , 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_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+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV+  , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV+  , STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV+  , STRUCTURE_TYPE_GEOMETRY_AABB_NV+  , STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV+  , STRUCTURE_TYPE_GEOMETRY_NV+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV+  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR+  , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT+  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT+  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT+  , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT+  , STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV+  , STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR+  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR+  , STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR+  , STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR+  , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR+  , STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR+  , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR+  , STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR+  , STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT+  , STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT+  , 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_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID+  , STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID+  , STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+  , STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID+  , STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID+  , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT+  , STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT+  , STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT+  , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT+  , STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT+  , STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK+  , STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK+  , STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR+  , STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR+  , STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR+  , STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR+  , STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR+  , STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR+  , STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR+  , STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR+  , STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR+  , STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR+  , STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR+  , STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR+  , STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR+  , STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR+  , STRUCTURE_TYPE_HDR_METADATA_EXT+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT+  , STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX+  , STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE+  , STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT+  , STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT+  , STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT+  , STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT+  , STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT+  , STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PRESENT_REGIONS_KHR+  , STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT+  , STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR+  , STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR+  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR+  , STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR+  , STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR+  , STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR+  , STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR+  , STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR+  , STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR+  , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT+  , STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT+  , STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT+  , STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN+  , STRUCTURE_TYPE_VALIDATION_FLAGS_EXT+  , STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR+  , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR+  , STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR+  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR+  , STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR+  , STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR+  , STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV+  , STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV+  , STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV+  , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV+  , STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP+  , STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX+  , 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_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD+  , STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX+  , STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX+  , STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX+  , STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX+  , STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT+  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV+  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV+  , STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV+  , STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT+  , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT+  , STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT+  , STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD+  , STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT+  , STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR+  , STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR+  , 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+  , STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES+  , STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO+  , STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO+  , STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO+  , STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES+  , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT+  , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES+  , STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO+  , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO+  , STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES+  , STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES+  , STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES+  , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES+  , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT+  , STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES+  , STRUCTURE_TYPE_SUBPASS_END_INFO+  , STRUCTURE_TYPE_SUBPASS_BEGIN_INFO+  , STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2+  , STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2+  , STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2+  , STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2+  , STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2+  , STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES+  , STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES+  , STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO+  , STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO+  , STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+  , STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO+  , STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO+  , STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES+  , STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO+  , STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO+  , STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES+  , STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO+  , STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+  , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO+  , STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES+  , STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES+  , STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO+  , STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO+  , STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO+  , STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2+  , STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2+  , STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2+  , STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2+  , STRUCTURE_TYPE_FORMAT_PROPERTIES_2+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2+  , STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2+  , STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2+  , STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2+  , STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2+  , STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2+  , STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES+  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO+  , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO+  , STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO+  , STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO+  , STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO+  , STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO+  , STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO+  , STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO+  , STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES+  , STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO+  , STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES ::+    StructureType+  #-}++conNameStructureType :: String+conNameStructureType = "StructureType"++enumPrefixStructureType :: String+enumPrefixStructureType = "STRUCTURE_TYPE_"++showTableStructureType :: [(StructureType, String)]+showTableStructureType =+  [ (STRUCTURE_TYPE_APPLICATION_INFO, "APPLICATION_INFO")+  ,+    ( STRUCTURE_TYPE_INSTANCE_CREATE_INFO+    , "INSTANCE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO+    , "DEVICE_QUEUE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_CREATE_INFO+    , "DEVICE_CREATE_INFO"+    )+  , (STRUCTURE_TYPE_SUBMIT_INFO, "SUBMIT_INFO")+  ,+    ( STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO+    , "MEMORY_ALLOCATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_MAPPED_MEMORY_RANGE+    , "MAPPED_MEMORY_RANGE"+    )+  , (STRUCTURE_TYPE_BIND_SPARSE_INFO, "BIND_SPARSE_INFO")+  ,+    ( STRUCTURE_TYPE_FENCE_CREATE_INFO+    , "FENCE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO+    , "SEMAPHORE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EVENT_CREATE_INFO+    , "EVENT_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO+    , "QUERY_POOL_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_CREATE_INFO+    , "BUFFER_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO+    , "BUFFER_VIEW_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_CREATE_INFO+    , "IMAGE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO+    , "IMAGE_VIEW_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO+    , "SHADER_MODULE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO+    , "PIPELINE_CACHE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO+    , "PIPELINE_SHADER_STAGE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO+    , "PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO+    , "PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO+    , "PIPELINE_TESSELLATION_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO+    , "PIPELINE_VIEWPORT_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO+    , "PIPELINE_RASTERIZATION_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO+    , "PIPELINE_MULTISAMPLE_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO+    , "PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO+    , "PIPELINE_COLOR_BLEND_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO+    , "PIPELINE_DYNAMIC_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO+    , "GRAPHICS_PIPELINE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO+    , "COMPUTE_PIPELINE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO+    , "PIPELINE_LAYOUT_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_CREATE_INFO+    , "SAMPLER_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO+    , "DESCRIPTOR_SET_LAYOUT_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO+    , "DESCRIPTOR_POOL_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO+    , "DESCRIPTOR_SET_ALLOCATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET+    , "WRITE_DESCRIPTOR_SET"+    )+  ,+    ( STRUCTURE_TYPE_COPY_DESCRIPTOR_SET+    , "COPY_DESCRIPTOR_SET"+    )+  ,+    ( STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO+    , "FRAMEBUFFER_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO+    , "RENDER_PASS_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO+    , "COMMAND_POOL_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO+    , "COMMAND_BUFFER_ALLOCATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO+    , "COMMAND_BUFFER_INHERITANCE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO+    , "COMMAND_BUFFER_BEGIN_INFO"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO+    , "RENDER_PASS_BEGIN_INFO"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER+    , "BUFFER_MEMORY_BARRIER"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER+    , "IMAGE_MEMORY_BARRIER"+    )+  , (STRUCTURE_TYPE_MEMORY_BARRIER, "MEMORY_BARRIER")+  ,+    ( STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO+    , "LOADER_INSTANCE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO+    , "LOADER_DEVICE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT+    , "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT+    , "PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC+    , "AMIGO_PROFILING_SUBMIT_INFO_SEC"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC+    , "PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC"+    )+  ,+    ( STRUCTURE_TYPE_TILE_PROPERTIES_QCOM+    , "TILE_PROPERTIES_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM+    , "PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT+    , "PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT+    , "PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV+    , "OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV+    , "OPTICAL_FLOW_EXECUTE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV+    , "OPTICAL_FLOW_SESSION_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV+    , "OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV+    , "OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV+    , "PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV+    , "PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT+    , "PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT+    , "SHADER_MODULE_IDENTIFIER_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT+    , "PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT+    , "PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT+    , "RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT+    , "RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT+    , "RENDER_PASS_CREATION_CONTROL_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT+    , "PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM+    , "IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM+    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM+    , "PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT+    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV+    , "PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM+    , "SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT+    , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT+    , "PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE+    , "DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE+    , "DESCRIPTOR_SET_BINDING_REFERENCE_VALVE"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE+    , "PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT+    , "PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT+    , "SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT+    , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT+    , "ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT+    , "MICROMAP_BUILD_SIZES_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT+    , "MICROMAP_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT+    , "PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT+    , "COPY_MEMORY_TO_MICROMAP_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT+    , "COPY_MICROMAP_TO_MEMORY_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT+    , "COPY_MICROMAP_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT+    , "MICROMAP_VERSION_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT+    , "MICROMAP_BUILD_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT+    , "PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT"+    )+  ,+    ( 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_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR+    , "PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT+    , "PHYSICAL_DEVICE_PRIMITIVES_GENERATED_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"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT+    , "MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT+    , "SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT+    , "PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT+    , "PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT+    , "PIPELINE_PROPERTIES_IDENTIFIER_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV+    , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV+    , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI+    , "PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI+    , "PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI+    , "PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI"+    )+  ,+    ( STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI+    , "SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA+    , "BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA+    , "SYSMEM_COLOR_SPACE_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA+    , "IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA+    , "IMAGE_CONSTRAINTS_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA+    , "BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA+    , "BUFFER_CONSTRAINTS_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA+    , "BUFFER_COLLECTION_PROPERTIES_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA+    , "BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA+    , "IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA+    , "BUFFER_COLLECTION_CREATE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA+    , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA+    , "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA+    , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA+    , "MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA+    , "IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT+    , "PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT+    , "PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT+    , "PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT+    , "DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT+    , "PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_DRM_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT+    , "VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT"+    )+  ,+    ( STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT+    , "VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT+    , "PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT+    , "DIRECTFB_SURFACE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT+    , "PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT+    , "DEVICE_FAULT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT+    , "DEVICE_FAULT_COUNTS_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT+    , "PHYSICAL_DEVICE_FAULT_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT+    , "PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT+    , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT+    , "IMAGE_COMPRESSION_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT+    , "IMAGE_SUBRESOURCE_2_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT+    , "SUBRESOURCE_LAYOUT_2_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT+    , "IMAGE_COMPRESSION_CONTROL_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT+    , "PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR+    , "PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR"+    )+  ,+    ( 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"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT+    , "PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT+    , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV+    , "ACCELERATION_STRUCTURE_MOTION_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV+    , "PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV+    , "ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV+    , "PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR+    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR+    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD+    , "PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD"+    )+  ,+    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT+    , "GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT+    , "PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT"+    )+  ,+    ( 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_IMPORT_METAL_SHARED_EVENT_INFO_EXT+    , "IMPORT_METAL_SHARED_EVENT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT+    , "EXPORT_METAL_SHARED_EVENT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT+    , "IMPORT_METAL_IO_SURFACE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT+    , "EXPORT_METAL_IO_SURFACE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT+    , "IMPORT_METAL_TEXTURE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT+    , "EXPORT_METAL_TEXTURE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT+    , "IMPORT_METAL_BUFFER_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT+    , "EXPORT_METAL_BUFFER_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT+    , "EXPORT_METAL_COMMAND_QUEUE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT+    , "EXPORT_METAL_DEVICE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT+    , "EXPORT_METAL_OBJECTS_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT+    , "EXPORT_METAL_OBJECT_CREATE_INFO_EXT"+    )+  ,+    ( 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_PRESENT_ID_FEATURES_KHR+    , "PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR"+    )+  , (STRUCTURE_TYPE_PRESENT_ID_KHR, "PRESENT_ID_KHR")+  ,+    ( STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV+    , "SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV+    , "SURFACE_CAPABILITIES_PRESENT_BARRIER_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV+    , "PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV"+    )+  ,+    ( 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"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT+    , "SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT+    , "PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT+    , "DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT+    , "DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT+    , "PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM+    , "RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM"+    )+  ,+    ( 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_FEATURES_EXT+    , "PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV+    , "COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV+    , "PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV+    , "GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV+    , "GENERATED_COMMANDS_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV+    , "INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV+    , "INDIRECT_COMMANDS_LAYOUT_TOKEN_NV"+    )+  ,+    ( STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV+    , "GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV+    , "GRAPHICS_SHADER_GROUP_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV+    , "PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR+    , "PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR+    , "PIPELINE_EXECUTABLE_STATISTIC_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR+    , "PIPELINE_EXECUTABLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR+    , "PIPELINE_EXECUTABLE_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_INFO_KHR+    , "PIPELINE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR+    , "PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT+    , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT+    , "PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT+    , "PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT+    , "PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT+    , "HEADLESS_SURFACE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT+    , "SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT+    , "SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT+    , "SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT+    , "PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT+    , "PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT+    , "PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT+    , "PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV+    , "FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV+    , "PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV+    , "PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV+    , "COOPERATIVE_MATRIX_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV+    , "PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR+    , "PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_VALIDATION_FEATURES_EXT+    , "VALIDATION_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_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"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV+    , "PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR+    , "SURFACE_PROTECTED_CAPABILITIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT+    , "MEMORY_PRIORITY_ALLOCATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT+    , "PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT+    , "PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD+    , "PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD+    , "PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR+    , "PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR+    , "FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT+    , "RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT"+    )+  ,+    ( 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_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"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL+    , "PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL+    , "PERFORMANCE_OVERRIDE_INFO_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL+    , "PERFORMANCE_STREAM_MARKER_INFO_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL+    , "PERFORMANCE_MARKER_INFO_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL+    , "INITIALIZE_PERFORMANCE_API_INFO_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL+    , "QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL+    , "PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL"+    )+  ,+    ( STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV+    , "QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_CHECKPOINT_DATA_NV+    , "CHECKPOINT_DATA_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV+    , "PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV+    , "PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV+    , "PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV+    , "PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV+    , "PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV+    , "PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV"+    )+  ,+    ( 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"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT+    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT+    , "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"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR+    , "PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR"+    )+  ,+    ( 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_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT+    , "FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT+    , "PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV+    , "PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV+    , "PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV+    , "ACCELERATION_STRUCTURE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV+    , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV+    , "PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV+    , "ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV+    , "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV"+    )+  ,+    ( STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV+    , "BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV"+    )+  , (STRUCTURE_TYPE_GEOMETRY_AABB_NV, "GEOMETRY_AABB_NV")+  ,+    ( STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV+    , "GEOMETRY_TRIANGLES_NV"+    )+  , (STRUCTURE_TYPE_GEOMETRY_NV, "GEOMETRY_NV")+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV+    , "ACCELERATION_STRUCTURE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV+    , "RAY_TRACING_PIPELINE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV+    , "PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV+    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV+    , "PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV+    , "PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR+    , "PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT+    , "SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT+    , "VALIDATION_CACHE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT+    , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT+    , "IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT+    , "IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT+    , "IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT+    , "PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT+    , "DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV+    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV+    , "PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV+    , "PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR+    , "PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR+    , "RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR+    , "RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR+    , "RAY_TRACING_PIPELINE_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR+    , "PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR+    , "ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR+    , "ACCELERATION_STRUCTURE_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR+    , "PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR+    , "COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR+    , "COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR+    , "COPY_ACCELERATION_STRUCTURE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR+    , "ACCELERATION_STRUCTURE_VERSION_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR+    , "ACCELERATION_STRUCTURE_GEOMETRY_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR+    , "ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR+    , "ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR+    , "ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR+    , "ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR+    , "ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR+    , "WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV+    , "PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT+    , "PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT+    , "PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT+    , "MULTISAMPLE_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT"+    )+  ,+    ( 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_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID+    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID+    , "EXTERNAL_FORMAT_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+    , "MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID+    , "IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID+    , "ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID+    , "ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID+    , "ANDROID_HARDWARE_BUFFER_USAGE_ANDROID"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT+    , "DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT+    , "DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT+    , "DEBUG_UTILS_LABEL_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT+    , "DEBUG_UTILS_OBJECT_TAG_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT+    , "DEBUG_UTILS_OBJECT_NAME_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK+    , "MACOS_SURFACE_CREATE_INFO_MVK"+    )+  ,+    ( STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK+    , "IOS_SURFACE_CREATE_INFO_MVK"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR+    , "DISPLAY_PLANE_CAPABILITIES_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR+    , "DISPLAY_PLANE_INFO_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR+    , "DISPLAY_MODE_PROPERTIES_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR+    , "DISPLAY_PLANE_PROPERTIES_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR+    , "DISPLAY_PROPERTIES_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR+    , "SURFACE_FORMAT_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR+    , "SURFACE_CAPABILITIES_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR+    , "PHYSICAL_DEVICE_SURFACE_INFO_2_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR+    , "PERFORMANCE_COUNTER_DESCRIPTION_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR+    , "PERFORMANCE_COUNTER_KHR"+    )+  ,+    ( STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR+    , "ACQUIRE_PROFILING_LOCK_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR+    , "PERFORMANCE_QUERY_SUBMIT_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR+    , "QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR+    , "PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR+    , "FENCE_GET_FD_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR+    , "IMPORT_FENCE_FD_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR+    , "FENCE_GET_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR+    , "EXPORT_FENCE_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR+    , "IMPORT_FENCE_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR+    , "SHARED_PRESENT_SURFACE_CAPABILITIES_KHR"+    )+  , (STRUCTURE_TYPE_HDR_METADATA_EXT, "HDR_METADATA_EXT")+  ,+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT+    , "PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT+    , "PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT+    , "PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT+    , "PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV+    , "PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX+    , "PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX"+    )+  ,+    ( STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE+    , "PRESENT_TIMES_INFO_GOOGLE"+    )+  ,+    ( STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT+    , "SWAPCHAIN_COUNTER_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT+    , "DISPLAY_EVENT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT+    , "DEVICE_EVENT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT+    , "DISPLAY_POWER_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT+    , "SURFACE_CAPABILITIES_2_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV+    , "PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_PRESENT_REGIONS_KHR+    , "PRESENT_REGIONS_KHR"+    )+  ,+    ( STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT+    , "CONDITIONAL_RENDERING_BEGIN_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT+    , "PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT+    , "COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR+    , "SEMAPHORE_GET_FD_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR+    , "IMPORT_SEMAPHORE_FD_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR+    , "SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR+    , "D3D12_FENCE_SUBMIT_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+    , "EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR+    , "IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR+    , "WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR+    , "MEMORY_GET_FD_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR+    , "MEMORY_FD_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR+    , "IMPORT_MEMORY_FD_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR+    , "MEMORY_GET_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR+    , "MEMORY_WIN32_HANDLE_PROPERTIES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR+    , "EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR+    , "IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT+    , "PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT+    , "PIPELINE_ROBUSTNESS_CREATE_INFO_EXT"+    )+  ,+    ( 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_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"+    )+  ,+    ( STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP+    , "STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP"+    )+  ,+    ( STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX+    , "MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX"+    )+  ,+    ( STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD+    , "ATTACHMENT_SAMPLE_COUNT_INFO_AMD"+    )+  ,+    ( STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT+    , "RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR+    , "RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_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_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT+    , "PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT+    , "PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT+    , "PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV+    , "DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV+    , "DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV+    , "DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT+    , "DEBUG_MARKER_MARKER_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT+    , "DEBUG_MARKER_OBJECT_TAG_INFO_EXT"+    )+  ,+    ( STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT+    , "DEBUG_MARKER_OBJECT_NAME_INFO_EXT"+    )+  ,+    ( 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_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"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO+    , "BUFFER_DEVICE_ADDRESS_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES+    , "PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO+    , "SEMAPHORE_SIGNAL_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO+    , "SEMAPHORE_WAIT_INFO"+    )+  ,+    ( STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO+    , "TIMELINE_SEMAPHORE_SUBMIT_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO+    , "SEMAPHORE_TYPE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES+    , "PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES+    , "PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES+    , "PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT+    , "ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT"+    )+  ,+    ( STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT+    , "ATTACHMENT_REFERENCE_STENCIL_LAYOUT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES+    , "PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES+    , "PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES+    , "PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO+    , "RENDER_PASS_ATTACHMENT_BEGIN_INFO"+    )+  ,+    ( STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO+    , "FRAMEBUFFER_ATTACHMENT_IMAGE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO+    , "FRAMEBUFFER_ATTACHMENTS_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES+    , "PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES+    , "PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO+    , "SAMPLER_REDUCTION_MODE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES+    , "PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO+    , "IMAGE_STENCIL_USAGE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES+    , "PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE+    , "SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES+    , "PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT+    , "DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO+    , "DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES+    , "PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES+    , "PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO+    , "DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES+    , "PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES+    , "PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES+    , "PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES+    , "PHYSICAL_DEVICE_DRIVER_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES+    , "PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES"+    )+  , (STRUCTURE_TYPE_SUBPASS_END_INFO, "SUBPASS_END_INFO")+  ,+    ( STRUCTURE_TYPE_SUBPASS_BEGIN_INFO+    , "SUBPASS_BEGIN_INFO"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2+    , "RENDER_PASS_CREATE_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2+    , "SUBPASS_DEPENDENCY_2"+    )+  ,+    ( STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2+    , "SUBPASS_DESCRIPTION_2"+    )+  ,+    ( STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2+    , "ATTACHMENT_REFERENCE_2"+    )+  ,+    ( STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2+    , "ATTACHMENT_DESCRIPTION_2"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO+    , "IMAGE_FORMAT_LIST_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES+    , "PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES+    , "PHYSICAL_DEVICE_VULKAN_1_2_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES+    , "PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES+    , "PHYSICAL_DEVICE_VULKAN_1_1_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES+    , "PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT+    , "DESCRIPTOR_SET_LAYOUT_SUPPORT"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES+    , "PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES+    , "EXTERNAL_SEMAPHORE_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO+    , "PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO+    , "EXPORT_SEMAPHORE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO+    , "EXPORT_FENCE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES+    , "EXTERNAL_FENCE_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO+    , "PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO+    , "EXPORT_MEMORY_ALLOCATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO+    , "EXTERNAL_MEMORY_IMAGE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO+    , "EXTERNAL_MEMORY_BUFFER_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES+    , "PHYSICAL_DEVICE_ID_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES+    , "EXTERNAL_BUFFER_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO+    , "PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO"+    )+  ,+    ( STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES+    , "EXTERNAL_IMAGE_FORMAT_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO+    , "PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO+    , "DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES+    , "SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES+    , "PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO+    , "IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO"+    )+  ,+    ( STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO+    , "BIND_IMAGE_PLANE_MEMORY_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO+    , "SAMPLER_YCBCR_CONVERSION_INFO"+    )+  ,+    ( STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO+    , "SAMPLER_YCBCR_CONVERSION_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2+    , "DEVICE_QUEUE_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES+    , "PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES+    , "PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO+    , "PROTECTED_SUBMIT_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES+    , "PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES+    , "PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES+    , "PHYSICAL_DEVICE_MULTIVIEW_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO+    , "RENDER_PASS_MULTIVIEW_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO+    , "PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO+    , "IMAGE_VIEW_USAGE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO+    , "RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES+    , "PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2+    , "PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2+    , "SPARSE_IMAGE_FORMAT_PROPERTIES_2"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2+    , "PHYSICAL_DEVICE_MEMORY_PROPERTIES_2"+    )+  ,+    ( STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2+    , "QUEUE_FAMILY_PROPERTIES_2"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2+    , "PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2+    , "IMAGE_FORMAT_PROPERTIES_2"+    )+  ,+    ( STRUCTURE_TYPE_FORMAT_PROPERTIES_2+    , "FORMAT_PROPERTIES_2"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2+    , "PHYSICAL_DEVICE_PROPERTIES_2"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2+    , "PHYSICAL_DEVICE_FEATURES_2"+    )+  ,+    ( STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2+    , "SPARSE_IMAGE_MEMORY_REQUIREMENTS_2"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2+    , "MEMORY_REQUIREMENTS_2"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2+    , "IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2+    , "IMAGE_MEMORY_REQUIREMENTS_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2+    , "BUFFER_MEMORY_REQUIREMENTS_INFO_2"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO+    , "DEVICE_GROUP_DEVICE_CREATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES+    , "PHYSICAL_DEVICE_GROUP_PROPERTIES"+    )+  ,+    ( STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO+    , "BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO"+    )+  ,+    ( STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO+    , "BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO+    , "DEVICE_GROUP_BIND_SPARSE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO+    , "DEVICE_GROUP_SUBMIT_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO+    , "DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO"+    )+  ,+    ( STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO+    , "DEVICE_GROUP_RENDER_PASS_BEGIN_INFO"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO+    , "MEMORY_ALLOCATE_FLAGS_INFO"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO+    , "MEMORY_DEDICATED_ALLOCATE_INFO"+    )+  ,+    ( STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS+    , "MEMORY_DEDICATED_REQUIREMENTS"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES+    , "PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES"+    )+  ,+    ( STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO+    , "BIND_IMAGE_MEMORY_INFO"+    )+  ,+    ( STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO+    , "BIND_BUFFER_MEMORY_INFO"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES+    , "PHYSICAL_DEVICE_SUBGROUP_PROPERTIES"+    )+  ]++instance Show StructureType where+  showsPrec =+    enumShowsPrec+      enumPrefixStructureType+      showTableStructureType+      conNameStructureType+      (\(StructureType x) -> x)+      (showsPrec 11)++instance Read StructureType where+  readPrec =+    enumReadPrec+      enumPrefixStructureType+      showTableStructureType+      conNameStructureType+      StructureType
src/Vulkan/Core10/Enums/SubpassContents.hs view
@@ -29,7 +29,8 @@ -- | 'SUBPASS_CONTENTS_INLINE' specifies that the contents of the subpass -- will be recorded inline in the primary command buffer, and secondary -- command buffers /must/ not be executed within the subpass.-pattern SUBPASS_CONTENTS_INLINE                    = SubpassContents 0+pattern SUBPASS_CONTENTS_INLINE = SubpassContents 0+ -- | 'SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS' specifies that the contents -- are recorded in secondary command buffers that will be called from the -- primary command buffer, and@@ -38,9 +39,13 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass' or -- 'Vulkan.Core10.CommandBufferBuilding.cmdEndRenderPass'. pattern SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = SubpassContents 1-{-# complete SUBPASS_CONTENTS_INLINE,-             SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS :: SubpassContents #-} +{-# COMPLETE+  SUBPASS_CONTENTS_INLINE+  , SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS ::+    SubpassContents+  #-}+ conNameSubpassContents :: String conNameSubpassContents = "SubpassContents" @@ -49,15 +54,26 @@  showTableSubpassContents :: [(SubpassContents, String)] showTableSubpassContents =-  [(SUBPASS_CONTENTS_INLINE, "INLINE"), (SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, "SECONDARY_COMMAND_BUFFERS")]+  [ (SUBPASS_CONTENTS_INLINE, "INLINE")+  ,+    ( SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS+    , "SECONDARY_COMMAND_BUFFERS"+    )+  ]  instance Show SubpassContents where-  showsPrec = enumShowsPrec enumPrefixSubpassContents-                            showTableSubpassContents-                            conNameSubpassContents-                            (\(SubpassContents x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSubpassContents+      showTableSubpassContents+      conNameSubpassContents+      (\(SubpassContents x) -> x)+      (showsPrec 11)  instance Read SubpassContents where-  readPrec = enumReadPrec enumPrefixSubpassContents showTableSubpassContents conNameSubpassContents SubpassContents-+  readPrec =+    enumReadPrec+      enumPrefixSubpassContents+      showTableSubpassContents+      conNameSubpassContents+      SubpassContents
src/Vulkan/Core10/Enums/SubpassDescriptionFlagBits.hs view
@@ -50,33 +50,39 @@ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-dithering Legacy Dithering> -- is enabled for this subpass. pattern SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = SubpassDescriptionFlagBits 0x00000080+ -- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT' -- specifies that this subpass supports pipelines created with -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT'.-pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT =-  SubpassDescriptionFlagBits 0x00000040+pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000040+ -- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT' -- specifies that this subpass supports pipelines created with -- 'Vulkan.Core10.Enums.PipelineDepthStencilStateCreateFlagBits.PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT'. pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000020+ -- | 'SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT' -- specifies that this subpass supports pipelines created with -- 'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT'. pattern SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = SubpassDescriptionFlagBits 0x00000010+ -- | 'SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM' specifies that the subpass -- performs shader resolve operations.-pattern SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM                             = SubpassDescriptionFlagBits 0x00000008+pattern SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = SubpassDescriptionFlagBits 0x00000008+ -- | 'SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM' specifies that the -- framebuffer region is the fragment region, that is, the minimum region -- dependencies are by pixel rather than by sample, such that any fragment -- shader invocation /can/ access any sample associated with that fragment -- shader invocation.-pattern SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM                            = SubpassDescriptionFlagBits 0x00000004+pattern SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = SubpassDescriptionFlagBits 0x00000004+ -- | 'SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX' specifies that -- shaders compiled for this subpass use per-view positions which only -- differ in value in the x component. Per-view viewport mask /can/ also be -- used.-pattern SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX                    = SubpassDescriptionFlagBits 0x00000002+pattern SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = SubpassDescriptionFlagBits 0x00000002+ -- | '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@@ -84,7 +90,7 @@ -- 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.-pattern SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX                         = SubpassDescriptionFlagBits 0x00000001+pattern SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = SubpassDescriptionFlagBits 0x00000001  conNameSubpassDescriptionFlagBits :: String conNameSubpassDescriptionFlagBits = "SubpassDescriptionFlagBits"@@ -94,32 +100,53 @@  showTableSubpassDescriptionFlagBits :: [(SubpassDescriptionFlagBits, String)] showTableSubpassDescriptionFlagBits =-  [ (SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT, "ENABLE_LEGACY_DITHERING_BIT_EXT")-  , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT+  [+    ( SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT+    , "ENABLE_LEGACY_DITHERING_BIT_EXT"+    )+  ,+    ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT     , "RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT"     )-  , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT+  ,+    ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT     , "RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT"     )-  , ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT+  ,+    ( SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT     , "RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT"     )-  , (SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM         , "SHADER_RESOLVE_BIT_QCOM")-  , (SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM        , "FRAGMENT_REGION_BIT_QCOM")-  , (SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, "PER_VIEW_POSITION_X_ONLY_BIT_NVX")-  , (SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX     , "PER_VIEW_ATTRIBUTES_BIT_NVX")+  ,+    ( SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM+    , "SHADER_RESOLVE_BIT_QCOM"+    )+  ,+    ( SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM+    , "FRAGMENT_REGION_BIT_QCOM"+    )+  ,+    ( SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX+    , "PER_VIEW_POSITION_X_ONLY_BIT_NVX"+    )+  ,+    ( SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX+    , "PER_VIEW_ATTRIBUTES_BIT_NVX"+    )   ]  instance Show SubpassDescriptionFlagBits where-  showsPrec = enumShowsPrec enumPrefixSubpassDescriptionFlagBits-                            showTableSubpassDescriptionFlagBits-                            conNameSubpassDescriptionFlagBits-                            (\(SubpassDescriptionFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSubpassDescriptionFlagBits+      showTableSubpassDescriptionFlagBits+      conNameSubpassDescriptionFlagBits+      (\(SubpassDescriptionFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SubpassDescriptionFlagBits where-  readPrec = enumReadPrec enumPrefixSubpassDescriptionFlagBits-                          showTableSubpassDescriptionFlagBits-                          conNameSubpassDescriptionFlagBits-                          SubpassDescriptionFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSubpassDescriptionFlagBits+      showTableSubpassDescriptionFlagBits+      conNameSubpassDescriptionFlagBits+      SubpassDescriptionFlagBits
src/Vulkan/Core10/Enums/SystemAllocationScope.hs view
@@ -92,21 +92,29 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND"-pattern SYSTEM_ALLOCATION_SCOPE_COMMAND  = SystemAllocationScope 0+pattern SYSTEM_ALLOCATION_SCOPE_COMMAND = SystemAllocationScope 0+ -- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT"-pattern SYSTEM_ALLOCATION_SCOPE_OBJECT   = SystemAllocationScope 1+pattern SYSTEM_ALLOCATION_SCOPE_OBJECT = SystemAllocationScope 1+ -- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_CACHE"-pattern SYSTEM_ALLOCATION_SCOPE_CACHE    = SystemAllocationScope 2+pattern SYSTEM_ALLOCATION_SCOPE_CACHE = SystemAllocationScope 2+ -- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE"-pattern SYSTEM_ALLOCATION_SCOPE_DEVICE   = SystemAllocationScope 3+pattern SYSTEM_ALLOCATION_SCOPE_DEVICE = SystemAllocationScope 3+ -- No documentation found for Nested "VkSystemAllocationScope" "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE" pattern SYSTEM_ALLOCATION_SCOPE_INSTANCE = SystemAllocationScope 4-{-# complete SYSTEM_ALLOCATION_SCOPE_COMMAND,-             SYSTEM_ALLOCATION_SCOPE_OBJECT,-             SYSTEM_ALLOCATION_SCOPE_CACHE,-             SYSTEM_ALLOCATION_SCOPE_DEVICE,-             SYSTEM_ALLOCATION_SCOPE_INSTANCE :: SystemAllocationScope #-} +{-# COMPLETE+  SYSTEM_ALLOCATION_SCOPE_COMMAND+  , SYSTEM_ALLOCATION_SCOPE_OBJECT+  , SYSTEM_ALLOCATION_SCOPE_CACHE+  , SYSTEM_ALLOCATION_SCOPE_DEVICE+  , SYSTEM_ALLOCATION_SCOPE_INSTANCE ::+    SystemAllocationScope+  #-}+ conNameSystemAllocationScope :: String conNameSystemAllocationScope = "SystemAllocationScope" @@ -115,23 +123,29 @@  showTableSystemAllocationScope :: [(SystemAllocationScope, String)] showTableSystemAllocationScope =-  [ (SYSTEM_ALLOCATION_SCOPE_COMMAND , "COMMAND")-  , (SYSTEM_ALLOCATION_SCOPE_OBJECT  , "OBJECT")-  , (SYSTEM_ALLOCATION_SCOPE_CACHE   , "CACHE")-  , (SYSTEM_ALLOCATION_SCOPE_DEVICE  , "DEVICE")-  , (SYSTEM_ALLOCATION_SCOPE_INSTANCE, "INSTANCE")+  [ (SYSTEM_ALLOCATION_SCOPE_COMMAND, "COMMAND")+  , (SYSTEM_ALLOCATION_SCOPE_OBJECT, "OBJECT")+  , (SYSTEM_ALLOCATION_SCOPE_CACHE, "CACHE")+  , (SYSTEM_ALLOCATION_SCOPE_DEVICE, "DEVICE")+  ,+    ( SYSTEM_ALLOCATION_SCOPE_INSTANCE+    , "INSTANCE"+    )   ]  instance Show SystemAllocationScope where-  showsPrec = enumShowsPrec enumPrefixSystemAllocationScope-                            showTableSystemAllocationScope-                            conNameSystemAllocationScope-                            (\(SystemAllocationScope x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSystemAllocationScope+      showTableSystemAllocationScope+      conNameSystemAllocationScope+      (\(SystemAllocationScope x) -> x)+      (showsPrec 11)  instance Read SystemAllocationScope where-  readPrec = enumReadPrec enumPrefixSystemAllocationScope-                          showTableSystemAllocationScope-                          conNameSystemAllocationScope-                          SystemAllocationScope-+  readPrec =+    enumReadPrec+      enumPrefixSystemAllocationScope+      showTableSystemAllocationScope+      conNameSystemAllocationScope+      SystemAllocationScope
src/Vulkan/Core10/Enums/VendorId.hs view
@@ -38,27 +38,37 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0> newtype VendorId = VendorId 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  -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_VIV"-pattern VENDOR_ID_VIV      = VendorId 65537+pattern VENDOR_ID_VIV = VendorId 65537+ -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_VSI"-pattern VENDOR_ID_VSI      = VendorId 65538+pattern VENDOR_ID_VSI = VendorId 65538+ -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_KAZAN"-pattern VENDOR_ID_KAZAN    = VendorId 65539+pattern VENDOR_ID_KAZAN = VendorId 65539+ -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_CODEPLAY" pattern VENDOR_ID_CODEPLAY = VendorId 65540+ -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_MESA"-pattern VENDOR_ID_MESA     = VendorId 65541+pattern VENDOR_ID_MESA = VendorId 65541+ -- No documentation found for Nested "VkVendorId" "VK_VENDOR_ID_POCL"-pattern VENDOR_ID_POCL     = VendorId 65542-{-# complete VENDOR_ID_VIV,-             VENDOR_ID_VSI,-             VENDOR_ID_KAZAN,-             VENDOR_ID_CODEPLAY,-             VENDOR_ID_MESA,-             VENDOR_ID_POCL :: VendorId #-}+pattern VENDOR_ID_POCL = VendorId 65542 +{-# COMPLETE+  VENDOR_ID_VIV+  , VENDOR_ID_VSI+  , VENDOR_ID_KAZAN+  , VENDOR_ID_CODEPLAY+  , VENDOR_ID_MESA+  , VENDOR_ID_POCL ::+    VendorId+  #-}+ conNameVendorId :: String conNameVendorId = "VendorId" @@ -67,17 +77,27 @@  showTableVendorId :: [(VendorId, String)] showTableVendorId =-  [ (VENDOR_ID_VIV     , "VIV")-  , (VENDOR_ID_VSI     , "VSI")-  , (VENDOR_ID_KAZAN   , "KAZAN")+  [ (VENDOR_ID_VIV, "VIV")+  , (VENDOR_ID_VSI, "VSI")+  , (VENDOR_ID_KAZAN, "KAZAN")   , (VENDOR_ID_CODEPLAY, "CODEPLAY")-  , (VENDOR_ID_MESA    , "MESA")-  , (VENDOR_ID_POCL    , "POCL")+  , (VENDOR_ID_MESA, "MESA")+  , (VENDOR_ID_POCL, "POCL")   ]  instance Show VendorId where-  showsPrec = enumShowsPrec enumPrefixVendorId showTableVendorId conNameVendorId (\(VendorId x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixVendorId+      showTableVendorId+      conNameVendorId+      (\(VendorId x) -> x)+      (showsPrec 11)  instance Read VendorId where-  readPrec = enumReadPrec enumPrefixVendorId showTableVendorId conNameVendorId VendorId-+  readPrec =+    enumReadPrec+      enumPrefixVendorId+      showTableVendorId+      conNameVendorId+      VendorId
src/Vulkan/Core10/Enums/VertexInputRate.hs view
@@ -27,13 +27,18 @@  -- | 'VERTEX_INPUT_RATE_VERTEX' specifies that vertex attribute addressing is -- a function of the vertex index.-pattern VERTEX_INPUT_RATE_VERTEX   = VertexInputRate 0+pattern VERTEX_INPUT_RATE_VERTEX = VertexInputRate 0+ -- | 'VERTEX_INPUT_RATE_INSTANCE' specifies that vertex attribute addressing -- is a function of the instance index. pattern VERTEX_INPUT_RATE_INSTANCE = VertexInputRate 1-{-# complete VERTEX_INPUT_RATE_VERTEX,-             VERTEX_INPUT_RATE_INSTANCE :: VertexInputRate #-} +{-# COMPLETE+  VERTEX_INPUT_RATE_VERTEX+  , VERTEX_INPUT_RATE_INSTANCE ::+    VertexInputRate+  #-}+ conNameVertexInputRate :: String conNameVertexInputRate = "VertexInputRate" @@ -41,15 +46,24 @@ enumPrefixVertexInputRate = "VERTEX_INPUT_RATE_"  showTableVertexInputRate :: [(VertexInputRate, String)]-showTableVertexInputRate = [(VERTEX_INPUT_RATE_VERTEX, "VERTEX"), (VERTEX_INPUT_RATE_INSTANCE, "INSTANCE")]+showTableVertexInputRate =+  [ (VERTEX_INPUT_RATE_VERTEX, "VERTEX")+  , (VERTEX_INPUT_RATE_INSTANCE, "INSTANCE")+  ]  instance Show VertexInputRate where-  showsPrec = enumShowsPrec enumPrefixVertexInputRate-                            showTableVertexInputRate-                            conNameVertexInputRate-                            (\(VertexInputRate x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixVertexInputRate+      showTableVertexInputRate+      conNameVertexInputRate+      (\(VertexInputRate x) -> x)+      (showsPrec 11)  instance Read VertexInputRate where-  readPrec = enumReadPrec enumPrefixVertexInputRate showTableVertexInputRate conNameVertexInputRate VertexInputRate-+  readPrec =+    enumReadPrec+      enumPrefixVertexInputRate+      showTableVertexInputRate+      conNameVertexInputRate+      VertexInputRate
src/Vulkan/Core10/Event.hs view
@@ -158,7 +158,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPEvent <- ContT $ bracket (callocBytes @Event 8) free-  r <- lift $ traceAroundEvent "vkCreateEvent" (vkCreateEvent' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPEvent))+  r <- lift $ traceAroundEvent "vkCreateEvent" (vkCreateEvent'+                                                  (deviceHandle (device))+                                                  (forgetExtensions pCreateInfo)+                                                  pAllocator+                                                  (pPEvent))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pEvent <- lift $ peek @Event pPEvent   pure $ (pEvent)@@ -244,7 +248,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyEvent" (vkDestroyEvent' (deviceHandle (device)) (event) pAllocator)+  lift $ traceAroundEvent "vkDestroyEvent" (vkDestroyEvent'+                                              (deviceHandle (device))+                                              (event)+                                              pAllocator)   pure $ ()  @@ -331,7 +338,9 @@   unless (vkGetEventStatusPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetEventStatus is null" Nothing Nothing   let vkGetEventStatus' = mkVkGetEventStatus vkGetEventStatusPtr-  r <- traceAroundEvent "vkGetEventStatus" (vkGetEventStatus' (deviceHandle (device)) (event))+  r <- traceAroundEvent "vkGetEventStatus" (vkGetEventStatus'+                                              (deviceHandle (device))+                                              (event))   when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -402,7 +411,9 @@   unless (vkSetEventPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetEvent is null" Nothing Nothing   let vkSetEvent' = mkVkSetEvent vkSetEventPtr-  r <- traceAroundEvent "vkSetEvent" (vkSetEvent' (deviceHandle (device)) (event))+  r <- traceAroundEvent "vkSetEvent" (vkSetEvent'+                                        (deviceHandle (device))+                                        (event))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -481,7 +492,9 @@   unless (vkResetEventPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetEvent is null" Nothing Nothing   let vkResetEvent' = mkVkResetEvent vkResetEventPtr-  r <- traceAroundEvent "vkResetEvent" (vkResetEvent' (deviceHandle (device)) (event))+  r <- traceAroundEvent "vkResetEvent" (vkResetEvent'+                                          (deviceHandle (device))+                                          (event))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -545,7 +558,8 @@     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss EventCreateInfo es, PokeChain es) => ToCStruct (EventCreateInfo es) where+instance ( Extendss EventCreateInfo es+         , PokeChain es ) => ToCStruct (EventCreateInfo es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p EventCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EVENT_CREATE_INFO)@@ -561,7 +575,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss EventCreateInfo es, PeekChain es) => FromCStruct (EventCreateInfo es) where+instance ( Extendss EventCreateInfo es+         , PeekChain es ) => FromCStruct (EventCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/Event.hs-boot view
@@ -12,8 +12,10 @@ type role EventCreateInfo nominal data EventCreateInfo (es :: [Type]) -instance (Extendss EventCreateInfo es, PokeChain es) => ToCStruct (EventCreateInfo es)+instance ( Extendss EventCreateInfo es+         , PokeChain es ) => ToCStruct (EventCreateInfo es) instance Show (Chain es) => Show (EventCreateInfo es) -instance (Extendss EventCreateInfo es, PeekChain es) => FromCStruct (EventCreateInfo es)+instance ( Extendss EventCreateInfo es+         , PeekChain es ) => FromCStruct (EventCreateInfo es) 
src/Vulkan/Core10/ExtensionDiscovery.hs view
@@ -151,12 +151,18 @@     Nothing -> pure nullPtr     Just j -> ContT $ useAsCString (j)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumerateInstanceExtensionProperties" (vkEnumerateInstanceExtensionProperties' pLayerName (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumerateInstanceExtensionProperties" (vkEnumerateInstanceExtensionProperties'+                                                                           pLayerName+                                                                           (pPPropertyCount)+                                                                           (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @ExtensionProperties ((fromIntegral (pPropertyCount)) * 260)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 260) :: Ptr ExtensionProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkEnumerateInstanceExtensionProperties" (vkEnumerateInstanceExtensionProperties' pLayerName (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkEnumerateInstanceExtensionProperties" (vkEnumerateInstanceExtensionProperties'+                                                                            pLayerName+                                                                            (pPPropertyCount)+                                                                            ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @ExtensionProperties (((pPProperties) `advancePtrBytes` (260 * (i)) :: Ptr ExtensionProperties)))@@ -242,7 +248,8 @@                                       -- string naming the layer to retrieve extensions from.                                       ("layerName" ::: Maybe ByteString)                                    -> io (Result, ("properties" ::: Vector ExtensionProperties))-enumerateDeviceExtensionProperties physicalDevice layerName = liftIO . evalContT $ do+enumerateDeviceExtensionProperties physicalDevice+                                     layerName = liftIO . evalContT $ do   let vkEnumerateDeviceExtensionPropertiesPtr = pVkEnumerateDeviceExtensionProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkEnumerateDeviceExtensionPropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumerateDeviceExtensionProperties is null" Nothing Nothing@@ -252,12 +259,20 @@     Nothing -> pure nullPtr     Just j -> ContT $ useAsCString (j)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumerateDeviceExtensionProperties" (vkEnumerateDeviceExtensionProperties' physicalDevice' pLayerName (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumerateDeviceExtensionProperties" (vkEnumerateDeviceExtensionProperties'+                                                                         physicalDevice'+                                                                         pLayerName+                                                                         (pPPropertyCount)+                                                                         (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @ExtensionProperties ((fromIntegral (pPropertyCount)) * 260)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 260) :: Ptr ExtensionProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkEnumerateDeviceExtensionProperties" (vkEnumerateDeviceExtensionProperties' physicalDevice' pLayerName (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkEnumerateDeviceExtensionProperties" (vkEnumerateDeviceExtensionProperties'+                                                                          physicalDevice'+                                                                          pLayerName+                                                                          (pPPropertyCount)+                                                                          ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @ExtensionProperties (((pPProperties) `advancePtrBytes` (260 * (i)) :: Ptr ExtensionProperties)))
src/Vulkan/Core10/Fence.hs view
@@ -153,7 +153,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFence <- ContT $ bracket (callocBytes @Fence 8) free-  r <- lift $ traceAroundEvent "vkCreateFence" (vkCreateFence' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPFence))+  r <- lift $ traceAroundEvent "vkCreateFence" (vkCreateFence'+                                                  (deviceHandle (device))+                                                  (forgetExtensions pCreateInfo)+                                                  pAllocator+                                                  (pPFence))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFence <- lift $ peek @Fence pPFence   pure $ (pFence)@@ -240,7 +244,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyFence" (vkDestroyFence' (deviceHandle (device)) (fence) pAllocator)+  lift $ traceAroundEvent "vkDestroyFence" (vkDestroyFence'+                                              (deviceHandle (device))+                                              (fence)+                                              pAllocator)   pure $ ()  @@ -323,7 +330,10 @@   let vkResetFences' = mkVkResetFences vkResetFencesPtr   pPFences <- ContT $ allocaBytes @Fence ((Data.Vector.length (fences)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPFences `plusPtr` (8 * (i)) :: Ptr Fence) (e)) (fences)-  r <- lift $ traceAroundEvent "vkResetFences" (vkResetFences' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32)) (pPFences))+  r <- lift $ traceAroundEvent "vkResetFences" (vkResetFences'+                                                  (deviceHandle (device))+                                                  ((fromIntegral (Data.Vector.length $ (fences)) :: Word32))+                                                  (pPFences))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -407,7 +417,9 @@   unless (vkGetFenceStatusPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetFenceStatus is null" Nothing Nothing   let vkGetFenceStatus' = mkVkGetFenceStatus vkGetFenceStatusPtr-  r <- traceAroundEvent "vkGetFenceStatus" (vkGetFenceStatus' (deviceHandle (device)) (fence))+  r <- traceAroundEvent "vkGetFenceStatus" (vkGetFenceStatus'+                                              (deviceHandle (device))+                                              (fence))   when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -443,14 +455,22 @@                              -- nanosecond, and /may/ be longer than the requested period.                              ("timeout" ::: Word64)                           -> io (Result)-waitForFencesSafeOrUnsafe mkVkWaitForFences device fences waitAll timeout = liftIO . evalContT $ do+waitForFencesSafeOrUnsafe mkVkWaitForFences device+                                              fences+                                              waitAll+                                              timeout = liftIO . evalContT $ do   let vkWaitForFencesPtr = pVkWaitForFences (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkWaitForFencesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWaitForFences is null" Nothing Nothing   let vkWaitForFences' = mkVkWaitForFences vkWaitForFencesPtr   pPFences <- ContT $ allocaBytes @Fence ((Data.Vector.length (fences)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPFences `plusPtr` (8 * (i)) :: Ptr Fence) (e)) (fences)-  r <- lift $ traceAroundEvent "vkWaitForFences" (vkWaitForFences' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (fences)) :: Word32)) (pPFences) (boolToBool32 (waitAll)) (timeout))+  r <- lift $ traceAroundEvent "vkWaitForFences" (vkWaitForFences'+                                                    (deviceHandle (device))+                                                    ((fromIntegral (Data.Vector.length $ (fences)) :: Word32))+                                                    (pPFences)+                                                    (boolToBool32 (waitAll))+                                                    (timeout))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -618,7 +638,8 @@     | Just Refl <- eqT @e @ExportFenceCreateInfo = Just f     | otherwise = Nothing -instance (Extendss FenceCreateInfo es, PokeChain es) => ToCStruct (FenceCreateInfo es) where+instance ( Extendss FenceCreateInfo es+         , PokeChain es ) => ToCStruct (FenceCreateInfo es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p FenceCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FENCE_CREATE_INFO)@@ -634,7 +655,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss FenceCreateInfo es, PeekChain es) => FromCStruct (FenceCreateInfo es) where+instance ( Extendss FenceCreateInfo es+         , PeekChain es ) => FromCStruct (FenceCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/Fence.hs-boot view
@@ -12,8 +12,10 @@ type role FenceCreateInfo nominal data FenceCreateInfo (es :: [Type]) -instance (Extendss FenceCreateInfo es, PokeChain es) => ToCStruct (FenceCreateInfo es)+instance ( Extendss FenceCreateInfo es+         , PokeChain es ) => ToCStruct (FenceCreateInfo es) instance Show (Chain es) => Show (FenceCreateInfo es) -instance (Extendss FenceCreateInfo es, PeekChain es) => FromCStruct (FenceCreateInfo es)+instance ( Extendss FenceCreateInfo es+         , PeekChain es ) => FromCStruct (FenceCreateInfo es) 
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -332,6 +332,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.DeviceGroupRenderPassBeginInfo', -- 'Vulkan.Extensions.VK_KHR_display_swapchain.DisplayPresentInfoKHR', -- 'Extent2D', 'Offset2D',+-- 'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowExecuteInfoNV', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.PipelineDiscardRectangleStateCreateInfoEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV', -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo',@@ -405,6 +406,7 @@ -- 'FALSE', 'TRUE', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_0 VK_VERSION_1_0>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryInstancesDataKHR',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.CommandBufferInheritanceConditionalRenderingInfoEXT', -- 'Vulkan.Core10.CommandBuffer.CommandBufferInheritanceInfo', -- 'Vulkan.Extensions.VK_NV_inherited_viewport_scissor.CommandBufferInheritanceViewportScissorInfoNV',@@ -417,6 +419,7 @@ -- 'Vulkan.Extensions.VK_EXT_filter_cubic.FilterCubicImageViewImageFormatPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsLayoutTokenNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedRequirements',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT', -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', -- 'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', -- 'Vulkan.Extensions.VK_INTEL_performance_query.PerformanceOverrideInfoINTEL',@@ -426,6 +429,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_8bit_storage.PhysicalDevice8BitStorageFeatures', -- 'Vulkan.Extensions.VK_EXT_astc_decode_mode.PhysicalDeviceASTCDecodeFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructureFeaturesKHR',+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.PhysicalDeviceAddressBindingReportFeaturesEXT', -- 'Vulkan.Extensions.VK_SEC_amigo_profiling.PhysicalDeviceAmigoProfilingFeaturesSEC', -- 'Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout.PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedFeaturesEXT',@@ -457,8 +461,11 @@ -- '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_state3.PhysicalDeviceExtendedDynamicState3FeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV',+-- 'Vulkan.Extensions.VK_EXT_device_fault.PhysicalDeviceFaultFeaturesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',@@ -504,14 +511,19 @@ -- 'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', -- 'Vulkan.Extensions.VK_EXT_mutable_descriptor_type.PhysicalDeviceMutableDescriptorTypeFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_non_seamless_cube_map.PhysicalDeviceNonSeamlessCubeMapFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowFeaturesNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_pageable_device_local_memory.PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', -- 'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeatures', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_pipeline_properties.PhysicalDevicePipelinePropertiesFeaturesEXT',+-- 'Vulkan.Extensions.VK_EXT_pipeline_protected_access.PhysicalDevicePipelineProtectedAccessFeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+-- 'Vulkan.Extensions.VK_NV_present_barrier.PhysicalDevicePresentBarrierFeaturesNV', -- 'Vulkan.Extensions.VK_KHR_present_id.PhysicalDevicePresentIdFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_present_wait.PhysicalDevicePresentWaitFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_primitive_topology_list_restart.PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT',@@ -608,9 +620,11 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.SubpassResolvePerformanceQueryEXT', -- 'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',+-- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV', -- 'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD',+-- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV', -- 'Vulkan.Extensions.VK_AMD_texture_gather_bias_lod.TextureLODGatherFormatPropertiesAMD', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264CapabilitiesEXT VkVideoEncodeH264CapabilitiesEXT>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH264EmitPictureParametersInfoEXT VkVideoEncodeH264EmitPictureParametersInfoEXT>,@@ -619,21 +633,35 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeH265RateControlLayerInfoEXT VkVideoEncodeH265RateControlLayerInfoEXT>, -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.cmdExecuteGeneratedCommandsNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV', -- '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.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT', -- '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.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT', -- '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.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilTestEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV', -- 'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR', -- 'Vulkan.Extensions.VK_AMD_display_native_hdr.setLocalDimmingAMD', -- 'Vulkan.Core10.Fence.waitForFences'@@ -642,11 +670,16 @@  -- No documentation found for Nested "VkBool32" "VK_FALSE" pattern FALSE = Bool32 0+ -- No documentation found for Nested "VkBool32" "VK_TRUE"-pattern TRUE  = Bool32 1-{-# complete FALSE,-             TRUE :: Bool32 #-}+pattern TRUE = Bool32 1 +{-# COMPLETE+  FALSE+  , TRUE ::+    Bool32+  #-}+ conNameBool32 :: String conNameBool32 = "Bool32" @@ -657,18 +690,29 @@ showTableBool32 = [(FALSE, "FALSE"), (TRUE, "TRUE")]  instance Show Bool32 where-  showsPrec = enumShowsPrec enumPrefixBool32 showTableBool32 conNameBool32 (\(Bool32 x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixBool32+      showTableBool32+      conNameBool32+      (\(Bool32 x) -> x)+      (showsPrec 11)  instance Read Bool32 where-  readPrec = enumReadPrec enumPrefixBool32 showTableBool32 conNameBool32 Bool32-+  readPrec =+    enumReadPrec+      enumPrefixBool32+      showTableBool32+      conNameBool32+      Bool32  -- | VkSampleMask - Mask of sample coverage information -- -- = 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.Pipeline.PipelineMultisampleStateCreateInfo'+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT' type SampleMask = Word32  @@ -777,6 +821,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryAabbsDataKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID', -- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',@@ -792,6 +837,9 @@ -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',@@ -803,6 +851,9 @@ -- 'Vulkan.Core10.Memory.MemoryAllocateInfo', -- 'Vulkan.Core10.DeviceInitialization.MemoryHeap', -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',@@ -867,9 +918,12 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindVertexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -8,10 +8,12 @@                                        , Bool32                                        , DeviceAddress                                        , DeviceSize+                                       , SampleMask                                        ) where  import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct)+import Data.Word (Word32) import Data.Word (Word64) import Data.Kind (Type) @@ -67,9 +69,12 @@ -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindIndexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.BindVertexBufferIndirectCommandNV', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR', -- 'Vulkan.Extensions.VK_NVX_image_view_handle.ImageViewAddressPropertiesNVX',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.StridedDeviceAddressRegionKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1.TraceRaysIndirectCommand2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR',@@ -88,6 +93,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.AccelerationStructureCreateInfoNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryAabbsDataKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AndroidHardwareBufferPropertiesANDROID', -- 'Vulkan.Extensions.VK_NV_ray_tracing.BindAccelerationStructureMemoryInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo',@@ -103,6 +109,9 @@ -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo',+-- 'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultAddressInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_device_fault.DeviceFaultCountsEXT', -- 'Vulkan.Extensions.VK_EXT_device_memory_report.DeviceMemoryReportCallbackDataEXT', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV', -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryAABBNV',@@ -114,6 +123,9 @@ -- 'Vulkan.Core10.Memory.MemoryAllocateInfo', -- 'Vulkan.Core10.DeviceInitialization.MemoryHeap', -- 'Vulkan.Core10.MemoryManagement.MemoryRequirements',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildSizesInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance3.PhysicalDeviceMaintenance3Properties',@@ -167,4 +179,14 @@ -- 'Vulkan.Core10.Query.getQueryPoolResults', -- 'Vulkan.Core10.Memory.mapMemory' type DeviceSize = Word64+++-- | VkSampleMask - Mask of sample coverage information+--+-- = 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.Pipeline.PipelineMultisampleStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+type SampleMask = Word32 
src/Vulkan/Core10/Handles.hs view
@@ -114,7 +114,8 @@ instance Zero Instance where   zero = Instance zero zero instance HasObjectType Instance where-  objectTypeAndHandle (Instance (ptrToWordPtr -> WordPtr h) _) = (OBJECT_TYPE_INSTANCE, fromIntegral h)+  objectTypeAndHandle (Instance (ptrToWordPtr -> WordPtr h) _) = ( OBJECT_TYPE_INSTANCE+                                                                 , fromIntegral h )   -- | An opaque type for representing pointers to VkPhysicalDevice handles@@ -169,6 +170,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceMemoryProperties2', -- 'Vulkan.Extensions.VK_KHR_get_physical_device_properties2.getPhysicalDeviceMemoryProperties2KHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.getPhysicalDeviceOpticalFlowImageFormatsNV', -- 'Vulkan.Extensions.VK_KHR_swapchain.getPhysicalDevicePresentRectanglesKHR', -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceProperties', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',@@ -210,7 +212,8 @@ instance Zero PhysicalDevice where   zero = PhysicalDevice zero zero instance HasObjectType PhysicalDevice where-  objectTypeAndHandle (PhysicalDevice (ptrToWordPtr -> WordPtr h) _) = (OBJECT_TYPE_PHYSICAL_DEVICE, fromIntegral h)+  objectTypeAndHandle (PhysicalDevice (ptrToWordPtr -> WordPtr h) _) = ( OBJECT_TYPE_PHYSICAL_DEVICE+                                                                       , fromIntegral h )   -- | An opaque type for representing pointers to VkDevice handles@@ -235,12 +238,17 @@ -- 'Vulkan.Core10.MemoryManagement.bindImageMemory', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.bindImageMemory2', -- 'Vulkan.Extensions.VK_KHR_bind_memory2.bindImageMemory2KHR',+-- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.buildAccelerationStructuresKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.buildMicromapsEXT', -- 'Vulkan.Extensions.VK_NV_ray_tracing.compileDeferredNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureToMemoryKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyMemoryToAccelerationStructureKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMemoryToMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapToMemoryEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.createAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.createAccelerationStructureNV', -- 'Vulkan.Core10.Buffer.createBuffer',@@ -262,6 +270,8 @@ -- 'Vulkan.Core10.Image.createImage', -- 'Vulkan.Core10.ImageView.createImageView', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.createIndirectCommandsLayoutNV',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.createMicromapEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.createOpticalFlowSessionNV', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineLayout.createPipelineLayout', -- 'Vulkan.Core13.Promoted_From_VK_EXT_private_data.createPrivateDataSlot',@@ -304,6 +314,8 @@ -- 'Vulkan.Core10.Image.destroyImage', -- 'Vulkan.Core10.ImageView.destroyImageView', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.destroyIndirectCommandsLayoutNV',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.destroyMicromapEXT',+-- 'Vulkan.Extensions.VK_NV_optical_flow.destroyOpticalFlowSessionNV', -- 'Vulkan.Core10.Pipeline.destroyPipeline', -- 'Vulkan.Core10.PipelineCache.destroyPipelineCache', -- 'Vulkan.Core10.PipelineLayout.destroyPipelineLayout',@@ -351,6 +363,7 @@ -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.getDeviceAccelerationStructureCompatibilityKHR', -- 'Vulkan.Core13.Promoted_From_VK_KHR_maintenance4.getDeviceBufferMemoryRequirements', -- 'Vulkan.Extensions.VK_KHR_maintenance4.getDeviceBufferMemoryRequirementsKHR',+-- 'Vulkan.Extensions.VK_EXT_device_fault.getDeviceFaultInfoEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.getDeviceGroupPeerMemoryFeatures', -- 'Vulkan.Extensions.VK_KHR_device_group.getDeviceGroupPeerMemoryFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_swapchain.getDeviceGroupPresentCapabilitiesKHR',@@ -363,6 +376,7 @@ -- 'Vulkan.Core10.Memory.getDeviceMemoryCommitment', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress', -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddressKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getDeviceMicromapCompatibilityEXT', -- 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr', -- 'Vulkan.Core10.Queue.getDeviceQueue', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2',@@ -395,6 +409,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandleFUCHSIA', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.getMemoryZirconHandlePropertiesFUCHSIA',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getMicromapBuildSizesEXT', -- 'Vulkan.Extensions.VK_GOOGLE_display_timing.getPastPresentationTimingGOOGLE', -- 'Vulkan.Extensions.VK_INTEL_performance_query.getPerformanceParameterINTEL', -- 'Vulkan.Core10.PipelineCache.getPipelineCacheData',@@ -468,7 +483,8 @@ -- 'Vulkan.Extensions.VK_KHR_present_wait.waitForPresentKHR', -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.waitSemaphores', -- 'Vulkan.Extensions.VK_KHR_timeline_semaphore.waitSemaphoresKHR',--- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR'+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.writeAccelerationStructuresPropertiesKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.writeMicromapsPropertiesEXT' data Device = Device   { deviceHandle :: Ptr Device_T   , deviceCmds :: DeviceCmds@@ -478,7 +494,8 @@ instance Zero Device where   zero = Device zero zero instance HasObjectType Device where-  objectTypeAndHandle (Device (ptrToWordPtr -> WordPtr h) _) = (OBJECT_TYPE_DEVICE, fromIntegral h)+  objectTypeAndHandle (Device (ptrToWordPtr -> WordPtr h) _) = ( OBJECT_TYPE_DEVICE+                                                               , fromIntegral h )   -- | An opaque type for representing pointers to VkQueue handles@@ -512,7 +529,8 @@ instance Zero Queue where   zero = Queue zero zero instance HasObjectType Queue where-  objectTypeAndHandle (Queue (ptrToWordPtr -> WordPtr h) _) = (OBJECT_TYPE_QUEUE, fromIntegral h)+  objectTypeAndHandle (Queue (ptrToWordPtr -> WordPtr h) _) = ( OBJECT_TYPE_QUEUE+                                                              , fromIntegral h )   -- | An opaque type for representing pointers to VkCommandBuffer handles@@ -553,6 +571,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresIndirectKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdBuildAccelerationStructuresKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdBuildMicromapsEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearDepthStencilImage',@@ -573,6 +592,9 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdCopyImageToBuffer2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdCopyMemoryToAccelerationStructureKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMemoryToMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdCopyMicromapToMemoryEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults', -- 'Vulkan.Extensions.VK_NVX_binary_import.cmdCuLaunchKernelNVX', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerBeginEXT',@@ -621,6 +643,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdNextSubpass', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.cmdNextSubpass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.cmdNextSubpass2KHR',+-- 'Vulkan.Extensions.VK_NV_optical_flow.cmdOpticalFlowExecuteNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdPipelineBarrier', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdPipelineBarrier2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdPipelineBarrier2KHR',@@ -635,10 +658,23 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage', -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdResolveImage2', -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToCoverageEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetAlphaToOneEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetCullMode', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetCullModeEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBias',@@ -647,6 +683,9 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetDepthBounds', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnable', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetDepthBoundsTestEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClampEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetDepthClipNegativeOneToOneEXT', -- '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',@@ -660,28 +699,40 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdSetEvent2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdSetEvent2KHR', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetExtraPrimitiveOverestimationSizeEXT', -- '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_extended_dynamic_state3.cmdSetLineRasterizationModeEXT', -- 'Vulkan.Extensions.VK_EXT_line_rasterization.cmdSetLineStippleEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineStippleEnableEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetLineWidth', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetLogicOpEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLogicOpEnableEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.cmdSetPatchControlPointsEXT', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceMarkerINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceOverrideINTEL', -- 'Vulkan.Extensions.VK_INTEL_performance_query.cmdSetPerformanceStreamMarkerINTEL',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetPolygonModeEXT', -- '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.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT', -- '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_extended_dynamic_state3.cmdSetRepresentativeFragmentTestEnableNV', -- 'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT', -- '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_EXT_extended_dynamic_state3.cmdSetShadingRateImageEnableNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetStencilCompareMask', -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetStencilOp', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdSetStencilOpEXT',@@ -689,9 +740,12 @@ -- '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_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetViewport', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetViewportShadingRatePaletteNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportWScalingEnableNV', -- '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',@@ -708,6 +762,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteBufferMarker2AMD', -- 'Vulkan.Extensions.VK_AMD_buffer_marker.cmdWriteBufferMarkerAMD',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR',@@ -723,7 +778,8 @@ instance Zero CommandBuffer where   zero = CommandBuffer zero zero instance HasObjectType CommandBuffer where-  objectTypeAndHandle (CommandBuffer (ptrToWordPtr -> WordPtr h) _) = (OBJECT_TYPE_COMMAND_BUFFER, fromIntegral h)+  objectTypeAndHandle (CommandBuffer (ptrToWordPtr -> WordPtr h) _) = ( OBJECT_TYPE_COMMAND_BUFFER+                                                                      , fromIntegral h )   -- | VkDeviceMemory - Opaque handle to a device memory object@@ -809,6 +865,7 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.GeometryTrianglesNV', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.IndirectCommandsStreamNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapCreateInfoEXT', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseBufferMemoryBindInfo', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoDecodeInfoKHR VkVideoDecodeInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoEncodeInfoKHR VkVideoEncodeInfoKHR>,@@ -934,6 +991,7 @@ -- '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#VkVideoPictureResourceInfoKHR VkVideoPictureResourceInfoKHR>,+-- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV', -- 'Vulkan.Extensions.VK_HUAWEI_invocation_mask.cmdBindInvocationMaskHUAWEI', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.ImageView.createImageView',@@ -1085,7 +1143,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType DescriptorSetLayout where-  objectTypeAndHandle (DescriptorSetLayout h) = (OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, h)+  objectTypeAndHandle (DescriptorSetLayout h) = ( OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT+                                                , h ) instance Show DescriptorSetLayout where   showsPrec p (DescriptorSetLayout x) = showParen (p >= 11) (showString "DescriptorSetLayout 0x" . showHex x) @@ -1211,6 +1270,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.cmdWriteAccelerationStructuresPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdWriteAccelerationStructuresPropertiesNV',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp', -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2', -- 'Vulkan.Extensions.VK_KHR_synchronization2.cmdWriteTimestamp2KHR',
src/Vulkan/Core10/Image.hs view
@@ -90,6 +90,7 @@ import Vulkan.Core10.Enums.ImageUsageFlagBits (ImageUsageFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalIOSurfaceInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_objects (ImportMetalTextureInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.CStruct.Extends (PokeChain)@@ -188,7 +189,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPImage <- ContT $ bracket (callocBytes @Image 8) free-  r <- lift $ traceAroundEvent "vkCreateImage" (vkCreateImage' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPImage))+  r <- lift $ traceAroundEvent "vkCreateImage" (vkCreateImage'+                                                  (deviceHandle (device))+                                                  (forgetExtensions pCreateInfo)+                                                  pAllocator+                                                  (pPImage))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pImage <- lift $ peek @Image pPImage   pure $ (pImage)@@ -279,7 +284,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyImage" (vkDestroyImage' (deviceHandle (device)) (image) pAllocator)+  lift $ traceAroundEvent "vkDestroyImage" (vkDestroyImage'+                                              (deviceHandle (device))+                                              (image)+                                              pAllocator)   pure $ ()  @@ -440,7 +448,11 @@   let vkGetImageSubresourceLayout' = mkVkGetImageSubresourceLayout vkGetImageSubresourceLayoutPtr   pSubresource <- ContT $ withCStruct (subresource)   pPLayout <- ContT (withZeroCStruct @SubresourceLayout)-  lift $ traceAroundEvent "vkGetImageSubresourceLayout" (vkGetImageSubresourceLayout' (deviceHandle (device)) (image) pSubresource (pPLayout))+  lift $ traceAroundEvent "vkGetImageSubresourceLayout" (vkGetImageSubresourceLayout'+                                                           (deviceHandle (device))+                                                           (image)+                                                           pSubresource+                                                           (pPLayout))   pLayout <- lift $ peekCStruct @SubresourceLayout pPLayout   pure $ (pLayout) @@ -1551,6 +1563,7 @@ --     'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR', --     'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalIOSurfaceInfoEXT', --     'Vulkan.Extensions.VK_EXT_metal_objects.ImportMetalTextureInfoEXT',+--     'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV', --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoProfileListInfoKHR VkVideoProfileListInfoKHR> --@@ -1667,6 +1680,7 @@   getNext ImageCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends ImageCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @OpticalFlowImageFormatInfoNV = Just f     | Just Refl <- eqT @e @ImportMetalIOSurfaceInfoEXT = Just f     | Just Refl <- eqT @e @ImportMetalTextureInfoEXT = Just f     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f@@ -1683,7 +1697,8 @@     | Just Refl <- eqT @e @DedicatedAllocationImageCreateInfoNV = Just f     | otherwise = Nothing -instance (Extendss ImageCreateInfo es, PokeChain es) => ToCStruct (ImageCreateInfo es) where+instance ( Extendss ImageCreateInfo es+         , PokeChain es ) => ToCStruct (ImageCreateInfo es) where   withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_CREATE_INFO)@@ -1723,7 +1738,8 @@     lift $ poke ((p `plusPtr` 80 :: Ptr ImageLayout)) (zero)     lift $ f -instance (Extendss ImageCreateInfo es, PeekChain es) => FromCStruct (ImageCreateInfo es) where+instance ( Extendss ImageCreateInfo es+         , PeekChain es ) => FromCStruct (ImageCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1742,7 +1758,19 @@     pQueueFamilyIndices' <- generateM (fromIntegral queueFamilyIndexCount) (\i -> peek @Word32 ((pQueueFamilyIndices `advancePtrBytes` (4 * (i)) :: Ptr Word32)))     initialLayout <- peek @ImageLayout ((p `plusPtr` 80 :: Ptr ImageLayout))     pure $ ImageCreateInfo-             next flags imageType format extent mipLevels arrayLayers samples tiling usage sharingMode pQueueFamilyIndices' initialLayout+             next+             flags+             imageType+             format+             extent+             mipLevels+             arrayLayers+             samples+             tiling+             usage+             sharingMode+             pQueueFamilyIndices'+             initialLayout  instance es ~ '[] => Zero (ImageCreateInfo es) where   zero = ImageCreateInfo
src/Vulkan/Core10/Image.hs-boot view
@@ -14,10 +14,12 @@ type role ImageCreateInfo nominal data ImageCreateInfo (es :: [Type]) -instance (Extendss ImageCreateInfo es, PokeChain es) => ToCStruct (ImageCreateInfo es)+instance ( Extendss ImageCreateInfo es+         , PokeChain es ) => ToCStruct (ImageCreateInfo es) instance Show (Chain es) => Show (ImageCreateInfo es) -instance (Extendss ImageCreateInfo es, PeekChain es) => FromCStruct (ImageCreateInfo es)+instance ( Extendss ImageCreateInfo es+         , PeekChain es ) => FromCStruct (ImageCreateInfo es)   data SubresourceLayout
src/Vulkan/Core10/ImageView.hs view
@@ -156,7 +156,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPView <- ContT $ bracket (callocBytes @ImageView 8) free-  r <- lift $ traceAroundEvent "vkCreateImageView" (vkCreateImageView' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPView))+  r <- lift $ traceAroundEvent "vkCreateImageView" (vkCreateImageView'+                                                      (deviceHandle (device))+                                                      (forgetExtensions pCreateInfo)+                                                      pAllocator+                                                      (pPView))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pView <- lift $ peek @ImageView pPView   pure $ (pView)@@ -243,7 +247,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyImageView" (vkDestroyImageView' (deviceHandle (device)) (imageView) pAllocator)+  lift $ traceAroundEvent "vkDestroyImageView" (vkDestroyImageView'+                                                  (deviceHandle (device))+                                                  (imageView)+                                                  pAllocator)   pure $ ()  @@ -1404,7 +1411,8 @@     | Just Refl <- eqT @e @ImageViewUsageCreateInfo = Just f     | otherwise = Nothing -instance (Extendss ImageViewCreateInfo es, PokeChain es) => ToCStruct (ImageViewCreateInfo es) where+instance ( Extendss ImageViewCreateInfo es+         , PokeChain es ) => ToCStruct (ImageViewCreateInfo es) where   withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageViewCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)@@ -1430,7 +1438,8 @@     lift $ poke ((p `plusPtr` 56 :: Ptr ImageSubresourceRange)) (zero)     lift $ f -instance (Extendss ImageViewCreateInfo es, PeekChain es) => FromCStruct (ImageViewCreateInfo es) where+instance ( Extendss ImageViewCreateInfo es+         , PeekChain es ) => FromCStruct (ImageViewCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/ImageView.hs-boot view
@@ -31,8 +31,10 @@ type role ImageViewCreateInfo nominal data ImageViewCreateInfo (es :: [Type]) -instance (Extendss ImageViewCreateInfo es, PokeChain es) => ToCStruct (ImageViewCreateInfo es)+instance ( Extendss ImageViewCreateInfo es+         , PokeChain es ) => ToCStruct (ImageViewCreateInfo es) instance Show (Chain es) => Show (ImageViewCreateInfo es) -instance (Extendss ImageViewCreateInfo es, PeekChain es) => FromCStruct (ImageViewCreateInfo es)+instance ( Extendss ImageViewCreateInfo es+         , PeekChain es ) => FromCStruct (ImageViewCreateInfo es) 
src/Vulkan/Core10/LayerDiscovery.hs view
@@ -131,12 +131,16 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumerateInstanceLayerProperties is null" Nothing Nothing   let vkEnumerateInstanceLayerProperties' = mkVkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerPropertiesPtr   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumerateInstanceLayerProperties" (vkEnumerateInstanceLayerProperties' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumerateInstanceLayerProperties" (vkEnumerateInstanceLayerProperties'+                                                                       (pPPropertyCount)+                                                                       (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @LayerProperties ((fromIntegral (pPropertyCount)) * 520)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 520) :: Ptr LayerProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkEnumerateInstanceLayerProperties" (vkEnumerateInstanceLayerProperties' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkEnumerateInstanceLayerProperties" (vkEnumerateInstanceLayerProperties'+                                                                        (pPPropertyCount)+                                                                        ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @LayerProperties (((pPProperties) `advancePtrBytes` (520 * (i)) :: Ptr LayerProperties)))@@ -223,12 +227,18 @@   let vkEnumerateDeviceLayerProperties' = mkVkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerPropertiesPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumerateDeviceLayerProperties" (vkEnumerateDeviceLayerProperties' physicalDevice' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumerateDeviceLayerProperties" (vkEnumerateDeviceLayerProperties'+                                                                     physicalDevice'+                                                                     (pPPropertyCount)+                                                                     (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @LayerProperties ((fromIntegral (pPropertyCount)) * 520)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 520) :: Ptr LayerProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkEnumerateDeviceLayerProperties" (vkEnumerateDeviceLayerProperties' physicalDevice' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkEnumerateDeviceLayerProperties" (vkEnumerateDeviceLayerProperties'+                                                                      physicalDevice'+                                                                      (pPPropertyCount)+                                                                      ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @LayerProperties (((pPProperties) `advancePtrBytes` (520 * (i)) :: Ptr LayerProperties)))
src/Vulkan/Core10/Memory.hs view
@@ -301,7 +301,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPMemory <- ContT $ bracket (callocBytes @DeviceMemory 8) free-  r <- lift $ traceAroundEvent "vkAllocateMemory" (vkAllocateMemory' (deviceHandle (device)) (forgetExtensions pAllocateInfo) pAllocator (pPMemory))+  r <- lift $ traceAroundEvent "vkAllocateMemory" (vkAllocateMemory'+                                                     (deviceHandle (device))+                                                     (forgetExtensions pAllocateInfo)+                                                     pAllocator+                                                     (pPMemory))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMemory <- lift $ peek @DeviceMemory pPMemory   pure $ (pMemory)@@ -407,7 +411,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkFreeMemory" (vkFreeMemory' (deviceHandle (device)) (memory) pAllocator)+  lift $ traceAroundEvent "vkFreeMemory" (vkFreeMemory'+                                            (deviceHandle (device))+                                            (memory)+                                            pAllocator)   pure $ ()  @@ -554,7 +561,13 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkMapMemory is null" Nothing Nothing   let vkMapMemory' = mkVkMapMemory vkMapMemoryPtr   pPpData <- ContT $ bracket (callocBytes @(Ptr ()) 8) free-  r <- lift $ traceAroundEvent "vkMapMemory" (vkMapMemory' (deviceHandle (device)) (memory) (offset) (size) (flags) (pPpData))+  r <- lift $ traceAroundEvent "vkMapMemory" (vkMapMemory'+                                                (deviceHandle (device))+                                                (memory)+                                                (offset)+                                                (size)+                                                (flags)+                                                (pPpData))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   ppData <- lift $ peek @(Ptr ()) pPpData   pure $ (ppData)@@ -618,7 +631,9 @@   unless (vkUnmapMemoryPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUnmapMemory is null" Nothing Nothing   let vkUnmapMemory' = mkVkUnmapMemory vkUnmapMemoryPtr-  traceAroundEvent "vkUnmapMemory" (vkUnmapMemory' (deviceHandle (device)) (memory))+  traceAroundEvent "vkUnmapMemory" (vkUnmapMemory'+                                      (deviceHandle (device))+                                      (memory))   pure $ ()  @@ -699,7 +714,10 @@   let vkFlushMappedMemoryRanges' = mkVkFlushMappedMemoryRanges vkFlushMappedMemoryRangesPtr   pPMemoryRanges <- ContT $ allocaBytes @MappedMemoryRange ((Data.Vector.length (memoryRanges)) * 40)   lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryRanges `plusPtr` (40 * (i)) :: Ptr MappedMemoryRange) (e)) (memoryRanges)-  r <- lift $ traceAroundEvent "vkFlushMappedMemoryRanges" (vkFlushMappedMemoryRanges' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32)) (pPMemoryRanges))+  r <- lift $ traceAroundEvent "vkFlushMappedMemoryRanges" (vkFlushMappedMemoryRanges'+                                                              (deviceHandle (device))+                                                              ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32))+                                                              (pPMemoryRanges))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -772,7 +790,10 @@   let vkInvalidateMappedMemoryRanges' = mkVkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRangesPtr   pPMemoryRanges <- ContT $ allocaBytes @MappedMemoryRange ((Data.Vector.length (memoryRanges)) * 40)   lift $ Data.Vector.imapM_ (\i e -> poke (pPMemoryRanges `plusPtr` (40 * (i)) :: Ptr MappedMemoryRange) (e)) (memoryRanges)-  r <- lift $ traceAroundEvent "vkInvalidateMappedMemoryRanges" (vkInvalidateMappedMemoryRanges' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32)) (pPMemoryRanges))+  r <- lift $ traceAroundEvent "vkInvalidateMappedMemoryRanges" (vkInvalidateMappedMemoryRanges'+                                                                   (deviceHandle (device))+                                                                   ((fromIntegral (Data.Vector.length $ (memoryRanges)) :: Word32))+                                                                   (pPMemoryRanges))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -828,7 +849,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceMemoryCommitment is null" Nothing Nothing   let vkGetDeviceMemoryCommitment' = mkVkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitmentPtr   pPCommittedMemoryInBytes <- ContT $ bracket (callocBytes @DeviceSize 8) free-  lift $ traceAroundEvent "vkGetDeviceMemoryCommitment" (vkGetDeviceMemoryCommitment' (deviceHandle (device)) (memory) (pPCommittedMemoryInBytes))+  lift $ traceAroundEvent "vkGetDeviceMemoryCommitment" (vkGetDeviceMemoryCommitment'+                                                           (deviceHandle (device))+                                                           (memory)+                                                           (pPCommittedMemoryInBytes))   pCommittedMemoryInBytes <- lift $ peek @DeviceSize pPCommittedMemoryInBytes   pure $ (pCommittedMemoryInBytes) @@ -1363,7 +1387,8 @@     | Just Refl <- eqT @e @DedicatedAllocationMemoryAllocateInfoNV = Just f     | otherwise = Nothing -instance (Extendss MemoryAllocateInfo es, PokeChain es) => ToCStruct (MemoryAllocateInfo es) where+instance ( Extendss MemoryAllocateInfo es+         , PokeChain es ) => ToCStruct (MemoryAllocateInfo es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p MemoryAllocateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)@@ -1382,7 +1407,8 @@     lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss MemoryAllocateInfo es, PeekChain es) => FromCStruct (MemoryAllocateInfo es) where+instance ( Extendss MemoryAllocateInfo es+         , PeekChain es ) => FromCStruct (MemoryAllocateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/Memory.hs-boot view
@@ -22,8 +22,10 @@ type role MemoryAllocateInfo nominal data MemoryAllocateInfo (es :: [Type]) -instance (Extendss MemoryAllocateInfo es, PokeChain es) => ToCStruct (MemoryAllocateInfo es)+instance ( Extendss MemoryAllocateInfo es+         , PokeChain es ) => ToCStruct (MemoryAllocateInfo es) instance Show (Chain es) => Show (MemoryAllocateInfo es) -instance (Extendss MemoryAllocateInfo es, PeekChain es) => FromCStruct (MemoryAllocateInfo es)+instance ( Extendss MemoryAllocateInfo es+         , PeekChain es ) => FromCStruct (MemoryAllocateInfo es) 
src/Vulkan/Core10/MemoryManagement.hs view
@@ -97,7 +97,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferMemoryRequirements is null" Nothing Nothing   let vkGetBufferMemoryRequirements' = mkVkGetBufferMemoryRequirements vkGetBufferMemoryRequirementsPtr   pPMemoryRequirements <- ContT (withZeroCStruct @MemoryRequirements)-  lift $ traceAroundEvent "vkGetBufferMemoryRequirements" (vkGetBufferMemoryRequirements' (deviceHandle (device)) (buffer) (pPMemoryRequirements))+  lift $ traceAroundEvent "vkGetBufferMemoryRequirements" (vkGetBufferMemoryRequirements'+                                                             (deviceHandle (device))+                                                             (buffer)+                                                             (pPMemoryRequirements))   pMemoryRequirements <- lift $ peekCStruct @MemoryRequirements pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -119,8 +122,8 @@ -- -- == Valid Usage ----- -   #VUID-vkBindBufferMemory-buffer-01029# @buffer@ /must/ not already---     be backed by a memory object+-- -   #VUID-vkBindBufferMemory-buffer-07459# @buffer@ /must/ not have been+--     bound to a memory object -- -- -   #VUID-vkBindBufferMemory-buffer-01030# @buffer@ /must/ not have been --     created with any sparse memory binding flags@@ -285,7 +288,11 @@   unless (vkBindBufferMemoryPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBindBufferMemory is null" Nothing Nothing   let vkBindBufferMemory' = mkVkBindBufferMemory vkBindBufferMemoryPtr-  r <- traceAroundEvent "vkBindBufferMemory" (vkBindBufferMemory' (deviceHandle (device)) (buffer) (memory) (memoryOffset))+  r <- traceAroundEvent "vkBindBufferMemory" (vkBindBufferMemory'+                                                (deviceHandle (device))+                                                (buffer)+                                                (memory)+                                                (memoryOffset))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -344,7 +351,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageMemoryRequirements is null" Nothing Nothing   let vkGetImageMemoryRequirements' = mkVkGetImageMemoryRequirements vkGetImageMemoryRequirementsPtr   pPMemoryRequirements <- ContT (withZeroCStruct @MemoryRequirements)-  lift $ traceAroundEvent "vkGetImageMemoryRequirements" (vkGetImageMemoryRequirements' (deviceHandle (device)) (image) (pPMemoryRequirements))+  lift $ traceAroundEvent "vkGetImageMemoryRequirements" (vkGetImageMemoryRequirements'+                                                            (deviceHandle (device))+                                                            (image)+                                                            (pPMemoryRequirements))   pMemoryRequirements <- lift $ peekCStruct @MemoryRequirements pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -366,8 +376,8 @@ -- -- == Valid Usage ----- -   #VUID-vkBindImageMemory-image-01044# @image@ /must/ not already be---     backed by a memory object+-- -   #VUID-vkBindImageMemory-image-07460# @image@ /must/ not have been+--     bound to a memory object -- -- -   #VUID-vkBindImageMemory-image-01045# @image@ /must/ not have been --     created with any sparse memory binding flags@@ -547,7 +557,11 @@   unless (vkBindImageMemoryPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBindImageMemory is null" Nothing Nothing   let vkBindImageMemory' = mkVkBindImageMemory vkBindImageMemoryPtr-  r <- traceAroundEvent "vkBindImageMemory" (vkBindImageMemory' (deviceHandle (device)) (image) (memory) (memoryOffset))+  r <- traceAroundEvent "vkBindImageMemory" (vkBindImageMemory'+                                               (deviceHandle (device))+                                               (image)+                                               (memory)+                                               (memoryOffset))   when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Core10/OtherTypes.hs view
@@ -326,7 +326,13 @@     offset <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))     size <- peek @DeviceSize ((p `plusPtr` 48 :: Ptr DeviceSize))     pure $ BufferMemoryBarrier-             srcAccessMask dstAccessMask srcQueueFamilyIndex dstQueueFamilyIndex buffer offset size+             srcAccessMask+             dstAccessMask+             srcQueueFamilyIndex+             dstQueueFamilyIndex+             buffer+             offset+             size  instance Storable BufferMemoryBarrier where   sizeOf ~_ = 56@@ -798,7 +804,8 @@     | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f     | otherwise = Nothing -instance (Extendss ImageMemoryBarrier es, PokeChain es) => ToCStruct (ImageMemoryBarrier es) where+instance ( Extendss ImageMemoryBarrier es+         , PokeChain es ) => ToCStruct (ImageMemoryBarrier es) where   withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageMemoryBarrier{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER)@@ -829,7 +836,8 @@     lift $ poke ((p `plusPtr` 48 :: Ptr ImageSubresourceRange)) (zero)     lift $ f -instance (Extendss ImageMemoryBarrier es, PeekChain es) => FromCStruct (ImageMemoryBarrier es) where+instance ( Extendss ImageMemoryBarrier es+         , PeekChain es ) => FromCStruct (ImageMemoryBarrier es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -842,7 +850,15 @@     image <- peek @Image ((p `plusPtr` 40 :: Ptr Image))     subresourceRange <- peekCStruct @ImageSubresourceRange ((p `plusPtr` 48 :: Ptr ImageSubresourceRange))     pure $ ImageMemoryBarrier-             next srcAccessMask dstAccessMask oldLayout newLayout srcQueueFamilyIndex dstQueueFamilyIndex image subresourceRange+             next+             srcAccessMask+             dstAccessMask+             oldLayout+             newLayout+             srcQueueFamilyIndex+             dstQueueFamilyIndex+             image+             subresourceRange  instance es ~ '[] => Zero (ImageMemoryBarrier es) where   zero = ImageMemoryBarrier
src/Vulkan/Core10/OtherTypes.hs-boot view
@@ -51,10 +51,12 @@ type role ImageMemoryBarrier nominal data ImageMemoryBarrier (es :: [Type]) -instance (Extendss ImageMemoryBarrier es, PokeChain es) => ToCStruct (ImageMemoryBarrier es)+instance ( Extendss ImageMemoryBarrier es+         , PokeChain es ) => ToCStruct (ImageMemoryBarrier es) instance Show (Chain es) => Show (ImageMemoryBarrier es) -instance (Extendss ImageMemoryBarrier es, PeekChain es) => FromCStruct (ImageMemoryBarrier es)+instance ( Extendss ImageMemoryBarrier es+         , PeekChain es ) => FromCStruct (ImageMemoryBarrier es)   data MemoryBarrier
src/Vulkan/Core10/Pass.hs view
@@ -217,7 +217,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFramebuffer <- ContT $ bracket (callocBytes @Framebuffer 8) free-  r <- lift $ traceAroundEvent "vkCreateFramebuffer" (vkCreateFramebuffer' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPFramebuffer))+  r <- lift $ traceAroundEvent "vkCreateFramebuffer" (vkCreateFramebuffer'+                                                        (deviceHandle (device))+                                                        (forgetExtensions pCreateInfo)+                                                        pAllocator+                                                        (pPFramebuffer))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFramebuffer <- lift $ peek @Framebuffer pPFramebuffer   pure $ (pFramebuffer)@@ -305,7 +309,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyFramebuffer" (vkDestroyFramebuffer' (deviceHandle (device)) (framebuffer) pAllocator)+  lift $ traceAroundEvent "vkDestroyFramebuffer" (vkDestroyFramebuffer'+                                                    (deviceHandle (device))+                                                    (framebuffer)+                                                    pAllocator)   pure $ ()  @@ -373,7 +380,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPRenderPass <- ContT $ bracket (callocBytes @RenderPass 8) free-  r <- lift $ traceAroundEvent "vkCreateRenderPass" (vkCreateRenderPass' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPRenderPass))+  r <- lift $ traceAroundEvent "vkCreateRenderPass" (vkCreateRenderPass'+                                                       (deviceHandle (device))+                                                       (forgetExtensions pCreateInfo)+                                                       pAllocator+                                                       (pPRenderPass))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pRenderPass <- lift $ peek @RenderPass pPRenderPass   pure $ (pRenderPass)@@ -461,7 +472,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyRenderPass" (vkDestroyRenderPass' (deviceHandle (device)) (renderPass) pAllocator)+  lift $ traceAroundEvent "vkDestroyRenderPass" (vkDestroyRenderPass'+                                                   (deviceHandle (device))+                                                   (renderPass)+                                                   pAllocator)   pure $ ()  @@ -538,7 +552,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRenderAreaGranularity is null" Nothing Nothing   let vkGetRenderAreaGranularity' = mkVkGetRenderAreaGranularity vkGetRenderAreaGranularityPtr   pPGranularity <- ContT (withZeroCStruct @Extent2D)-  lift $ traceAroundEvent "vkGetRenderAreaGranularity" (vkGetRenderAreaGranularity' (deviceHandle (device)) (renderPass) (pPGranularity))+  lift $ traceAroundEvent "vkGetRenderAreaGranularity" (vkGetRenderAreaGranularity'+                                                          (deviceHandle (device))+                                                          (renderPass)+                                                          (pPGranularity))   pGranularity <- lift $ peekCStruct @Extent2D pPGranularity   pure $ (pGranularity) @@ -972,7 +989,15 @@     initialLayout <- peek @ImageLayout ((p `plusPtr` 28 :: Ptr ImageLayout))     finalLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))     pure $ AttachmentDescription-             flags format samples loadOp storeOp stencilLoadOp stencilStoreOp initialLayout finalLayout+             flags+             format+             samples+             loadOp+             storeOp+             stencilLoadOp+             stencilStoreOp+             initialLayout+             finalLayout  instance Storable AttachmentDescription where   sizeOf ~_ = 36@@ -1597,7 +1622,13 @@     pPreserveAttachments <- peek @(Ptr Word32) ((p `plusPtr` 64 :: Ptr (Ptr Word32)))     pPreserveAttachments' <- generateM (fromIntegral preserveAttachmentCount) (\i -> peek @Word32 ((pPreserveAttachments `advancePtrBytes` (4 * (i)) :: Ptr Word32)))     pure $ SubpassDescription-             flags pipelineBindPoint pInputAttachments' pColorAttachments' pResolveAttachments' pDepthStencilAttachment' pPreserveAttachments'+             flags+             pipelineBindPoint+             pInputAttachments'+             pColorAttachments'+             pResolveAttachments'+             pDepthStencilAttachment'+             pPreserveAttachments'  instance Zero SubpassDescription where   zero = SubpassDescription@@ -1938,7 +1969,13 @@     dstAccessMask <- peek @AccessFlags ((p `plusPtr` 20 :: Ptr AccessFlags))     dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 24 :: Ptr DependencyFlags))     pure $ SubpassDependency-             srcSubpass dstSubpass srcStageMask dstStageMask srcAccessMask dstAccessMask dependencyFlags+             srcSubpass+             dstSubpass+             srcStageMask+             dstStageMask+             srcAccessMask+             dstAccessMask+             dependencyFlags  instance Storable SubpassDependency where   sizeOf ~_ = 28@@ -2193,7 +2230,8 @@     | Just Refl <- eqT @e @RenderPassMultiviewCreateInfo = Just f     | otherwise = Nothing -instance (Extendss RenderPassCreateInfo es, PokeChain es) => ToCStruct (RenderPassCreateInfo es) where+instance ( Extendss RenderPassCreateInfo es+         , PokeChain es ) => ToCStruct (RenderPassCreateInfo es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p RenderPassCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)@@ -2221,7 +2259,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss RenderPassCreateInfo es, PeekChain es) => FromCStruct (RenderPassCreateInfo es) where+instance ( Extendss RenderPassCreateInfo es+         , PeekChain es ) => FromCStruct (RenderPassCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2804,7 +2843,8 @@     | Just Refl <- eqT @e @FramebufferAttachmentsCreateInfo = Just f     | otherwise = Nothing -instance (Extendss FramebufferCreateInfo es, PokeChain es) => ToCStruct (FramebufferCreateInfo es) where+instance ( Extendss FramebufferCreateInfo es+         , PokeChain es ) => ToCStruct (FramebufferCreateInfo es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p FramebufferCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)@@ -2832,7 +2872,8 @@     lift $ poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss FramebufferCreateInfo es, PeekChain es) => FromCStruct (FramebufferCreateInfo es) where+instance ( Extendss FramebufferCreateInfo es+         , PeekChain es ) => FromCStruct (FramebufferCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/Pass.hs-boot view
@@ -34,19 +34,23 @@ type role FramebufferCreateInfo nominal data FramebufferCreateInfo (es :: [Type]) -instance (Extendss FramebufferCreateInfo es, PokeChain es) => ToCStruct (FramebufferCreateInfo es)+instance ( Extendss FramebufferCreateInfo es+         , PokeChain es ) => ToCStruct (FramebufferCreateInfo es) instance Show (Chain es) => Show (FramebufferCreateInfo es) -instance (Extendss FramebufferCreateInfo es, PeekChain es) => FromCStruct (FramebufferCreateInfo es)+instance ( Extendss FramebufferCreateInfo es+         , PeekChain es ) => FromCStruct (FramebufferCreateInfo es)   type role RenderPassCreateInfo nominal data RenderPassCreateInfo (es :: [Type]) -instance (Extendss RenderPassCreateInfo es, PokeChain es) => ToCStruct (RenderPassCreateInfo es)+instance ( Extendss RenderPassCreateInfo es+         , PokeChain es ) => ToCStruct (RenderPassCreateInfo es) instance Show (Chain es) => Show (RenderPassCreateInfo es) -instance (Extendss RenderPassCreateInfo es, PeekChain es) => FromCStruct (RenderPassCreateInfo es)+instance ( Extendss RenderPassCreateInfo es+         , PeekChain es ) => FromCStruct (RenderPassCreateInfo es)   data SubpassDependency
src/Vulkan/Core10/Pipeline.hs view
@@ -390,7 +390,10 @@                            -- chapter.                            ("allocator" ::: Maybe AllocationCallbacks)                         -> io (Result, ("pipelines" ::: Vector Pipeline))-createGraphicsPipelines device pipelineCache createInfos allocator = liftIO . evalContT $ do+createGraphicsPipelines device+                          pipelineCache+                          createInfos+                          allocator = liftIO . evalContT $ do   let vkCreateGraphicsPipelinesPtr = pVkCreateGraphicsPipelines (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateGraphicsPipelinesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateGraphicsPipelines is null" Nothing Nothing@@ -401,7 +404,13 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free-  r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))+  r <- lift $ traceAroundEvent "vkCreateGraphicsPipelines" (vkCreateGraphicsPipelines'+                                                              (deviceHandle (device))+                                                              (pipelineCache)+                                                              ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))+                                                              (forgetExtensions (pPCreateInfos))+                                                              pAllocator+                                                              (pPPipelines))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))   pure $ (r, pPipelines)@@ -417,7 +426,9 @@ withGraphicsPipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct GraphicsPipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r withGraphicsPipelines device pipelineCache pCreateInfos pAllocator b =   b (createGraphicsPipelines device pipelineCache pCreateInfos pAllocator)-    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)+    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device+                                                         o1Elem+                                                         pAllocator) o1)   foreign import ccall@@ -520,7 +531,10 @@                           -- chapter.                           ("allocator" ::: Maybe AllocationCallbacks)                        -> io (Result, ("pipelines" ::: Vector Pipeline))-createComputePipelines device pipelineCache createInfos allocator = liftIO . evalContT $ do+createComputePipelines device+                         pipelineCache+                         createInfos+                         allocator = liftIO . evalContT $ do   let vkCreateComputePipelinesPtr = pVkCreateComputePipelines (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateComputePipelinesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateComputePipelines is null" Nothing Nothing@@ -531,7 +545,13 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free-  r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))+  r <- lift $ traceAroundEvent "vkCreateComputePipelines" (vkCreateComputePipelines'+                                                             (deviceHandle (device))+                                                             (pipelineCache)+                                                             ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))+                                                             (forgetExtensions (pPCreateInfos))+                                                             pAllocator+                                                             (pPPipelines))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))   pure $ (r, pPipelines)@@ -547,7 +567,9 @@ withComputePipelines :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct ComputePipelineCreateInfo) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r withComputePipelines device pipelineCache pCreateInfos pAllocator b =   b (createComputePipelines device pipelineCache pCreateInfos pAllocator)-    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)+    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device+                                                         o1Elem+                                                         pAllocator) o1)   foreign import ccall@@ -618,7 +640,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline' (deviceHandle (device)) (pipeline) pAllocator)+  lift $ traceAroundEvent "vkDestroyPipeline" (vkDestroyPipeline'+                                                 (deviceHandle (device))+                                                 (pipeline)+                                                 pAllocator)   pure $ ()  @@ -776,7 +801,12 @@     minDepth <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))     maxDepth <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))     pure $ Viewport-             (coerce @CFloat @Float x) (coerce @CFloat @Float y) (coerce @CFloat @Float width) (coerce @CFloat @Float height) (coerce @CFloat @Float minDepth) (coerce @CFloat @Float maxDepth)+             (coerce @CFloat @Float x)+             (coerce @CFloat @Float y)+             (coerce @CFloat @Float width)+             (coerce @CFloat @Float height)+             (coerce @CFloat @Float minDepth)+             (coerce @CFloat @Float maxDepth)  instance Storable Viewport where   sizeOf ~_ = 24@@ -1312,7 +1342,8 @@     | Just Refl <- eqT @e @(ShaderModuleCreateInfo '[]) = Just f     | otherwise = Nothing -instance (Extendss PipelineShaderStageCreateInfo es, PokeChain es) => ToCStruct (PipelineShaderStageCreateInfo es) where+instance ( Extendss PipelineShaderStageCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineShaderStageCreateInfo es) where   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineShaderStageCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO)@@ -1339,7 +1370,8 @@     lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr CChar))) pName''     lift $ f -instance (Extendss PipelineShaderStageCreateInfo es, PeekChain es) => FromCStruct (PipelineShaderStageCreateInfo es) where+instance ( Extendss PipelineShaderStageCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineShaderStageCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1472,6 +1504,10 @@ --     'Vulkan.Core13.Promoted_From_VK_EXT_pipeline_creation_feedback.PipelineCreationFeedbackCreateInfo'::@pipelineStageCreationFeedbackCount@ --     is not @0@, it /must/ be @1@ --+-- -   #VUID-VkComputePipelineCreateInfo-flags-07367# @flags@ /must/ not+--     include+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkComputePipelineCreateInfo-sType-sType# @sType@ /must/ be@@ -1550,7 +1586,8 @@     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | otherwise = Nothing -instance (Extendss ComputePipelineCreateInfo es, PokeChain es) => ToCStruct (ComputePipelineCreateInfo es) where+instance ( Extendss ComputePipelineCreateInfo es+         , PokeChain es ) => ToCStruct (ComputePipelineCreateInfo es) where   withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ComputePipelineCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO)@@ -1573,7 +1610,8 @@     lift $ poke ((p `plusPtr` 88 :: Ptr Int32)) (zero)     lift $ f -instance (Extendss ComputePipelineCreateInfo es, PeekChain es) => FromCStruct (ComputePipelineCreateInfo es) where+instance ( Extendss ComputePipelineCreateInfo es+         , PeekChain es ) => FromCStruct (ComputePipelineCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1868,7 +1906,8 @@     | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss PipelineVertexInputStateCreateInfo es, PokeChain es) => ToCStruct (PipelineVertexInputStateCreateInfo es) where+instance ( Extendss PipelineVertexInputStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineVertexInputStateCreateInfo es) where   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineVertexInputStateCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO)@@ -1892,7 +1931,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss PipelineVertexInputStateCreateInfo es, PeekChain es) => FromCStruct (PipelineVertexInputStateCreateInfo es) where+instance ( Extendss PipelineVertexInputStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineVertexInputStateCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1904,7 +1944,10 @@     pVertexAttributeDescriptions <- peek @(Ptr VertexInputAttributeDescription) ((p `plusPtr` 40 :: Ptr (Ptr VertexInputAttributeDescription)))     pVertexAttributeDescriptions' <- generateM (fromIntegral vertexAttributeDescriptionCount) (\i -> peekCStruct @VertexInputAttributeDescription ((pVertexAttributeDescriptions `advancePtrBytes` (16 * (i)) :: Ptr VertexInputAttributeDescription)))     pure $ PipelineVertexInputStateCreateInfo-             next flags pVertexBindingDescriptions' pVertexAttributeDescriptions'+             next+             flags+             pVertexBindingDescriptions'+             pVertexAttributeDescriptions'  instance es ~ '[] => Zero (PipelineVertexInputStateCreateInfo es) where   zero = PipelineVertexInputStateCreateInfo@@ -2121,7 +2164,8 @@     | Just Refl <- eqT @e @PipelineTessellationDomainOriginStateCreateInfo = Just f     | otherwise = Nothing -instance (Extendss PipelineTessellationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineTessellationStateCreateInfo es) where+instance ( Extendss PipelineTessellationStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineTessellationStateCreateInfo es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineTessellationStateCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO)@@ -2139,7 +2183,8 @@     lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss PipelineTessellationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineTessellationStateCreateInfo es) where+instance ( Extendss PipelineTessellationStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineTessellationStateCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2290,7 +2335,8 @@     | Just Refl <- eqT @e @PipelineViewportWScalingStateCreateInfoNV = Just f     | otherwise = Nothing -instance (Extendss PipelineViewportStateCreateInfo es, PokeChain es) => ToCStruct (PipelineViewportStateCreateInfo es) where+instance ( Extendss PipelineViewportStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineViewportStateCreateInfo es) where   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineViewportStateCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO)@@ -2336,7 +2382,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss PipelineViewportStateCreateInfo es, PeekChain es) => FromCStruct (PipelineViewportStateCreateInfo es) where+instance ( Extendss PipelineViewportStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineViewportStateCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2508,7 +2555,8 @@     | Just Refl <- eqT @e @PipelineRasterizationStateRasterizationOrderAMD = Just f     | otherwise = Nothing -instance (Extendss PipelineRasterizationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineRasterizationStateCreateInfo es) where+instance ( Extendss PipelineRasterizationStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineRasterizationStateCreateInfo es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineRasterizationStateCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO)@@ -2543,7 +2591,8 @@     lift $ poke ((p `plusPtr` 56 :: Ptr CFloat)) (CFloat (zero))     lift $ f -instance (Extendss PipelineRasterizationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineRasterizationStateCreateInfo es) where+instance ( Extendss PipelineRasterizationStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineRasterizationStateCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2559,7 +2608,18 @@     depthBiasSlopeFactor <- peek @CFloat ((p `plusPtr` 52 :: Ptr CFloat))     lineWidth <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))     pure $ PipelineRasterizationStateCreateInfo-             next flags (bool32ToBool depthClampEnable) (bool32ToBool rasterizerDiscardEnable) polygonMode cullMode frontFace (bool32ToBool depthBiasEnable) (coerce @CFloat @Float depthBiasConstantFactor) (coerce @CFloat @Float depthBiasClamp) (coerce @CFloat @Float depthBiasSlopeFactor) (coerce @CFloat @Float lineWidth)+             next+             flags+             (bool32ToBool depthClampEnable)+             (bool32ToBool rasterizerDiscardEnable)+             polygonMode+             cullMode+             frontFace+             (bool32ToBool depthBiasEnable)+             (coerce @CFloat @Float depthBiasConstantFactor)+             (coerce @CFloat @Float depthBiasClamp)+             (coerce @CFloat @Float depthBiasSlopeFactor)+             (coerce @CFloat @Float lineWidth)  instance es ~ '[] => Zero (PipelineRasterizationStateCreateInfo es) where   zero = PipelineRasterizationStateCreateInfo@@ -2704,7 +2764,8 @@     | Just Refl <- eqT @e @PipelineCoverageToColorStateCreateInfoNV = Just f     | otherwise = Nothing -instance (Extendss PipelineMultisampleStateCreateInfo es, PokeChain es) => ToCStruct (PipelineMultisampleStateCreateInfo es) where+instance ( Extendss PipelineMultisampleStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineMultisampleStateCreateInfo es) where   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineMultisampleStateCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO)@@ -2742,7 +2803,8 @@     lift $ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))     lift $ f -instance (Extendss PipelineMultisampleStateCreateInfo es, PeekChain es) => FromCStruct (PipelineMultisampleStateCreateInfo es) where+instance ( Extendss PipelineMultisampleStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineMultisampleStateCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2758,7 +2820,14 @@     alphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))     alphaToOneEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))     pure $ PipelineMultisampleStateCreateInfo-             next flags rasterizationSamples (bool32ToBool sampleShadingEnable) (coerce @CFloat @Float minSampleShading) pSampleMask' (bool32ToBool alphaToCoverageEnable) (bool32ToBool alphaToOneEnable)+             next+             flags+             rasterizationSamples+             (bool32ToBool sampleShadingEnable)+             (coerce @CFloat @Float minSampleShading)+             pSampleMask'+             (bool32ToBool alphaToCoverageEnable)+             (bool32ToBool alphaToOneEnable)  instance es ~ '[] => Zero (PipelineMultisampleStateCreateInfo es) where   zero = PipelineMultisampleStateCreateInfo@@ -3001,7 +3070,14 @@     alphaBlendOp <- peek @BlendOp ((p `plusPtr` 24 :: Ptr BlendOp))     colorWriteMask <- peek @ColorComponentFlags ((p `plusPtr` 28 :: Ptr ColorComponentFlags))     pure $ PipelineColorBlendAttachmentState-             (bool32ToBool blendEnable) srcColorBlendFactor dstColorBlendFactor colorBlendOp srcAlphaBlendFactor dstAlphaBlendFactor alphaBlendOp colorWriteMask+             (bool32ToBool blendEnable)+             srcColorBlendFactor+             dstColorBlendFactor+             colorBlendOp+             srcAlphaBlendFactor+             dstAlphaBlendFactor+             alphaBlendOp+             colorWriteMask  instance Storable PipelineColorBlendAttachmentState where   sizeOf ~_ = 32@@ -3047,6 +3123,14 @@ --     feature is not enabled, @flags@ /must/ not include --     'Vulkan.Core10.Enums.PipelineColorBlendStateCreateFlagBits.PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT' --+-- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-07353# If any+--     of+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     are not set, @pAttachments@ /must/ not be @NULL@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkPipelineColorBlendStateCreateInfo-sType-sType# @sType@@@ -3069,9 +3153,10 @@ --     values -- -- -   #VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter# If---     @attachmentCount@ is not @0@, @pAttachments@ /must/ be a valid---     pointer to an array of @attachmentCount@ valid---     'PipelineColorBlendAttachmentState' structures+--     @attachmentCount@ is not @0@, and @pAttachments@ is not @NULL@,+--     @pAttachments@ /must/ be a valid pointer to an array of+--     @attachmentCount@ valid 'PipelineColorBlendAttachmentState'+--     structures -- -- = See Also --@@ -3093,9 +3178,19 @@     logicOpEnable :: Bool   , -- | @logicOp@ selects which logical operation to apply.     logicOp :: LogicOp+  , -- | @attachmentCount@ is the number of 'PipelineColorBlendAttachmentState'+    -- elements in @pAttachments@.+    attachmentCount :: Word32   , -- | @pAttachments@ is a pointer to an array of     -- 'PipelineColorBlendAttachmentState' structures defining blend state for     -- each color attachment.+    --+    -- @pAttachments@ is ignored if all of+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT',+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT',+    -- and+    -- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+    -- dynamic states set.     attachments :: Vector PipelineColorBlendAttachmentState   , -- | @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,@@ -3119,7 +3214,8 @@     | Just Refl <- eqT @e @PipelineColorBlendAdvancedStateCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss PipelineColorBlendStateCreateInfo es, PokeChain es) => ToCStruct (PipelineColorBlendStateCreateInfo es) where+instance ( Extendss PipelineColorBlendStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineColorBlendStateCreateInfo es) where   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PipelineColorBlendStateCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO)@@ -3128,10 +3224,21 @@     lift $ poke ((p `plusPtr` 16 :: Ptr PipelineColorBlendStateCreateFlags)) (flags)     lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (logicOpEnable))     lift $ poke ((p `plusPtr` 24 :: Ptr LogicOp)) (logicOp)-    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (attachments)) :: Word32))-    pPAttachments' <- ContT $ allocaBytes @PipelineColorBlendAttachmentState ((Data.Vector.length (attachments)) * 32)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPAttachments' `plusPtr` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState) (e)) (attachments)-    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState))) (pPAttachments')+    let pAttachmentsLength = Data.Vector.length $ (attachments)+    attachmentCount'' <- lift $ if (attachmentCount) == 0+      then pure $ fromIntegral pAttachmentsLength+      else do+        unless (fromIntegral pAttachmentsLength == (attachmentCount) || pAttachmentsLength == 0) $+          throwIO $ IOError Nothing InvalidArgument "" "pAttachments must be empty or have 'attachmentCount' elements" Nothing Nothing+        pure (attachmentCount)+    lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (attachmentCount'')+    pAttachments'' <- if Data.Vector.null (attachments)+      then pure nullPtr+      else do+        pPAttachments <- ContT $ allocaBytes @PipelineColorBlendAttachmentState (((Data.Vector.length (attachments))) * 32)+        lift $ Data.Vector.imapM_ (\i e -> poke (pPAttachments `plusPtr` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState) (e)) ((attachments))+        pure $ pPAttachments+    lift $ poke ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState))) pAttachments''     let pBlendConstants' = lowerArrayPtr ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))     lift $ case (blendConstants) of       (e0, e1, e2, e3) -> do@@ -3157,7 +3264,8 @@         poke (pBlendConstants' `plusPtr` 12 :: Ptr CFloat) (CFloat (e3))     lift $ f -instance (Extendss PipelineColorBlendStateCreateInfo es, PeekChain es) => FromCStruct (PipelineColorBlendStateCreateInfo es) where+instance ( Extendss PipelineColorBlendStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineColorBlendStateCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -3166,14 +3274,24 @@     logicOp <- peek @LogicOp ((p `plusPtr` 24 :: Ptr LogicOp))     attachmentCount <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))     pAttachments <- peek @(Ptr PipelineColorBlendAttachmentState) ((p `plusPtr` 32 :: Ptr (Ptr PipelineColorBlendAttachmentState)))-    pAttachments' <- generateM (fromIntegral attachmentCount) (\i -> peekCStruct @PipelineColorBlendAttachmentState ((pAttachments `advancePtrBytes` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState)))+    let pAttachmentsLength = if pAttachments == nullPtr then 0 else (fromIntegral attachmentCount)+    pAttachments' <- generateM pAttachmentsLength (\i -> peekCStruct @PipelineColorBlendAttachmentState ((pAttachments `advancePtrBytes` (32 * (i)) :: Ptr PipelineColorBlendAttachmentState)))     let pblendConstants = lowerArrayPtr @CFloat ((p `plusPtr` 40 :: Ptr (FixedArray 4 CFloat)))     blendConstants0 <- peek @CFloat ((pblendConstants `advancePtrBytes` 0 :: Ptr CFloat))     blendConstants1 <- peek @CFloat ((pblendConstants `advancePtrBytes` 4 :: Ptr CFloat))     blendConstants2 <- peek @CFloat ((pblendConstants `advancePtrBytes` 8 :: Ptr CFloat))     blendConstants3 <- peek @CFloat ((pblendConstants `advancePtrBytes` 12 :: Ptr CFloat))     pure $ PipelineColorBlendStateCreateInfo-             next flags (bool32ToBool logicOpEnable) logicOp pAttachments' (((coerce @CFloat @Float blendConstants0), (coerce @CFloat @Float blendConstants1), (coerce @CFloat @Float blendConstants2), (coerce @CFloat @Float blendConstants3)))+             next+             flags+             (bool32ToBool logicOpEnable)+             logicOp+             attachmentCount+             pAttachments'+             (( (coerce @CFloat @Float blendConstants0)+              , (coerce @CFloat @Float blendConstants1)+              , (coerce @CFloat @Float blendConstants2)+              , (coerce @CFloat @Float blendConstants3) ))  instance es ~ '[] => Zero (PipelineColorBlendStateCreateInfo es) where   zero = PipelineColorBlendStateCreateInfo@@ -3181,6 +3299,7 @@            zero            zero            zero+           zero            mempty            (zero, zero, zero, zero) @@ -3528,7 +3647,16 @@     minDepthBounds <- peek @CFloat ((p `plusPtr` 96 :: Ptr CFloat))     maxDepthBounds <- peek @CFloat ((p `plusPtr` 100 :: Ptr CFloat))     pure $ PipelineDepthStencilStateCreateInfo-             flags (bool32ToBool depthTestEnable) (bool32ToBool depthWriteEnable) depthCompareOp (bool32ToBool depthBoundsTestEnable) (bool32ToBool stencilTestEnable) front back (coerce @CFloat @Float minDepthBounds) (coerce @CFloat @Float maxDepthBounds)+             flags+             (bool32ToBool depthTestEnable)+             (bool32ToBool depthWriteEnable)+             depthCompareOp+             (bool32ToBool depthBoundsTestEnable)+             (bool32ToBool stencilTestEnable)+             front+             back+             (coerce @CFloat @Float minDepthBounds)+             (coerce @CFloat @Float maxDepthBounds)  instance Storable PipelineDepthStencilStateCreateInfo where   sizeOf ~_ = 104@@ -3685,7 +3813,9 @@ -- created. For example, if a pipeline only included -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>, -- then any dynamic state value corresponding to depth or stencil testing--- has no effect.+-- has no effect. Any linked library that has dynamic state enabled that+-- same dynamic state /must/ also be enabled in all the other linked+-- libraries to which that dynamic state applies. -- -- A complete graphics pipeline always includes -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>,@@ -4481,6 +4611,20 @@ --     or --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT' --+-- -   #VUID-VkGraphicsPipelineCreateInfo-pipelineProtectedAccess-07368# If+--     the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-pipelineProtectedAccess pipelineProtectedAccess>+--     feature is not enabled, @flags@ /must/ not include+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--     or+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07369# @flags@ /must/ not+--     include both+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--     and+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+-- -- -   #VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494# If the --     pipeline is being created with --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>@@ -5886,6 +6030,227 @@ --     any value of @stage@ /must/ not be set in more than one element of --     @pStages@ --+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3TessellationDomainOrigin-07370#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClampEnable-07371#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3PolygonMode-07372#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationSamples-07373#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleMask-07374#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToCoverageEnable-07375#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3AlphaToOneEnable-07376#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LogicOpEnable-07377#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable>+--     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_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEnable-07378#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendEquation-07379#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorWriteMask-07380#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask>+--     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_MASK_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RasterizationStream-07381#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ConservativeRasterizationMode-07382#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ExtraPrimitiveOverestimationSize-07383#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipEnable-07384#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3SampleLocationsEnable-07385#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ColorBlendAdvanced-07386#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ProvokingVertexMode-07387#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineRasterizationMode-07388#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3LineStippleEnable-07389#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3DepthClipNegativeOneToOne-07390#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportWScalingEnable-07391#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ViewportSwizzle-07392#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorEnable-07393#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageToColorLocation-07394#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationMode-07395#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTableEnable-07396#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageModulationTable-07397#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3CoverageReductionMode-07398#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3RepresentativeFragmentTestEnable-07399#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-extendedDynamicState3ShadingRateImageEnable-07400#+--     If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable>+--     feature is not enabled, there /must/ be no element of the+--     @pDynamicStates@ member of @pDynamicState@ set to+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+--+-- -   #VUID-VkGraphicsPipelineCreateInfo-flags-07401# @flags@ /must/ not+--     include+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkGraphicsPipelineCreateInfo-sType-sType# @sType@ /must/ be@@ -6043,7 +6408,8 @@     | Just Refl <- eqT @e @GraphicsPipelineShaderGroupsCreateInfoNV = Just f     | otherwise = Nothing -instance (Extendss GraphicsPipelineCreateInfo es, PokeChain es) => ToCStruct (GraphicsPipelineCreateInfo es) where+instance ( Extendss GraphicsPipelineCreateInfo es+         , PokeChain es ) => ToCStruct (GraphicsPipelineCreateInfo es) where   withCStruct x f = allocaBytes 144 $ \p -> pokeCStruct p x (f p)   pokeCStruct p GraphicsPipelineCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO)@@ -6117,7 +6483,8 @@     lift $ poke ((p `plusPtr` 136 :: Ptr Int32)) (zero)     lift $ f -instance (Extendss GraphicsPipelineCreateInfo es, PeekChain es) => FromCStruct (GraphicsPipelineCreateInfo es) where+instance ( Extendss GraphicsPipelineCreateInfo es+         , PeekChain es ) => FromCStruct (GraphicsPipelineCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -6150,7 +6517,24 @@     basePipelineHandle <- peek @Pipeline ((p `plusPtr` 128 :: Ptr Pipeline))     basePipelineIndex <- peek @Int32 ((p `plusPtr` 136 :: Ptr Int32))     pure $ GraphicsPipelineCreateInfo-             next flags stageCount pStages' pVertexInputState' pInputAssemblyState' pTessellationState' pViewportState' pRasterizationState' pMultisampleState' pDepthStencilState' pColorBlendState' pDynamicState' layout renderPass subpass basePipelineHandle basePipelineIndex+             next+             flags+             stageCount+             pStages'+             pVertexInputState'+             pInputAssemblyState'+             pTessellationState'+             pViewportState'+             pRasterizationState'+             pMultisampleState'+             pDepthStencilState'+             pColorBlendState'+             pDynamicState'+             layout+             renderPass+             subpass+             basePipelineHandle+             basePipelineIndex  instance es ~ '[] => Zero (GraphicsPipelineCreateInfo es) where   zero = GraphicsPipelineCreateInfo
src/Vulkan/Core10/Pipeline.hs-boot view
@@ -31,19 +31,23 @@ type role ComputePipelineCreateInfo nominal data ComputePipelineCreateInfo (es :: [Type]) -instance (Extendss ComputePipelineCreateInfo es, PokeChain es) => ToCStruct (ComputePipelineCreateInfo es)+instance ( Extendss ComputePipelineCreateInfo es+         , PokeChain es ) => ToCStruct (ComputePipelineCreateInfo es) instance Show (Chain es) => Show (ComputePipelineCreateInfo es) -instance (Extendss ComputePipelineCreateInfo es, PeekChain es) => FromCStruct (ComputePipelineCreateInfo es)+instance ( Extendss ComputePipelineCreateInfo es+         , PeekChain es ) => FromCStruct (ComputePipelineCreateInfo es)   type role GraphicsPipelineCreateInfo nominal data GraphicsPipelineCreateInfo (es :: [Type]) -instance (Extendss GraphicsPipelineCreateInfo es, PokeChain es) => ToCStruct (GraphicsPipelineCreateInfo es)+instance ( Extendss GraphicsPipelineCreateInfo es+         , PokeChain es ) => ToCStruct (GraphicsPipelineCreateInfo es) instance Show (Chain es) => Show (GraphicsPipelineCreateInfo es) -instance (Extendss GraphicsPipelineCreateInfo es, PeekChain es) => FromCStruct (GraphicsPipelineCreateInfo es)+instance ( Extendss GraphicsPipelineCreateInfo es+         , PeekChain es ) => FromCStruct (GraphicsPipelineCreateInfo es)   data PipelineColorBlendAttachmentState@@ -57,10 +61,12 @@ type role PipelineColorBlendStateCreateInfo nominal data PipelineColorBlendStateCreateInfo (es :: [Type]) -instance (Extendss PipelineColorBlendStateCreateInfo es, PokeChain es) => ToCStruct (PipelineColorBlendStateCreateInfo es)+instance ( Extendss PipelineColorBlendStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineColorBlendStateCreateInfo es) instance Show (Chain es) => Show (PipelineColorBlendStateCreateInfo es) -instance (Extendss PipelineColorBlendStateCreateInfo es, PeekChain es) => FromCStruct (PipelineColorBlendStateCreateInfo es)+instance ( Extendss PipelineColorBlendStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineColorBlendStateCreateInfo es)   data PipelineDepthStencilStateCreateInfo@@ -90,55 +96,67 @@ type role PipelineMultisampleStateCreateInfo nominal data PipelineMultisampleStateCreateInfo (es :: [Type]) -instance (Extendss PipelineMultisampleStateCreateInfo es, PokeChain es) => ToCStruct (PipelineMultisampleStateCreateInfo es)+instance ( Extendss PipelineMultisampleStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineMultisampleStateCreateInfo es) instance Show (Chain es) => Show (PipelineMultisampleStateCreateInfo es) -instance (Extendss PipelineMultisampleStateCreateInfo es, PeekChain es) => FromCStruct (PipelineMultisampleStateCreateInfo es)+instance ( Extendss PipelineMultisampleStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineMultisampleStateCreateInfo es)   type role PipelineRasterizationStateCreateInfo nominal data PipelineRasterizationStateCreateInfo (es :: [Type]) -instance (Extendss PipelineRasterizationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineRasterizationStateCreateInfo es)+instance ( Extendss PipelineRasterizationStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineRasterizationStateCreateInfo es) instance Show (Chain es) => Show (PipelineRasterizationStateCreateInfo es) -instance (Extendss PipelineRasterizationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineRasterizationStateCreateInfo es)+instance ( Extendss PipelineRasterizationStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineRasterizationStateCreateInfo es)   type role PipelineShaderStageCreateInfo nominal data PipelineShaderStageCreateInfo (es :: [Type]) -instance (Extendss PipelineShaderStageCreateInfo es, PokeChain es) => ToCStruct (PipelineShaderStageCreateInfo es)+instance ( Extendss PipelineShaderStageCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineShaderStageCreateInfo es) instance Show (Chain es) => Show (PipelineShaderStageCreateInfo es) -instance (Extendss PipelineShaderStageCreateInfo es, PeekChain es) => FromCStruct (PipelineShaderStageCreateInfo es)+instance ( Extendss PipelineShaderStageCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineShaderStageCreateInfo es)   type role PipelineTessellationStateCreateInfo nominal data PipelineTessellationStateCreateInfo (es :: [Type]) -instance (Extendss PipelineTessellationStateCreateInfo es, PokeChain es) => ToCStruct (PipelineTessellationStateCreateInfo es)+instance ( Extendss PipelineTessellationStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineTessellationStateCreateInfo es) instance Show (Chain es) => Show (PipelineTessellationStateCreateInfo es) -instance (Extendss PipelineTessellationStateCreateInfo es, PeekChain es) => FromCStruct (PipelineTessellationStateCreateInfo es)+instance ( Extendss PipelineTessellationStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineTessellationStateCreateInfo es)   type role PipelineVertexInputStateCreateInfo nominal data PipelineVertexInputStateCreateInfo (es :: [Type]) -instance (Extendss PipelineVertexInputStateCreateInfo es, PokeChain es) => ToCStruct (PipelineVertexInputStateCreateInfo es)+instance ( Extendss PipelineVertexInputStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineVertexInputStateCreateInfo es) instance Show (Chain es) => Show (PipelineVertexInputStateCreateInfo es) -instance (Extendss PipelineVertexInputStateCreateInfo es, PeekChain es) => FromCStruct (PipelineVertexInputStateCreateInfo es)+instance ( Extendss PipelineVertexInputStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineVertexInputStateCreateInfo es)   type role PipelineViewportStateCreateInfo nominal data PipelineViewportStateCreateInfo (es :: [Type]) -instance (Extendss PipelineViewportStateCreateInfo es, PokeChain es) => ToCStruct (PipelineViewportStateCreateInfo es)+instance ( Extendss PipelineViewportStateCreateInfo es+         , PokeChain es ) => ToCStruct (PipelineViewportStateCreateInfo es) instance Show (Chain es) => Show (PipelineViewportStateCreateInfo es) -instance (Extendss PipelineViewportStateCreateInfo es, PeekChain es) => FromCStruct (PipelineViewportStateCreateInfo es)+instance ( Extendss PipelineViewportStateCreateInfo es+         , PeekChain es ) => FromCStruct (PipelineViewportStateCreateInfo es)   data SpecializationInfo
src/Vulkan/Core10/PipelineCache.hs view
@@ -180,7 +180,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPPipelineCache <- ContT $ bracket (callocBytes @PipelineCache 8) free-  r <- lift $ traceAroundEvent "vkCreatePipelineCache" (vkCreatePipelineCache' (deviceHandle (device)) pCreateInfo pAllocator (pPPipelineCache))+  r <- lift $ traceAroundEvent "vkCreatePipelineCache" (vkCreatePipelineCache'+                                                          (deviceHandle (device))+                                                          pCreateInfo+                                                          pAllocator+                                                          (pPPipelineCache))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPipelineCache <- lift $ peek @PipelineCache pPPipelineCache   pure $ (pPipelineCache)@@ -266,7 +270,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyPipelineCache" (vkDestroyPipelineCache' (deviceHandle (device)) (pipelineCache) pAllocator)+  lift $ traceAroundEvent "vkDestroyPipelineCache" (vkDestroyPipelineCache'+                                                      (deviceHandle (device))+                                                      (pipelineCache)+                                                      pAllocator)   pure $ ()  @@ -360,14 +367,23 @@   let vkGetPipelineCacheData' = mkVkGetPipelineCacheData vkGetPipelineCacheDataPtr   let device' = deviceHandle (device)   pPDataSize <- ContT $ bracket (callocBytes @CSize 8) free-  r <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData'+                                                           device'+                                                           (pipelineCache)+                                                           (pPDataSize)+                                                           (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDataSize <- lift $ peek @CSize pPDataSize   pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pDataSize)))) free-  r' <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData' device' (pipelineCache) (pPDataSize) (pPData))+  r' <- lift $ traceAroundEvent "vkGetPipelineCacheData" (vkGetPipelineCacheData'+                                                            device'+                                                            (pipelineCache)+                                                            (pPDataSize)+                                                            (pPData))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pDataSize'' <- lift $ peek @CSize pPDataSize-  pData' <- lift $ packCStringLen  (castPtr @() @CChar pPData, (fromIntegral ((coerce @CSize @Word64 pDataSize''))))+  pData' <- lift $ packCStringLen  ( castPtr @() @CChar pPData+                                   , (fromIntegral ((coerce @CSize @Word64 pDataSize''))) )   pure $ ((r'), pData')  @@ -453,7 +469,11 @@   let vkMergePipelineCaches' = mkVkMergePipelineCaches vkMergePipelineCachesPtr   pPSrcCaches <- ContT $ allocaBytes @PipelineCache ((Data.Vector.length (srcCaches)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPSrcCaches `plusPtr` (8 * (i)) :: Ptr PipelineCache) (e)) (srcCaches)-  r <- lift $ traceAroundEvent "vkMergePipelineCaches" (vkMergePipelineCaches' (deviceHandle (device)) (dstCache) ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32)) (pPSrcCaches))+  r <- lift $ traceAroundEvent "vkMergePipelineCaches" (vkMergePipelineCaches'+                                                          (deviceHandle (device))+                                                          (dstCache)+                                                          ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32))+                                                          (pPSrcCaches))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Core10/PipelineLayout.hs view
@@ -132,7 +132,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPPipelineLayout <- ContT $ bracket (callocBytes @PipelineLayout 8) free-  r <- lift $ traceAroundEvent "vkCreatePipelineLayout" (vkCreatePipelineLayout' (deviceHandle (device)) pCreateInfo pAllocator (pPPipelineLayout))+  r <- lift $ traceAroundEvent "vkCreatePipelineLayout" (vkCreatePipelineLayout'+                                                           (deviceHandle (device))+                                                           pCreateInfo+                                                           pAllocator+                                                           (pPPipelineLayout))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPipelineLayout <- lift $ peek @PipelineLayout pPPipelineLayout   pure $ (pPipelineLayout)@@ -224,7 +228,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyPipelineLayout" (vkDestroyPipelineLayout' (deviceHandle (device)) (pipelineLayout) pAllocator)+  lift $ traceAroundEvent "vkDestroyPipelineLayout" (vkDestroyPipelineLayout'+                                                       (deviceHandle (device))+                                                       (pipelineLayout)+                                                       pAllocator)   pure $ ()  
src/Vulkan/Core10/Query.hs view
@@ -158,7 +158,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPQueryPool <- ContT $ bracket (callocBytes @QueryPool 8) free-  r <- lift $ traceAroundEvent "vkCreateQueryPool" (vkCreateQueryPool' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPQueryPool))+  r <- lift $ traceAroundEvent "vkCreateQueryPool" (vkCreateQueryPool'+                                                      (deviceHandle (device))+                                                      (forgetExtensions pCreateInfo)+                                                      pAllocator+                                                      (pPQueryPool))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pQueryPool <- lift $ peek @QueryPool pPQueryPool   pure $ (pQueryPool)@@ -253,7 +257,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyQueryPool" (vkDestroyQueryPool' (deviceHandle (device)) (queryPool) pAllocator)+  lift $ traceAroundEvent "vkDestroyQueryPool" (vkDestroyQueryPool'+                                                  (deviceHandle (device))+                                                  (queryPool)+                                                  pAllocator)   pure $ ()  @@ -515,12 +522,27 @@                        -- how and when results are returned.                        QueryResultFlags                     -> io (Result)-getQueryPoolResults device queryPool firstQuery queryCount dataSize data' stride flags = liftIO $ do+getQueryPoolResults device+                      queryPool+                      firstQuery+                      queryCount+                      dataSize+                      data'+                      stride+                      flags = liftIO $ do   let vkGetQueryPoolResultsPtr = pVkGetQueryPoolResults (case device of Device{deviceCmds} -> deviceCmds)   unless (vkGetQueryPoolResultsPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetQueryPoolResults is null" Nothing Nothing   let vkGetQueryPoolResults' = mkVkGetQueryPoolResults vkGetQueryPoolResultsPtr-  r <- traceAroundEvent "vkGetQueryPoolResults" (vkGetQueryPoolResults' (deviceHandle (device)) (queryPool) (firstQuery) (queryCount) (CSize (dataSize)) (data') (stride) (flags))+  r <- traceAroundEvent "vkGetQueryPoolResults" (vkGetQueryPoolResults'+                                                   (deviceHandle (device))+                                                   (queryPool)+                                                   (firstQuery)+                                                   (queryCount)+                                                   (CSize (dataSize))+                                                   (data')+                                                   (stride)+                                                   (flags))   when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -636,7 +658,8 @@     | Just Refl <- eqT @e @QueryPoolPerformanceCreateInfoKHR = Just f     | otherwise = Nothing -instance (Extendss QueryPoolCreateInfo es, PokeChain es) => ToCStruct (QueryPoolCreateInfo es) where+instance ( Extendss QueryPoolCreateInfo es+         , PokeChain es ) => ToCStruct (QueryPoolCreateInfo es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p QueryPoolCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)@@ -657,7 +680,8 @@     lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss QueryPoolCreateInfo es, PeekChain es) => FromCStruct (QueryPoolCreateInfo es) where+instance ( Extendss QueryPoolCreateInfo es+         , PeekChain es ) => FromCStruct (QueryPoolCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/Query.hs-boot view
@@ -12,8 +12,10 @@ type role QueryPoolCreateInfo nominal data QueryPoolCreateInfo (es :: [Type]) -instance (Extendss QueryPoolCreateInfo es, PokeChain es) => ToCStruct (QueryPoolCreateInfo es)+instance ( Extendss QueryPoolCreateInfo es+         , PokeChain es ) => ToCStruct (QueryPoolCreateInfo es) instance Show (Chain es) => Show (QueryPoolCreateInfo es) -instance (Extendss QueryPoolCreateInfo es, PeekChain es) => FromCStruct (QueryPoolCreateInfo es)+instance ( Extendss QueryPoolCreateInfo es+         , PeekChain es ) => FromCStruct (QueryPoolCreateInfo es) 
src/Vulkan/Core10/Queue.hs view
@@ -160,7 +160,11 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceQueue is null" Nothing Nothing   let vkGetDeviceQueue' = mkVkGetDeviceQueue vkGetDeviceQueuePtr   pPQueue <- ContT $ bracket (callocBytes @(Ptr Queue_T) 8) free-  lift $ traceAroundEvent "vkGetDeviceQueue" (vkGetDeviceQueue' (deviceHandle (device)) (queueFamilyIndex) (queueIndex) (pPQueue))+  lift $ traceAroundEvent "vkGetDeviceQueue" (vkGetDeviceQueue'+                                                (deviceHandle (device))+                                                (queueFamilyIndex)+                                                (queueIndex)+                                                (pPQueue))   pQueue <- lift $ peek @(Ptr Queue_T) pPQueue   pure $ (((\h -> Queue h cmds ) pQueue)) @@ -422,7 +426,11 @@   let vkQueueSubmit' = mkVkQueueSubmit vkQueueSubmitPtr   pPSubmits <- ContT $ allocaBytes @(SubmitInfo _) ((Data.Vector.length (submits)) * 72)   Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPSubmits `plusPtr` (72 * (i)) :: Ptr (SubmitInfo _))) (e) . ($ ())) (submits)-  r <- lift $ traceAroundEvent "vkQueueSubmit" (vkQueueSubmit' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (submits)) :: Word32)) (forgetExtensions (pPSubmits)) (fence))+  r <- lift $ traceAroundEvent "vkQueueSubmit" (vkQueueSubmit'+                                                  (queueHandle (queue))+                                                  ((fromIntegral (Data.Vector.length $ (submits)) :: Word32))+                                                  (forgetExtensions (pPSubmits))+                                                  (fence))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -449,7 +457,8 @@   unless (vkQueueWaitIdlePtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueWaitIdle is null" Nothing Nothing   let vkQueueWaitIdle' = mkVkQueueWaitIdle vkQueueWaitIdlePtr-  r <- traceAroundEvent "vkQueueWaitIdle" (vkQueueWaitIdle' (queueHandle (queue)))+  r <- traceAroundEvent "vkQueueWaitIdle" (vkQueueWaitIdle'+                                             (queueHandle (queue)))   when (r < SUCCESS) (throwIO (VulkanException r))  -- | vkQueueWaitIdle - Wait for a queue to become idle@@ -538,7 +547,8 @@   unless (vkDeviceWaitIdlePtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDeviceWaitIdle is null" Nothing Nothing   let vkDeviceWaitIdle' = mkVkDeviceWaitIdle vkDeviceWaitIdlePtr-  r <- traceAroundEvent "vkDeviceWaitIdle" (vkDeviceWaitIdle' (deviceHandle (device)))+  r <- traceAroundEvent "vkDeviceWaitIdle" (vkDeviceWaitIdle'+                                              (deviceHandle (device)))   when (r < SUCCESS) (throwIO (VulkanException r))  -- | vkDeviceWaitIdle - Wait for a device to become idle@@ -875,7 +885,8 @@     | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f     | otherwise = Nothing -instance (Extendss SubmitInfo es, PokeChain es) => ToCStruct (SubmitInfo es) where+instance ( Extendss SubmitInfo es+         , PokeChain es ) => ToCStruct (SubmitInfo es) where   withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SubmitInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBMIT_INFO)@@ -908,7 +919,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss SubmitInfo es, PeekChain es) => FromCStruct (SubmitInfo es) where+instance ( Extendss SubmitInfo es+         , PeekChain es ) => FromCStruct (SubmitInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -924,7 +936,11 @@     pSignalSemaphores <- peek @(Ptr Semaphore) ((p `plusPtr` 64 :: Ptr (Ptr Semaphore)))     pSignalSemaphores' <- generateM (fromIntegral signalSemaphoreCount) (\i -> peek @Semaphore ((pSignalSemaphores `advancePtrBytes` (8 * (i)) :: Ptr Semaphore)))     pure $ SubmitInfo-             next pWaitSemaphores' pWaitDstStageMask' pCommandBuffers' pSignalSemaphores'+             next+             pWaitSemaphores'+             pWaitDstStageMask'+             pCommandBuffers'+             pSignalSemaphores'  instance es ~ '[] => Zero (SubmitInfo es) where   zero = SubmitInfo
src/Vulkan/Core10/QueueSemaphore.hs view
@@ -139,7 +139,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSemaphore <- ContT $ bracket (callocBytes @Semaphore 8) free-  r <- lift $ traceAroundEvent "vkCreateSemaphore" (vkCreateSemaphore' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSemaphore))+  r <- lift $ traceAroundEvent "vkCreateSemaphore" (vkCreateSemaphore'+                                                      (deviceHandle (device))+                                                      (forgetExtensions pCreateInfo)+                                                      pAllocator+                                                      (pPSemaphore))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSemaphore <- lift $ peek @Semaphore pPSemaphore   pure $ (pSemaphore)@@ -226,7 +230,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroySemaphore" (vkDestroySemaphore' (deviceHandle (device)) (semaphore) pAllocator)+  lift $ traceAroundEvent "vkDestroySemaphore" (vkDestroySemaphore'+                                                  (deviceHandle (device))+                                                  (semaphore)+                                                  pAllocator)   pure $ ()  @@ -293,7 +300,8 @@     | Just Refl <- eqT @e @ExportSemaphoreCreateInfo = Just f     | otherwise = Nothing -instance (Extendss SemaphoreCreateInfo es, PokeChain es) => ToCStruct (SemaphoreCreateInfo es) where+instance ( Extendss SemaphoreCreateInfo es+         , PokeChain es ) => ToCStruct (SemaphoreCreateInfo es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SemaphoreCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)@@ -309,7 +317,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss SemaphoreCreateInfo es, PeekChain es) => FromCStruct (SemaphoreCreateInfo es) where+instance ( Extendss SemaphoreCreateInfo es+         , PeekChain es ) => FromCStruct (SemaphoreCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core10/QueueSemaphore.hs-boot view
@@ -12,8 +12,10 @@ type role SemaphoreCreateInfo nominal data SemaphoreCreateInfo (es :: [Type]) -instance (Extendss SemaphoreCreateInfo es, PokeChain es) => ToCStruct (SemaphoreCreateInfo es)+instance ( Extendss SemaphoreCreateInfo es+         , PokeChain es ) => ToCStruct (SemaphoreCreateInfo es) instance Show (Chain es) => Show (SemaphoreCreateInfo es) -instance (Extendss SemaphoreCreateInfo es, PeekChain es) => FromCStruct (SemaphoreCreateInfo es)+instance ( Extendss SemaphoreCreateInfo es+         , PeekChain es ) => FromCStruct (SemaphoreCreateInfo es) 
src/Vulkan/Core10/Sampler.hs view
@@ -168,7 +168,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSampler <- ContT $ bracket (callocBytes @Sampler 8) free-  r <- lift $ traceAroundEvent "vkCreateSampler" (vkCreateSampler' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSampler))+  r <- lift $ traceAroundEvent "vkCreateSampler" (vkCreateSampler'+                                                    (deviceHandle (device))+                                                    (forgetExtensions pCreateInfo)+                                                    pAllocator+                                                    (pPSampler))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSampler <- lift $ peek @Sampler pPSampler   pure $ (pSampler)@@ -255,7 +259,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroySampler" (vkDestroySampler' (deviceHandle (device)) (sampler) pAllocator)+  lift $ traceAroundEvent "vkDestroySampler" (vkDestroySampler'+                                                (deviceHandle (device))+                                                (sampler)+                                                pAllocator)   pure $ ()  @@ -704,7 +711,8 @@     | Just Refl <- eqT @e @SamplerYcbcrConversionInfo = Just f     | otherwise = Nothing -instance (Extendss SamplerCreateInfo es, PokeChain es) => ToCStruct (SamplerCreateInfo es) where+instance ( Extendss SamplerCreateInfo es+         , PokeChain es ) => ToCStruct (SamplerCreateInfo es) where   withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SamplerCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_CREATE_INFO)@@ -750,7 +758,8 @@     lift $ poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (zero))     lift $ f -instance (Extendss SamplerCreateInfo es, PeekChain es) => FromCStruct (SamplerCreateInfo es) where+instance ( Extendss SamplerCreateInfo es+         , PeekChain es ) => FromCStruct (SamplerCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -771,7 +780,23 @@     borderColor <- peek @BorderColor ((p `plusPtr` 72 :: Ptr BorderColor))     unnormalizedCoordinates <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))     pure $ SamplerCreateInfo-             next flags magFilter minFilter mipmapMode addressModeU addressModeV addressModeW (coerce @CFloat @Float mipLodBias) (bool32ToBool anisotropyEnable) (coerce @CFloat @Float maxAnisotropy) (bool32ToBool compareEnable) compareOp (coerce @CFloat @Float minLod) (coerce @CFloat @Float maxLod) borderColor (bool32ToBool unnormalizedCoordinates)+             next+             flags+             magFilter+             minFilter+             mipmapMode+             addressModeU+             addressModeV+             addressModeW+             (coerce @CFloat @Float mipLodBias)+             (bool32ToBool anisotropyEnable)+             (coerce @CFloat @Float maxAnisotropy)+             (bool32ToBool compareEnable)+             compareOp+             (coerce @CFloat @Float minLod)+             (coerce @CFloat @Float maxLod)+             borderColor+             (bool32ToBool unnormalizedCoordinates)  instance es ~ '[] => Zero (SamplerCreateInfo es) where   zero = SamplerCreateInfo
src/Vulkan/Core10/Sampler.hs-boot view
@@ -12,8 +12,10 @@ type role SamplerCreateInfo nominal data SamplerCreateInfo (es :: [Type]) -instance (Extendss SamplerCreateInfo es, PokeChain es) => ToCStruct (SamplerCreateInfo es)+instance ( Extendss SamplerCreateInfo es+         , PokeChain es ) => ToCStruct (SamplerCreateInfo es) instance Show (Chain es) => Show (SamplerCreateInfo es) -instance (Extendss SamplerCreateInfo es, PeekChain es) => FromCStruct (SamplerCreateInfo es)+instance ( Extendss SamplerCreateInfo es+         , PeekChain es ) => FromCStruct (SamplerCreateInfo es) 
src/Vulkan/Core10/Shader.hs view
@@ -146,7 +146,9 @@ -- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.ShaderModule', -- 'ShaderModuleCreateInfo' createShaderModule :: forall a io-                    . (Extendss ShaderModuleCreateInfo a, PokeChain a, MonadIO io)+                    . ( Extendss ShaderModuleCreateInfo a+                      , PokeChain a+                      , MonadIO io )                    => -- | @device@ is the logical device that creates the shader module.                       Device                    -> -- | @pCreateInfo@ is a pointer to a 'ShaderModuleCreateInfo' structure.@@ -166,7 +168,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPShaderModule <- ContT $ bracket (callocBytes @ShaderModule 8) free-  r <- lift $ traceAroundEvent "vkCreateShaderModule" (vkCreateShaderModule' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPShaderModule))+  r <- lift $ traceAroundEvent "vkCreateShaderModule" (vkCreateShaderModule'+                                                         (deviceHandle (device))+                                                         (forgetExtensions pCreateInfo)+                                                         pAllocator+                                                         (pPShaderModule))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pShaderModule <- lift $ peek @ShaderModule pPShaderModule   pure $ (pShaderModule)@@ -257,7 +263,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyShaderModule" (vkDestroyShaderModule' (deviceHandle (device)) (shaderModule) pAllocator)+  lift $ traceAroundEvent "vkDestroyShaderModule" (vkDestroyShaderModule'+                                                     (deviceHandle (device))+                                                     (shaderModule)+                                                     pAllocator)   pure $ ()  @@ -362,7 +371,8 @@     | Just Refl <- eqT @e @ShaderModuleValidationCacheCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss ShaderModuleCreateInfo es, PokeChain es) => ToCStruct (ShaderModuleCreateInfo es) where+instance ( Extendss ShaderModuleCreateInfo es+         , PokeChain es ) => ToCStruct (ShaderModuleCreateInfo es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ShaderModuleCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)@@ -392,14 +402,16 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss ShaderModuleCreateInfo es, PeekChain es) => FromCStruct (ShaderModuleCreateInfo es) where+instance ( Extendss ShaderModuleCreateInfo es+         , PeekChain es ) => FromCStruct (ShaderModuleCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)     flags <- peek @ShaderModuleCreateFlags ((p `plusPtr` 16 :: Ptr ShaderModuleCreateFlags))     codeSize <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))     pCode <- peek @(Ptr Word32) ((p `plusPtr` 32 :: Ptr (Ptr Word32)))-    code <- packCStringLen (castPtr @Word32 @CChar pCode, fromIntegral $ (coerce @CSize @Word64 codeSize) * 4)+    code <- packCStringLen ( castPtr @Word32 @CChar pCode+                           , fromIntegral $ (coerce @CSize @Word64 codeSize) * 4 )     pure $ ShaderModuleCreateInfo              next flags code 
src/Vulkan/Core10/Shader.hs-boot view
@@ -12,8 +12,10 @@ type role ShaderModuleCreateInfo nominal data ShaderModuleCreateInfo (es :: [Type]) -instance (Extendss ShaderModuleCreateInfo es, PokeChain es) => ToCStruct (ShaderModuleCreateInfo es)+instance ( Extendss ShaderModuleCreateInfo es+         , PokeChain es ) => ToCStruct (ShaderModuleCreateInfo es) instance Show (Chain es) => Show (ShaderModuleCreateInfo es) -instance (Extendss ShaderModuleCreateInfo es, PeekChain es) => FromCStruct (ShaderModuleCreateInfo es)+instance ( Extendss ShaderModuleCreateInfo es+         , PeekChain es ) => FromCStruct (ShaderModuleCreateInfo es) 
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -205,11 +205,19 @@   let vkGetImageSparseMemoryRequirements' = mkVkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirementsPtr   let device' = deviceHandle (device)   pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements" (vkGetImageSparseMemoryRequirements' device' (image) (pPSparseMemoryRequirementCount) (nullPtr))+  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements" (vkGetImageSparseMemoryRequirements'+                                                                  device'+                                                                  (image)+                                                                  (pPSparseMemoryRequirementCount)+                                                                  (nullPtr))   pSparseMemoryRequirementCount <- lift $ peek @Word32 pPSparseMemoryRequirementCount   pPSparseMemoryRequirements <- ContT $ bracket (callocBytes @SparseImageMemoryRequirements ((fromIntegral (pSparseMemoryRequirementCount)) * 48)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSparseMemoryRequirements `advancePtrBytes` (i * 48) :: Ptr SparseImageMemoryRequirements) . ($ ())) [0..(fromIntegral (pSparseMemoryRequirementCount)) - 1]-  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements" (vkGetImageSparseMemoryRequirements' device' (image) (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements)))+  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements" (vkGetImageSparseMemoryRequirements'+                                                                  device'+                                                                  (image)+                                                                  (pPSparseMemoryRequirementCount)+                                                                  ((pPSparseMemoryRequirements)))   pSparseMemoryRequirementCount' <- lift $ peek @Word32 pPSparseMemoryRequirementCount   pSparseMemoryRequirements' <- lift $ generateM (fromIntegral (pSparseMemoryRequirementCount')) (\i -> peekCStruct @SparseImageMemoryRequirements (((pPSparseMemoryRequirements) `advancePtrBytes` (48 * (i)) :: Ptr SparseImageMemoryRequirements)))   pure $ (pSparseMemoryRequirements')@@ -327,18 +335,39 @@                                              -> -- | @tiling@ is the tiling arrangement of the texel blocks in memory.                                                 ImageTiling                                              -> io (("properties" ::: Vector SparseImageFormatProperties))-getPhysicalDeviceSparseImageFormatProperties physicalDevice format type' samples usage tiling = liftIO . evalContT $ do+getPhysicalDeviceSparseImageFormatProperties physicalDevice+                                               format+                                               type'+                                               samples+                                               usage+                                               tiling = liftIO . evalContT $ do   let vkGetPhysicalDeviceSparseImageFormatPropertiesPtr = pVkGetPhysicalDeviceSparseImageFormatProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSparseImageFormatPropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSparseImageFormatProperties is null" Nothing Nothing   let vkGetPhysicalDeviceSparseImageFormatProperties' = mkVkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatPropertiesPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties" (vkGetPhysicalDeviceSparseImageFormatProperties' physicalDevice' (format) (type') (samples) (usage) (tiling) (pPPropertyCount) (nullPtr))+  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties" (vkGetPhysicalDeviceSparseImageFormatProperties'+                                                                              physicalDevice'+                                                                              (format)+                                                                              (type')+                                                                              (samples)+                                                                              (usage)+                                                                              (tiling)+                                                                              (pPPropertyCount)+                                                                              (nullPtr))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @SparseImageFormatProperties ((fromIntegral (pPropertyCount)) * 20)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 20) :: Ptr SparseImageFormatProperties) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties" (vkGetPhysicalDeviceSparseImageFormatProperties' physicalDevice' (format) (type') (samples) (usage) (tiling) (pPPropertyCount) ((pPProperties)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties" (vkGetPhysicalDeviceSparseImageFormatProperties'+                                                                              physicalDevice'+                                                                              (format)+                                                                              (type')+                                                                              (samples)+                                                                              (usage)+                                                                              (tiling)+                                                                              (pPPropertyCount)+                                                                              ((pPProperties)))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @SparseImageFormatProperties (((pPProperties) `advancePtrBytes` (20 * (i)) :: Ptr SparseImageFormatProperties)))   pure $ (pProperties')@@ -488,7 +517,11 @@   let vkQueueBindSparse' = mkVkQueueBindSparse vkQueueBindSparsePtr   pPBindInfo <- ContT $ allocaBytes @(BindSparseInfo _) ((Data.Vector.length (bindInfo)) * 96)   Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindInfo `plusPtr` (96 * (i)) :: Ptr (BindSparseInfo _))) (e) . ($ ())) (bindInfo)-  r <- lift $ traceAroundEvent "vkQueueBindSparse" (vkQueueBindSparse' (queueHandle (queue)) ((fromIntegral (Data.Vector.length $ (bindInfo)) :: Word32)) (forgetExtensions (pPBindInfo)) (fence))+  r <- lift $ traceAroundEvent "vkQueueBindSparse" (vkQueueBindSparse'+                                                      (queueHandle (queue))+                                                      ((fromIntegral (Data.Vector.length $ (bindInfo)) :: Word32))+                                                      (forgetExtensions (pPBindInfo))+                                                      (fence))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -623,7 +656,11 @@     imageMipTailOffset <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))     imageMipTailStride <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))     pure $ SparseImageMemoryRequirements-             formatProperties imageMipTailFirstLod imageMipTailSize imageMipTailOffset imageMipTailStride+             formatProperties+             imageMipTailFirstLod+             imageMipTailSize+             imageMipTailOffset+             imageMipTailStride  instance Storable SparseImageMemoryRequirements where   sizeOf ~_ = 48@@ -1387,7 +1424,8 @@     | Just Refl <- eqT @e @DeviceGroupBindSparseInfo = Just f     | otherwise = Nothing -instance (Extendss BindSparseInfo es, PokeChain es) => ToCStruct (BindSparseInfo es) where+instance ( Extendss BindSparseInfo es+         , PokeChain es ) => ToCStruct (BindSparseInfo es) where   withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BindSparseInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BIND_SPARSE_INFO)@@ -1422,7 +1460,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss BindSparseInfo es, PeekChain es) => FromCStruct (BindSparseInfo es) where+instance ( Extendss BindSparseInfo es+         , PeekChain es ) => FromCStruct (BindSparseInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1442,7 +1481,12 @@     pSignalSemaphores <- peek @(Ptr Semaphore) ((p `plusPtr` 88 :: Ptr (Ptr Semaphore)))     pSignalSemaphores' <- generateM (fromIntegral signalSemaphoreCount) (\i -> peek @Semaphore ((pSignalSemaphores `advancePtrBytes` (8 * (i)) :: Ptr Semaphore)))     pure $ BindSparseInfo-             next pWaitSemaphores' pBufferBinds' pImageOpaqueBinds' pImageBinds' pSignalSemaphores'+             next+             pWaitSemaphores'+             pBufferBinds'+             pImageOpaqueBinds'+             pImageBinds'+             pSignalSemaphores'  instance es ~ '[] => Zero (BindSparseInfo es) where   zero = BindSparseInfo
src/Vulkan/Core10/SparseResourceMemoryManagement.hs-boot view
@@ -21,10 +21,12 @@ type role BindSparseInfo nominal data BindSparseInfo (es :: [Type]) -instance (Extendss BindSparseInfo es, PokeChain es) => ToCStruct (BindSparseInfo es)+instance ( Extendss BindSparseInfo es+         , PokeChain es ) => ToCStruct (BindSparseInfo es) instance Show (Chain es) => Show (BindSparseInfo es) -instance (Extendss BindSparseInfo es, PeekChain es) => FromCStruct (BindSparseInfo es)+instance ( Extendss BindSparseInfo es+         , PeekChain es ) => FromCStruct (BindSparseInfo es)   data ImageSubresource
src/Vulkan/Core11/DeviceInitialization.hs view
@@ -73,7 +73,8 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumerateInstanceVersion is null" Nothing Nothing   let vkEnumerateInstanceVersion' = mkVkEnumerateInstanceVersion vkEnumerateInstanceVersionPtr   pPApiVersion <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumerateInstanceVersion" (vkEnumerateInstanceVersion' (pPApiVersion))+  r <- lift $ traceAroundEvent "vkEnumerateInstanceVersion" (vkEnumerateInstanceVersion'+                                                               (pPApiVersion))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pApiVersion <- lift $ peek @Word32 pPApiVersion   pure $ (pApiVersion)
src/Vulkan/Core11/Enums/ChromaLocation.hs view
@@ -29,13 +29,18 @@ -- | 'CHROMA_LOCATION_COSITED_EVEN' specifies that downsampled chroma samples -- are aligned with luma samples with even coordinates. pattern CHROMA_LOCATION_COSITED_EVEN = ChromaLocation 0+ -- | 'CHROMA_LOCATION_MIDPOINT' specifies that downsampled chroma samples are -- located half way between each even luma sample and the nearest higher -- odd luma sample.-pattern CHROMA_LOCATION_MIDPOINT     = ChromaLocation 1-{-# complete CHROMA_LOCATION_COSITED_EVEN,-             CHROMA_LOCATION_MIDPOINT :: ChromaLocation #-}+pattern CHROMA_LOCATION_MIDPOINT = ChromaLocation 1 +{-# COMPLETE+  CHROMA_LOCATION_COSITED_EVEN+  , CHROMA_LOCATION_MIDPOINT ::+    ChromaLocation+  #-}+ conNameChromaLocation :: String conNameChromaLocation = "ChromaLocation" @@ -43,15 +48,24 @@ enumPrefixChromaLocation = "CHROMA_LOCATION_"  showTableChromaLocation :: [(ChromaLocation, String)]-showTableChromaLocation = [(CHROMA_LOCATION_COSITED_EVEN, "COSITED_EVEN"), (CHROMA_LOCATION_MIDPOINT, "MIDPOINT")]+showTableChromaLocation =+  [ (CHROMA_LOCATION_COSITED_EVEN, "COSITED_EVEN")+  , (CHROMA_LOCATION_MIDPOINT, "MIDPOINT")+  ]  instance Show ChromaLocation where-  showsPrec = enumShowsPrec enumPrefixChromaLocation-                            showTableChromaLocation-                            conNameChromaLocation-                            (\(ChromaLocation x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixChromaLocation+      showTableChromaLocation+      conNameChromaLocation+      (\(ChromaLocation x) -> x)+      (showsPrec 11)  instance Read ChromaLocation where-  readPrec = enumReadPrec enumPrefixChromaLocation showTableChromaLocation conNameChromaLocation ChromaLocation-+  readPrec =+    enumReadPrec+      enumPrefixChromaLocation+      showTableChromaLocation+      conNameChromaLocation+      ChromaLocation
src/Vulkan/Core11/Enums/CommandPoolTrimFlags.hs view
@@ -28,8 +28,6 @@ newtype CommandPoolTrimFlags = CommandPoolTrimFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameCommandPoolTrimFlags :: String conNameCommandPoolTrimFlags = "CommandPoolTrimFlags" @@ -40,15 +38,18 @@ showTableCommandPoolTrimFlags = []  instance Show CommandPoolTrimFlags where-  showsPrec = enumShowsPrec enumPrefixCommandPoolTrimFlags-                            showTableCommandPoolTrimFlags-                            conNameCommandPoolTrimFlags-                            (\(CommandPoolTrimFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCommandPoolTrimFlags+      showTableCommandPoolTrimFlags+      conNameCommandPoolTrimFlags+      (\(CommandPoolTrimFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CommandPoolTrimFlags where-  readPrec = enumReadPrec enumPrefixCommandPoolTrimFlags-                          showTableCommandPoolTrimFlags-                          conNameCommandPoolTrimFlags-                          CommandPoolTrimFlags-+  readPrec =+    enumReadPrec+      enumPrefixCommandPoolTrimFlags+      showTableCommandPoolTrimFlags+      conNameCommandPoolTrimFlags+      CommandPoolTrimFlags
src/Vulkan/Core11/Enums/DescriptorUpdateTemplateCreateFlags.hs view
@@ -27,8 +27,6 @@ newtype DescriptorUpdateTemplateCreateFlags = DescriptorUpdateTemplateCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDescriptorUpdateTemplateCreateFlags :: String conNameDescriptorUpdateTemplateCreateFlags = "DescriptorUpdateTemplateCreateFlags" @@ -39,15 +37,18 @@ showTableDescriptorUpdateTemplateCreateFlags = []  instance Show DescriptorUpdateTemplateCreateFlags where-  showsPrec = enumShowsPrec enumPrefixDescriptorUpdateTemplateCreateFlags-                            showTableDescriptorUpdateTemplateCreateFlags-                            conNameDescriptorUpdateTemplateCreateFlags-                            (\(DescriptorUpdateTemplateCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorUpdateTemplateCreateFlags+      showTableDescriptorUpdateTemplateCreateFlags+      conNameDescriptorUpdateTemplateCreateFlags+      (\(DescriptorUpdateTemplateCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DescriptorUpdateTemplateCreateFlags where-  readPrec = enumReadPrec enumPrefixDescriptorUpdateTemplateCreateFlags-                          showTableDescriptorUpdateTemplateCreateFlags-                          conNameDescriptorUpdateTemplateCreateFlags-                          DescriptorUpdateTemplateCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorUpdateTemplateCreateFlags+      showTableDescriptorUpdateTemplateCreateFlags+      conNameDescriptorUpdateTemplateCreateFlags+      DescriptorUpdateTemplateCreateFlags
src/Vulkan/Core11/Enums/DescriptorUpdateTemplateType.hs view
@@ -26,14 +26,19 @@  -- | 'DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET' specifies that the -- descriptor update template will be used for descriptor set updates only.-pattern DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET       = DescriptorUpdateTemplateType 0+pattern DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = DescriptorUpdateTemplateType 0+ -- | 'DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR' specifies that -- the descriptor update template will be used for push descriptor updates -- only. pattern DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = DescriptorUpdateTemplateType 1-{-# complete DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,-             DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR :: DescriptorUpdateTemplateType #-} +{-# COMPLETE+  DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET+  , DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR ::+    DescriptorUpdateTemplateType+  #-}+ conNameDescriptorUpdateTemplateType :: String conNameDescriptorUpdateTemplateType = "DescriptorUpdateTemplateType" @@ -42,20 +47,29 @@  showTableDescriptorUpdateTemplateType :: [(DescriptorUpdateTemplateType, String)] showTableDescriptorUpdateTemplateType =-  [ (DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET      , "DESCRIPTOR_SET")-  , (DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, "PUSH_DESCRIPTORS_KHR")+  [+    ( DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET+    , "DESCRIPTOR_SET"+    )+  ,+    ( DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR+    , "PUSH_DESCRIPTORS_KHR"+    )   ]  instance Show DescriptorUpdateTemplateType where-  showsPrec = enumShowsPrec enumPrefixDescriptorUpdateTemplateType-                            showTableDescriptorUpdateTemplateType-                            conNameDescriptorUpdateTemplateType-                            (\(DescriptorUpdateTemplateType x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorUpdateTemplateType+      showTableDescriptorUpdateTemplateType+      conNameDescriptorUpdateTemplateType+      (\(DescriptorUpdateTemplateType x) -> x)+      (showsPrec 11)  instance Read DescriptorUpdateTemplateType where-  readPrec = enumReadPrec enumPrefixDescriptorUpdateTemplateType-                          showTableDescriptorUpdateTemplateType-                          conNameDescriptorUpdateTemplateType-                          DescriptorUpdateTemplateType-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorUpdateTemplateType+      showTableDescriptorUpdateTemplateType+      conNameDescriptorUpdateTemplateType+      DescriptorUpdateTemplateType
src/Vulkan/Core11/Enums/ExternalFenceFeatureFlagBits.hs view
@@ -33,6 +33,7 @@ -- | 'EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT' specifies handles of this type -- /can/ be exported from Vulkan fence objects. pattern EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = ExternalFenceFeatureFlagBits 0x00000001+ -- | 'EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT' specifies handles of this type -- /can/ be imported to Vulkan fence objects. pattern EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = ExternalFenceFeatureFlagBits 0x00000002@@ -45,18 +46,29 @@  showTableExternalFenceFeatureFlagBits :: [(ExternalFenceFeatureFlagBits, String)] showTableExternalFenceFeatureFlagBits =-  [(EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, "EXPORTABLE_BIT"), (EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT, "IMPORTABLE_BIT")]+  [+    ( EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT+    , "EXPORTABLE_BIT"+    )+  ,+    ( EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT+    , "IMPORTABLE_BIT"+    )+  ]  instance Show ExternalFenceFeatureFlagBits where-  showsPrec = enumShowsPrec enumPrefixExternalFenceFeatureFlagBits-                            showTableExternalFenceFeatureFlagBits-                            conNameExternalFenceFeatureFlagBits-                            (\(ExternalFenceFeatureFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalFenceFeatureFlagBits+      showTableExternalFenceFeatureFlagBits+      conNameExternalFenceFeatureFlagBits+      (\(ExternalFenceFeatureFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalFenceFeatureFlagBits where-  readPrec = enumReadPrec enumPrefixExternalFenceFeatureFlagBits-                          showTableExternalFenceFeatureFlagBits-                          conNameExternalFenceFeatureFlagBits-                          ExternalFenceFeatureFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixExternalFenceFeatureFlagBits+      showTableExternalFenceFeatureFlagBits+      conNameExternalFenceFeatureFlagBits+      ExternalFenceFeatureFlagBits
src/Vulkan/Core11/Enums/ExternalFenceHandleTypeFlagBits.hs view
@@ -64,14 +64,16 @@ -- Additionally, it /must/ be transportable over a socket using an -- @SCM_RIGHTS@ control message. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan fence object.-pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT        = ExternalFenceHandleTypeFlagBits 0x00000001+pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = ExternalFenceHandleTypeFlagBits 0x00000001+ -- | 'EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT' specifies an NT handle -- that has only limited valid usage outside of Vulkan and other compatible -- APIs. It /must/ be compatible with the functions @DuplicateHandle@, -- @CloseHandle@, @CompareObjectHandles@, @GetHandleInformation@, and -- @SetHandleInformation@. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan fence object.-pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT     = ExternalFenceHandleTypeFlagBits 0x00000002+pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = ExternalFenceHandleTypeFlagBits 0x00000002+ -- | 'EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' specifies a global -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It@@ -79,6 +81,7 @@ -- represented by its Vulkan fence object, and will therefore become -- invalid when all Vulkan fence objects associated with it are destroyed. pattern EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalFenceHandleTypeFlagBits 0x00000004+ -- | 'EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file -- descriptor handle to a Linux Sync File or Android Fence. It can be used -- with any native API accepting a valid sync file or fence as input. It@@ -86,7 +89,7 @@ -- with the file descriptor. Implementations which support importing this -- handle type /must/ accept any type of sync or fence FD supported by the -- native system they are running on.-pattern EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT          = ExternalFenceHandleTypeFlagBits 0x00000008+pattern EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = ExternalFenceHandleTypeFlagBits 0x00000008  conNameExternalFenceHandleTypeFlagBits :: String conNameExternalFenceHandleTypeFlagBits = "ExternalFenceHandleTypeFlagBits"@@ -96,22 +99,37 @@  showTableExternalFenceHandleTypeFlagBits :: [(ExternalFenceHandleTypeFlagBits, String)] showTableExternalFenceHandleTypeFlagBits =-  [ (EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT       , "OPAQUE_FD_BIT")-  , (EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT    , "OPAQUE_WIN32_BIT")-  , (EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, "OPAQUE_WIN32_KMT_BIT")-  , (EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT         , "SYNC_FD_BIT")+  [+    ( EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT+    , "OPAQUE_FD_BIT"+    )+  ,+    ( EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT+    , "OPAQUE_WIN32_BIT"+    )+  ,+    ( EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+    , "OPAQUE_WIN32_KMT_BIT"+    )+  ,+    ( EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT+    , "SYNC_FD_BIT"+    )   ]  instance Show ExternalFenceHandleTypeFlagBits where-  showsPrec = enumShowsPrec enumPrefixExternalFenceHandleTypeFlagBits-                            showTableExternalFenceHandleTypeFlagBits-                            conNameExternalFenceHandleTypeFlagBits-                            (\(ExternalFenceHandleTypeFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalFenceHandleTypeFlagBits+      showTableExternalFenceHandleTypeFlagBits+      conNameExternalFenceHandleTypeFlagBits+      (\(ExternalFenceHandleTypeFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalFenceHandleTypeFlagBits where-  readPrec = enumReadPrec enumPrefixExternalFenceHandleTypeFlagBits-                          showTableExternalFenceHandleTypeFlagBits-                          conNameExternalFenceHandleTypeFlagBits-                          ExternalFenceHandleTypeFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixExternalFenceHandleTypeFlagBits+      showTableExternalFenceHandleTypeFlagBits+      conNameExternalFenceHandleTypeFlagBits+      ExternalFenceHandleTypeFlagBits
src/Vulkan/Core11/Enums/ExternalMemoryFeatureFlagBits.hs view
@@ -57,12 +57,14 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo' -- to create (or import) a dedicated allocation for the image or buffer. pattern EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = ExternalMemoryFeatureFlagBits 0x00000001+ -- | 'EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT' specifies that handles of this -- type /can/ be exported from Vulkan memory objects.-pattern EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT     = ExternalMemoryFeatureFlagBits 0x00000002+pattern EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = ExternalMemoryFeatureFlagBits 0x00000002+ -- | 'EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT' specifies that handles of this -- type /can/ be imported as Vulkan memory objects.-pattern EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT     = ExternalMemoryFeatureFlagBits 0x00000004+pattern EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = ExternalMemoryFeatureFlagBits 0x00000004  conNameExternalMemoryFeatureFlagBits :: String conNameExternalMemoryFeatureFlagBits = "ExternalMemoryFeatureFlagBits"@@ -72,21 +74,33 @@  showTableExternalMemoryFeatureFlagBits :: [(ExternalMemoryFeatureFlagBits, String)] showTableExternalMemoryFeatureFlagBits =-  [ (EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, "DEDICATED_ONLY_BIT")-  , (EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT    , "EXPORTABLE_BIT")-  , (EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT    , "IMPORTABLE_BIT")+  [+    ( EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT+    , "DEDICATED_ONLY_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT+    , "EXPORTABLE_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT+    , "IMPORTABLE_BIT"+    )   ]  instance Show ExternalMemoryFeatureFlagBits where-  showsPrec = enumShowsPrec enumPrefixExternalMemoryFeatureFlagBits-                            showTableExternalMemoryFeatureFlagBits-                            conNameExternalMemoryFeatureFlagBits-                            (\(ExternalMemoryFeatureFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalMemoryFeatureFlagBits+      showTableExternalMemoryFeatureFlagBits+      conNameExternalMemoryFeatureFlagBits+      (\(ExternalMemoryFeatureFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalMemoryFeatureFlagBits where-  readPrec = enumReadPrec enumPrefixExternalMemoryFeatureFlagBits-                          showTableExternalMemoryFeatureFlagBits-                          conNameExternalMemoryFeatureFlagBits-                          ExternalMemoryFeatureFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixExternalMemoryFeatureFlagBits+      showTableExternalMemoryFeatureFlagBits+      conNameExternalMemoryFeatureFlagBits+      ExternalMemoryFeatureFlagBits
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -121,61 +121,72 @@ -- Additionally, it /must/ be transportable over a socket using an -- @SCM_RIGHTS@ control message. It owns a reference to the underlying -- memory resource represented by its Vulkan memory object.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT                       = ExternalMemoryHandleTypeFlagBits 0x00000001+pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = ExternalMemoryHandleTypeFlagBits 0x00000001+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT' specifies an NT handle -- that has only limited valid usage outside of Vulkan and other compatible -- APIs. It /must/ be compatible with the functions @DuplicateHandle@, -- @CloseHandle@, @CompareObjectHandles@, @GetHandleInformation@, and -- @SetHandleInformation@. It owns a reference to the underlying memory -- resource represented by its Vulkan memory object.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT                    = ExternalMemoryHandleTypeFlagBits 0x00000002+pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = ExternalMemoryHandleTypeFlagBits 0x00000002+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' specifies a global -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It -- does not own a reference to the underlying memory resource represented -- by its Vulkan memory object, and will therefore become invalid when all -- Vulkan memory objects associated with it are destroyed.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT                = ExternalMemoryHandleTypeFlagBits 0x00000004+pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalMemoryHandleTypeFlagBits 0x00000004+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT' specifies an NT handle -- returned by @IDXGIResource1@::@CreateSharedHandle@ referring to a -- Direct3D 10 or 11 texture resource. It owns a reference to the memory -- used by the Direct3D resource.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT                   = ExternalMemoryHandleTypeFlagBits 0x00000008+pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = ExternalMemoryHandleTypeFlagBits 0x00000008+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT' specifies a global -- share handle returned by @IDXGIResource@::@GetSharedHandle@ referring to -- a Direct3D 10 or 11 texture resource. It does not own a reference to the -- underlying Direct3D resource, and will therefore become invalid when all -- Vulkan memory objects and Direct3D resources associated with it are -- destroyed.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT               = ExternalMemoryHandleTypeFlagBits 0x00000010+pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = ExternalMemoryHandleTypeFlagBits 0x00000010+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D -- 12 heap resource. It owns a reference to the resources used by the -- Direct3D heap.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT                      = ExternalMemoryHandleTypeFlagBits 0x00000020+pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = ExternalMemoryHandleTypeFlagBits 0x00000020+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D -- 12 committed resource. It owns a reference to the memory used by the -- Direct3D resource.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT                  = ExternalMemoryHandleTypeFlagBits 0x00000040+pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = ExternalMemoryHandleTypeFlagBits 0x00000040+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV' is a handle to an -- allocation accessible by remote devices. It owns a reference to the -- underlying memory resource represented by its Vulkan memory object.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV                 = ExternalMemoryHandleTypeFlagBits 0x00001000+pattern EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = ExternalMemoryHandleTypeFlagBits 0x00001000+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA' is a Zircon handle -- to a virtual memory object.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA              = ExternalMemoryHandleTypeFlagBits 0x00000800+pattern EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = ExternalMemoryHandleTypeFlagBits 0x00000800+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT' -- specifies a host pointer to /host mapped foreign memory/. It does not -- own a reference to the underlying memory resource, and will therefore -- become invalid if the foreign memory is unmapped or otherwise becomes no -- longer available.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT  = ExternalMemoryHandleTypeFlagBits 0x00000100+pattern EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = ExternalMemoryHandleTypeFlagBits 0x00000100+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT' specifies a host -- pointer returned by a host memory allocation command. It does not own a -- reference to the underlying memory resource, and will therefore become -- invalid if the host memory is freed.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT             = ExternalMemoryHandleTypeFlagBits 0x00000080+pattern EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = ExternalMemoryHandleTypeFlagBits 0x00000080+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID' -- specifies an -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.AHardwareBuffer'@@ -183,10 +194,11 @@ -- <https://registry.khronos.org/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 -- Linux dma_buf. It owns a reference to the underlying memory resource -- represented by its Vulkan memory object.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT                     = ExternalMemoryHandleTypeFlagBits 0x00000200+pattern EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = ExternalMemoryHandleTypeFlagBits 0x00000200  conNameExternalMemoryHandleTypeFlagBits :: String conNameExternalMemoryHandleTypeFlagBits = "ExternalMemoryHandleTypeFlagBits"@@ -196,31 +208,73 @@  showTableExternalMemoryHandleTypeFlagBits :: [(ExternalMemoryHandleTypeFlagBits, String)] showTableExternalMemoryHandleTypeFlagBits =-  [ (EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT                      , "OPAQUE_FD_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT                   , "OPAQUE_WIN32_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT               , "OPAQUE_WIN32_KMT_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT                  , "D3D11_TEXTURE_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT              , "D3D11_TEXTURE_KMT_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT                     , "D3D12_HEAP_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT                 , "D3D12_RESOURCE_BIT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV                , "RDMA_ADDRESS_BIT_NV")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA             , "ZIRCON_VMO_BIT_FUCHSIA")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT , "HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT            , "HOST_ALLOCATION_BIT_EXT")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, "ANDROID_HARDWARE_BUFFER_BIT_ANDROID")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT                    , "DMA_BUF_BIT_EXT")+  [+    ( EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT+    , "OPAQUE_FD_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT+    , "OPAQUE_WIN32_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+    , "OPAQUE_WIN32_KMT_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT+    , "D3D11_TEXTURE_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT+    , "D3D11_TEXTURE_KMT_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT+    , "D3D12_HEAP_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+    , "D3D12_RESOURCE_BIT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV+    , "RDMA_ADDRESS_BIT_NV"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA+    , "ZIRCON_VMO_BIT_FUCHSIA"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT+    , "HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT+    , "HOST_ALLOCATION_BIT_EXT"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID+    , "ANDROID_HARDWARE_BUFFER_BIT_ANDROID"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT+    , "DMA_BUF_BIT_EXT"+    )   ]  instance Show ExternalMemoryHandleTypeFlagBits where-  showsPrec = enumShowsPrec enumPrefixExternalMemoryHandleTypeFlagBits-                            showTableExternalMemoryHandleTypeFlagBits-                            conNameExternalMemoryHandleTypeFlagBits-                            (\(ExternalMemoryHandleTypeFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalMemoryHandleTypeFlagBits+      showTableExternalMemoryHandleTypeFlagBits+      conNameExternalMemoryHandleTypeFlagBits+      (\(ExternalMemoryHandleTypeFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalMemoryHandleTypeFlagBits where-  readPrec = enumReadPrec enumPrefixExternalMemoryHandleTypeFlagBits-                          showTableExternalMemoryHandleTypeFlagBits-                          conNameExternalMemoryHandleTypeFlagBits-                          ExternalMemoryHandleTypeFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixExternalMemoryHandleTypeFlagBits+      showTableExternalMemoryHandleTypeFlagBits+      conNameExternalMemoryHandleTypeFlagBits+      ExternalMemoryHandleTypeFlagBits
src/Vulkan/Core11/Enums/ExternalSemaphoreFeatureFlagBits.hs view
@@ -33,6 +33,7 @@ -- | 'EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT' specifies that handles of -- this type /can/ be exported from Vulkan semaphore objects. pattern EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = ExternalSemaphoreFeatureFlagBits 0x00000001+ -- | 'EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT' specifies that handles of -- this type /can/ be imported as Vulkan semaphore objects. pattern EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = ExternalSemaphoreFeatureFlagBits 0x00000002@@ -45,20 +46,29 @@  showTableExternalSemaphoreFeatureFlagBits :: [(ExternalSemaphoreFeatureFlagBits, String)] showTableExternalSemaphoreFeatureFlagBits =-  [ (EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, "EXPORTABLE_BIT")-  , (EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT, "IMPORTABLE_BIT")+  [+    ( EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT+    , "EXPORTABLE_BIT"+    )+  ,+    ( EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT+    , "IMPORTABLE_BIT"+    )   ]  instance Show ExternalSemaphoreFeatureFlagBits where-  showsPrec = enumShowsPrec enumPrefixExternalSemaphoreFeatureFlagBits-                            showTableExternalSemaphoreFeatureFlagBits-                            conNameExternalSemaphoreFeatureFlagBits-                            (\(ExternalSemaphoreFeatureFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalSemaphoreFeatureFlagBits+      showTableExternalSemaphoreFeatureFlagBits+      conNameExternalSemaphoreFeatureFlagBits+      (\(ExternalSemaphoreFeatureFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalSemaphoreFeatureFlagBits where-  readPrec = enumReadPrec enumPrefixExternalSemaphoreFeatureFlagBits-                          showTableExternalSemaphoreFeatureFlagBits-                          conNameExternalSemaphoreFeatureFlagBits-                          ExternalSemaphoreFeatureFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixExternalSemaphoreFeatureFlagBits+      showTableExternalSemaphoreFeatureFlagBits+      conNameExternalSemaphoreFeatureFlagBits+      ExternalSemaphoreFeatureFlagBits
src/Vulkan/Core11/Enums/ExternalSemaphoreHandleTypeFlagBits.hs view
@@ -87,14 +87,16 @@ -- Additionally, it /must/ be transportable over a socket using an -- @SCM_RIGHTS@ control message. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan semaphore object.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT            = ExternalSemaphoreHandleTypeFlagBits 0x00000001+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000001+ -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT' specifies an NT handle -- that has only limited valid usage outside of Vulkan and other compatible -- APIs. It /must/ be compatible with the functions @DuplicateHandle@, -- @CloseHandle@, @CompareObjectHandles@, @GetHandleInformation@, and -- @SetHandleInformation@. It owns a reference to the underlying -- synchronization primitive represented by its Vulkan semaphore object.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT         = ExternalSemaphoreHandleTypeFlagBits 0x00000002+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000002+ -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT' specifies a global -- share handle that has only limited valid usage outside of Vulkan and -- other compatible APIs. It is not compatible with any native APIs. It@@ -102,13 +104,15 @@ -- represented by its Vulkan semaphore object, and will therefore become -- invalid when all Vulkan semaphore objects associated with it are -- destroyed.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT     = ExternalSemaphoreHandleTypeFlagBits 0x00000004+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000004+ -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT' specifies an NT handle -- returned by @ID3D12Device@::@CreateSharedHandle@ referring to a Direct3D -- 12 fence, or @ID3D11Device5@::'Vulkan.Core10.Fence.createFence' -- referring to a Direct3D 11 fence. It owns a reference to the underlying -- synchronization primitive associated with the Direct3D fence.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT          = ExternalSemaphoreHandleTypeFlagBits 0x00000008+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000008+ -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT' specifies a POSIX file -- descriptor handle to a Linux Sync File or Android Fence object. It can -- be used with any native API accepting a valid sync file or fence as@@ -116,7 +120,8 @@ -- associated with the file descriptor. Implementations which support -- importing this handle type /must/ accept any type of sync or fence FD -- supported by the native system they are running on.-pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT              = ExternalSemaphoreHandleTypeFlagBits 0x00000010+pattern EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = ExternalSemaphoreHandleTypeFlagBits 0x00000010+ -- | 'EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA' specifies a -- handle to a Zircon event object. It can be used with any native API that -- accepts a Zircon event handle. Zircon event handles are created with@@ -132,24 +137,45 @@  showTableExternalSemaphoreHandleTypeFlagBits :: [(ExternalSemaphoreHandleTypeFlagBits, String)] showTableExternalSemaphoreHandleTypeFlagBits =-  [ (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT           , "OPAQUE_FD_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT        , "OPAQUE_WIN32_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT    , "OPAQUE_WIN32_KMT_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT         , "D3D12_FENCE_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT             , "SYNC_FD_BIT")-  , (EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA, "ZIRCON_EVENT_BIT_FUCHSIA")+  [+    ( EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT+    , "OPAQUE_FD_BIT"+    )+  ,+    ( EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT+    , "OPAQUE_WIN32_BIT"+    )+  ,+    ( EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT+    , "OPAQUE_WIN32_KMT_BIT"+    )+  ,+    ( EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT+    , "D3D12_FENCE_BIT"+    )+  ,+    ( EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT+    , "SYNC_FD_BIT"+    )+  ,+    ( EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA+    , "ZIRCON_EVENT_BIT_FUCHSIA"+    )   ]  instance Show ExternalSemaphoreHandleTypeFlagBits where-  showsPrec = enumShowsPrec enumPrefixExternalSemaphoreHandleTypeFlagBits-                            showTableExternalSemaphoreHandleTypeFlagBits-                            conNameExternalSemaphoreHandleTypeFlagBits-                            (\(ExternalSemaphoreHandleTypeFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalSemaphoreHandleTypeFlagBits+      showTableExternalSemaphoreHandleTypeFlagBits+      conNameExternalSemaphoreHandleTypeFlagBits+      (\(ExternalSemaphoreHandleTypeFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalSemaphoreHandleTypeFlagBits where-  readPrec = enumReadPrec enumPrefixExternalSemaphoreHandleTypeFlagBits-                          showTableExternalSemaphoreHandleTypeFlagBits-                          conNameExternalSemaphoreHandleTypeFlagBits-                          ExternalSemaphoreHandleTypeFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixExternalSemaphoreHandleTypeFlagBits+      showTableExternalSemaphoreHandleTypeFlagBits+      conNameExternalSemaphoreHandleTypeFlagBits+      ExternalSemaphoreHandleTypeFlagBits
src/Vulkan/Core11/Enums/FenceImportFlagBits.hs view
@@ -45,15 +45,18 @@ showTableFenceImportFlagBits = [(FENCE_IMPORT_TEMPORARY_BIT, "")]  instance Show FenceImportFlagBits where-  showsPrec = enumShowsPrec enumPrefixFenceImportFlagBits-                            showTableFenceImportFlagBits-                            conNameFenceImportFlagBits-                            (\(FenceImportFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixFenceImportFlagBits+      showTableFenceImportFlagBits+      conNameFenceImportFlagBits+      (\(FenceImportFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read FenceImportFlagBits where-  readPrec = enumReadPrec enumPrefixFenceImportFlagBits-                          showTableFenceImportFlagBits-                          conNameFenceImportFlagBits-                          FenceImportFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixFenceImportFlagBits+      showTableFenceImportFlagBits+      conNameFenceImportFlagBits+      FenceImportFlagBits
src/Vulkan/Core11/Enums/MemoryAllocateFlagBits.hs view
@@ -34,20 +34,22 @@ -- | 'MEMORY_ALLOCATE_DEVICE_MASK_BIT' specifies that memory will be -- allocated for the devices in -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo'::@deviceMask@.-pattern MEMORY_ALLOCATE_DEVICE_MASK_BIT                   = MemoryAllocateFlagBits 0x00000001+pattern MEMORY_ALLOCATE_DEVICE_MASK_BIT = MemoryAllocateFlagBits 0x00000001+ -- | 'MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT' specifies that the -- memory’s address /can/ be saved and reused on a subsequent run (e.g. for -- trace capture and replay), see -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo' -- for more detail. pattern MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = MemoryAllocateFlagBits 0x00000004+ -- | 'MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT' specifies that the memory /can/ be -- attached to a buffer object created with the -- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT' -- bit set in @usage@, and that the memory handle /can/ be used to retrieve -- an opaque address via -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getDeviceMemoryOpaqueCaptureAddress'.-pattern MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT                = MemoryAllocateFlagBits 0x00000002+pattern MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = MemoryAllocateFlagBits 0x00000002  conNameMemoryAllocateFlagBits :: String conNameMemoryAllocateFlagBits = "MemoryAllocateFlagBits"@@ -57,21 +59,33 @@  showTableMemoryAllocateFlagBits :: [(MemoryAllocateFlagBits, String)] showTableMemoryAllocateFlagBits =-  [ (MEMORY_ALLOCATE_DEVICE_MASK_BIT                  , "MASK_BIT")-  , (MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, "ADDRESS_CAPTURE_REPLAY_BIT")-  , (MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT               , "ADDRESS_BIT")+  [+    ( MEMORY_ALLOCATE_DEVICE_MASK_BIT+    , "MASK_BIT"+    )+  ,+    ( MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT+    , "ADDRESS_CAPTURE_REPLAY_BIT"+    )+  ,+    ( MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT+    , "ADDRESS_BIT"+    )   ]  instance Show MemoryAllocateFlagBits where-  showsPrec = enumShowsPrec enumPrefixMemoryAllocateFlagBits-                            showTableMemoryAllocateFlagBits-                            conNameMemoryAllocateFlagBits-                            (\(MemoryAllocateFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixMemoryAllocateFlagBits+      showTableMemoryAllocateFlagBits+      conNameMemoryAllocateFlagBits+      (\(MemoryAllocateFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read MemoryAllocateFlagBits where-  readPrec = enumReadPrec enumPrefixMemoryAllocateFlagBits-                          showTableMemoryAllocateFlagBits-                          conNameMemoryAllocateFlagBits-                          MemoryAllocateFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixMemoryAllocateFlagBits+      showTableMemoryAllocateFlagBits+      conNameMemoryAllocateFlagBits+      MemoryAllocateFlagBits
src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs view
@@ -53,13 +53,16 @@  -- | 'PEER_MEMORY_FEATURE_COPY_SRC_BIT' specifies that the memory /can/ be -- accessed as the source of any @vkCmdCopy*@ command.-pattern PEER_MEMORY_FEATURE_COPY_SRC_BIT    = PeerMemoryFeatureFlagBits 0x00000001+pattern PEER_MEMORY_FEATURE_COPY_SRC_BIT = PeerMemoryFeatureFlagBits 0x00000001+ -- | 'PEER_MEMORY_FEATURE_COPY_DST_BIT' specifies that the memory /can/ be -- accessed as the destination of any @vkCmdCopy*@ command.-pattern PEER_MEMORY_FEATURE_COPY_DST_BIT    = PeerMemoryFeatureFlagBits 0x00000002+pattern PEER_MEMORY_FEATURE_COPY_DST_BIT = PeerMemoryFeatureFlagBits 0x00000002+ -- | 'PEER_MEMORY_FEATURE_GENERIC_SRC_BIT' specifies that the memory /can/ be -- read as any memory access type. pattern PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = PeerMemoryFeatureFlagBits 0x00000004+ -- | 'PEER_MEMORY_FEATURE_GENERIC_DST_BIT' specifies that the memory /can/ be -- written as any memory access type. Shader atomics are considered to be -- writes.@@ -73,22 +76,37 @@  showTablePeerMemoryFeatureFlagBits :: [(PeerMemoryFeatureFlagBits, String)] showTablePeerMemoryFeatureFlagBits =-  [ (PEER_MEMORY_FEATURE_COPY_SRC_BIT   , "COPY_SRC_BIT")-  , (PEER_MEMORY_FEATURE_COPY_DST_BIT   , "COPY_DST_BIT")-  , (PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, "GENERIC_SRC_BIT")-  , (PEER_MEMORY_FEATURE_GENERIC_DST_BIT, "GENERIC_DST_BIT")+  [+    ( PEER_MEMORY_FEATURE_COPY_SRC_BIT+    , "COPY_SRC_BIT"+    )+  ,+    ( PEER_MEMORY_FEATURE_COPY_DST_BIT+    , "COPY_DST_BIT"+    )+  ,+    ( PEER_MEMORY_FEATURE_GENERIC_SRC_BIT+    , "GENERIC_SRC_BIT"+    )+  ,+    ( PEER_MEMORY_FEATURE_GENERIC_DST_BIT+    , "GENERIC_DST_BIT"+    )   ]  instance Show PeerMemoryFeatureFlagBits where-  showsPrec = enumShowsPrec enumPrefixPeerMemoryFeatureFlagBits-                            showTablePeerMemoryFeatureFlagBits-                            conNamePeerMemoryFeatureFlagBits-                            (\(PeerMemoryFeatureFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPeerMemoryFeatureFlagBits+      showTablePeerMemoryFeatureFlagBits+      conNamePeerMemoryFeatureFlagBits+      (\(PeerMemoryFeatureFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PeerMemoryFeatureFlagBits where-  readPrec = enumReadPrec enumPrefixPeerMemoryFeatureFlagBits-                          showTablePeerMemoryFeatureFlagBits-                          conNamePeerMemoryFeatureFlagBits-                          PeerMemoryFeatureFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPeerMemoryFeatureFlagBits+      showTablePeerMemoryFeatureFlagBits+      conNamePeerMemoryFeatureFlagBits+      PeerMemoryFeatureFlagBits
src/Vulkan/Core11/Enums/PointClippingBehavior.hs view
@@ -27,14 +27,19 @@ -- | 'POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES' specifies that the primitive -- is discarded if the vertex lies outside any clip plane, including the -- planes bounding the view volume.-pattern POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES       = PointClippingBehavior 0+pattern POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = PointClippingBehavior 0+ -- | 'POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY' specifies that the -- primitive is discarded only if the vertex lies outside any user clip -- plane. pattern POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = PointClippingBehavior 1-{-# complete POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,-             POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY :: PointClippingBehavior #-} +{-# COMPLETE+  POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES+  , POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY ::+    PointClippingBehavior+  #-}+ conNamePointClippingBehavior :: String conNamePointClippingBehavior = "PointClippingBehavior" @@ -43,20 +48,29 @@  showTablePointClippingBehavior :: [(PointClippingBehavior, String)] showTablePointClippingBehavior =-  [ (POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES      , "ALL_CLIP_PLANES")-  , (POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, "USER_CLIP_PLANES_ONLY")+  [+    ( POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES+    , "ALL_CLIP_PLANES"+    )+  ,+    ( POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY+    , "USER_CLIP_PLANES_ONLY"+    )   ]  instance Show PointClippingBehavior where-  showsPrec = enumShowsPrec enumPrefixPointClippingBehavior-                            showTablePointClippingBehavior-                            conNamePointClippingBehavior-                            (\(PointClippingBehavior x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPointClippingBehavior+      showTablePointClippingBehavior+      conNamePointClippingBehavior+      (\(PointClippingBehavior x) -> x)+      (showsPrec 11)  instance Read PointClippingBehavior where-  readPrec = enumReadPrec enumPrefixPointClippingBehavior-                          showTablePointClippingBehavior-                          conNamePointClippingBehavior-                          PointClippingBehavior-+  readPrec =+    enumReadPrec+      enumPrefixPointClippingBehavior+      showTablePointClippingBehavior+      conNamePointClippingBehavior+      PointClippingBehavior
src/Vulkan/Core11/Enums/SamplerYcbcrModelConversion.hs view
@@ -90,21 +90,29 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY"-pattern SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY   = SamplerYcbcrModelConversion 0+pattern SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = SamplerYcbcrModelConversion 0+ -- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY" pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = SamplerYcbcrModelConversion 1+ -- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709"-pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709      = SamplerYcbcrModelConversion 2+pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = SamplerYcbcrModelConversion 2+ -- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601"-pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601      = SamplerYcbcrModelConversion 3+pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = SamplerYcbcrModelConversion 3+ -- No documentation found for Nested "VkSamplerYcbcrModelConversion" "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020"-pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020     = SamplerYcbcrModelConversion 4-{-# complete SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,-             SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,-             SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,-             SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,-             SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 :: SamplerYcbcrModelConversion #-}+pattern SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = SamplerYcbcrModelConversion 4 +{-# COMPLETE+  SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY+  , SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY+  , SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709+  , SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601+  , SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 ::+    SamplerYcbcrModelConversion+  #-}+ conNameSamplerYcbcrModelConversion :: String conNameSamplerYcbcrModelConversion = "SamplerYcbcrModelConversion" @@ -113,23 +121,41 @@  showTableSamplerYcbcrModelConversion :: [(SamplerYcbcrModelConversion, String)] showTableSamplerYcbcrModelConversion =-  [ (SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY  , "RGB_IDENTITY")-  , (SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, "YCBCR_IDENTITY")-  , (SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709     , "YCBCR_709")-  , (SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601     , "YCBCR_601")-  , (SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020    , "YCBCR_2020")+  [+    ( SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY+    , "RGB_IDENTITY"+    )+  ,+    ( SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY+    , "YCBCR_IDENTITY"+    )+  ,+    ( SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709+    , "YCBCR_709"+    )+  ,+    ( SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601+    , "YCBCR_601"+    )+  ,+    ( SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020+    , "YCBCR_2020"+    )   ]  instance Show SamplerYcbcrModelConversion where-  showsPrec = enumShowsPrec enumPrefixSamplerYcbcrModelConversion-                            showTableSamplerYcbcrModelConversion-                            conNameSamplerYcbcrModelConversion-                            (\(SamplerYcbcrModelConversion x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSamplerYcbcrModelConversion+      showTableSamplerYcbcrModelConversion+      conNameSamplerYcbcrModelConversion+      (\(SamplerYcbcrModelConversion x) -> x)+      (showsPrec 11)  instance Read SamplerYcbcrModelConversion where-  readPrec = enumReadPrec enumPrefixSamplerYcbcrModelConversion-                          showTableSamplerYcbcrModelConversion-                          conNameSamplerYcbcrModelConversion-                          SamplerYcbcrModelConversion-+  readPrec =+    enumReadPrec+      enumPrefixSamplerYcbcrModelConversion+      showTableSamplerYcbcrModelConversion+      conNameSamplerYcbcrModelConversion+      SamplerYcbcrModelConversion
src/Vulkan/Core11/Enums/SamplerYcbcrRange.hs view
@@ -43,15 +43,20 @@ -- | 'SAMPLER_YCBCR_RANGE_ITU_FULL' specifies that the full range of the -- encoded values are valid and interpreted according to the ITU “full -- range” quantization rules.-pattern SAMPLER_YCBCR_RANGE_ITU_FULL   = SamplerYcbcrRange 0+pattern SAMPLER_YCBCR_RANGE_ITU_FULL = SamplerYcbcrRange 0+ -- | 'SAMPLER_YCBCR_RANGE_ITU_NARROW' specifies that headroom and foot room -- are reserved in the numerical range of encoded values, and the remaining -- values are expanded according to the ITU “narrow range” quantization -- rules. pattern SAMPLER_YCBCR_RANGE_ITU_NARROW = SamplerYcbcrRange 1-{-# complete SAMPLER_YCBCR_RANGE_ITU_FULL,-             SAMPLER_YCBCR_RANGE_ITU_NARROW :: SamplerYcbcrRange #-} +{-# COMPLETE+  SAMPLER_YCBCR_RANGE_ITU_FULL+  , SAMPLER_YCBCR_RANGE_ITU_NARROW ::+    SamplerYcbcrRange+  #-}+ conNameSamplerYcbcrRange :: String conNameSamplerYcbcrRange = "SamplerYcbcrRange" @@ -59,16 +64,24 @@ enumPrefixSamplerYcbcrRange = "SAMPLER_YCBCR_RANGE_ITU_"  showTableSamplerYcbcrRange :: [(SamplerYcbcrRange, String)]-showTableSamplerYcbcrRange = [(SAMPLER_YCBCR_RANGE_ITU_FULL, "FULL"), (SAMPLER_YCBCR_RANGE_ITU_NARROW, "NARROW")]+showTableSamplerYcbcrRange =+  [ (SAMPLER_YCBCR_RANGE_ITU_FULL, "FULL")+  , (SAMPLER_YCBCR_RANGE_ITU_NARROW, "NARROW")+  ]  instance Show SamplerYcbcrRange where-  showsPrec = enumShowsPrec enumPrefixSamplerYcbcrRange-                            showTableSamplerYcbcrRange-                            conNameSamplerYcbcrRange-                            (\(SamplerYcbcrRange x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSamplerYcbcrRange+      showTableSamplerYcbcrRange+      conNameSamplerYcbcrRange+      (\(SamplerYcbcrRange x) -> x)+      (showsPrec 11)  instance Read SamplerYcbcrRange where   readPrec =-    enumReadPrec enumPrefixSamplerYcbcrRange showTableSamplerYcbcrRange conNameSamplerYcbcrRange SamplerYcbcrRange-+    enumReadPrec+      enumPrefixSamplerYcbcrRange+      showTableSamplerYcbcrRange+      conNameSamplerYcbcrRange+      SamplerYcbcrRange
src/Vulkan/Core11/Enums/SemaphoreImportFlagBits.hs view
@@ -49,15 +49,18 @@ showTableSemaphoreImportFlagBits = [(SEMAPHORE_IMPORT_TEMPORARY_BIT, "")]  instance Show SemaphoreImportFlagBits where-  showsPrec = enumShowsPrec enumPrefixSemaphoreImportFlagBits-                            showTableSemaphoreImportFlagBits-                            conNameSemaphoreImportFlagBits-                            (\(SemaphoreImportFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSemaphoreImportFlagBits+      showTableSemaphoreImportFlagBits+      conNameSemaphoreImportFlagBits+      (\(SemaphoreImportFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SemaphoreImportFlagBits where-  readPrec = enumReadPrec enumPrefixSemaphoreImportFlagBits-                          showTableSemaphoreImportFlagBits-                          conNameSemaphoreImportFlagBits-                          SemaphoreImportFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSemaphoreImportFlagBits+      showTableSemaphoreImportFlagBits+      conNameSemaphoreImportFlagBits+      SemaphoreImportFlagBits
src/Vulkan/Core11/Enums/SubgroupFeatureFlagBits.hs view
@@ -40,40 +40,48 @@ -- | #features-subgroup-basic# 'SUBGROUP_FEATURE_BASIC_BIT' specifies the -- device will accept SPIR-V shader modules containing the -- @GroupNonUniform@ capability.-pattern SUBGROUP_FEATURE_BASIC_BIT            = SubgroupFeatureFlagBits 0x00000001+pattern SUBGROUP_FEATURE_BASIC_BIT = SubgroupFeatureFlagBits 0x00000001+ -- | #features-subgroup-vote# 'SUBGROUP_FEATURE_VOTE_BIT' specifies the -- device will accept SPIR-V shader modules containing the -- @GroupNonUniformVote@ capability.-pattern SUBGROUP_FEATURE_VOTE_BIT             = SubgroupFeatureFlagBits 0x00000002+pattern SUBGROUP_FEATURE_VOTE_BIT = SubgroupFeatureFlagBits 0x00000002+ -- | #features-subgroup-arithmetic# 'SUBGROUP_FEATURE_ARITHMETIC_BIT' -- specifies the device will accept SPIR-V shader modules containing the -- @GroupNonUniformArithmetic@ capability.-pattern SUBGROUP_FEATURE_ARITHMETIC_BIT       = SubgroupFeatureFlagBits 0x00000004+pattern SUBGROUP_FEATURE_ARITHMETIC_BIT = SubgroupFeatureFlagBits 0x00000004+ -- | #features-subgroup-ballot# 'SUBGROUP_FEATURE_BALLOT_BIT' specifies the -- device will accept SPIR-V shader modules containing the -- @GroupNonUniformBallot@ capability.-pattern SUBGROUP_FEATURE_BALLOT_BIT           = SubgroupFeatureFlagBits 0x00000008+pattern SUBGROUP_FEATURE_BALLOT_BIT = SubgroupFeatureFlagBits 0x00000008+ -- | #features-subgroup-shuffle# 'SUBGROUP_FEATURE_SHUFFLE_BIT' specifies the -- device will accept SPIR-V shader modules containing the -- @GroupNonUniformShuffle@ capability.-pattern SUBGROUP_FEATURE_SHUFFLE_BIT          = SubgroupFeatureFlagBits 0x00000010+pattern SUBGROUP_FEATURE_SHUFFLE_BIT = SubgroupFeatureFlagBits 0x00000010+ -- | #features-subgroup-shuffle-relative# -- 'SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT' specifies the device will accept -- SPIR-V shader modules containing the @GroupNonUniformShuffleRelative@ -- capability. pattern SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = SubgroupFeatureFlagBits 0x00000020+ -- | #features-subgroup-clustered# 'SUBGROUP_FEATURE_CLUSTERED_BIT' specifies -- the device will accept SPIR-V shader modules containing the -- @GroupNonUniformClustered@ capability.-pattern SUBGROUP_FEATURE_CLUSTERED_BIT        = SubgroupFeatureFlagBits 0x00000040+pattern SUBGROUP_FEATURE_CLUSTERED_BIT = SubgroupFeatureFlagBits 0x00000040+ -- | #features-subgroup-quad# 'SUBGROUP_FEATURE_QUAD_BIT' specifies the -- device will accept SPIR-V shader modules containing the -- @GroupNonUniformQuad@ capability.-pattern SUBGROUP_FEATURE_QUAD_BIT             = SubgroupFeatureFlagBits 0x00000080+pattern SUBGROUP_FEATURE_QUAD_BIT = SubgroupFeatureFlagBits 0x00000080+ -- | #features-subgroup-partitioned# 'SUBGROUP_FEATURE_PARTITIONED_BIT_NV' -- specifies the device will accept SPIR-V shader modules containing the -- @GroupNonUniformPartitionedNV@ capability.-pattern SUBGROUP_FEATURE_PARTITIONED_BIT_NV   = SubgroupFeatureFlagBits 0x00000100+pattern SUBGROUP_FEATURE_PARTITIONED_BIT_NV = SubgroupFeatureFlagBits 0x00000100  conNameSubgroupFeatureFlagBits :: String conNameSubgroupFeatureFlagBits = "SubgroupFeatureFlagBits"@@ -83,27 +91,45 @@  showTableSubgroupFeatureFlagBits :: [(SubgroupFeatureFlagBits, String)] showTableSubgroupFeatureFlagBits =-  [ (SUBGROUP_FEATURE_BASIC_BIT           , "BASIC_BIT")-  , (SUBGROUP_FEATURE_VOTE_BIT            , "VOTE_BIT")-  , (SUBGROUP_FEATURE_ARITHMETIC_BIT      , "ARITHMETIC_BIT")-  , (SUBGROUP_FEATURE_BALLOT_BIT          , "BALLOT_BIT")-  , (SUBGROUP_FEATURE_SHUFFLE_BIT         , "SHUFFLE_BIT")-  , (SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT, "SHUFFLE_RELATIVE_BIT")-  , (SUBGROUP_FEATURE_CLUSTERED_BIT       , "CLUSTERED_BIT")-  , (SUBGROUP_FEATURE_QUAD_BIT            , "QUAD_BIT")-  , (SUBGROUP_FEATURE_PARTITIONED_BIT_NV  , "PARTITIONED_BIT_NV")+  [ (SUBGROUP_FEATURE_BASIC_BIT, "BASIC_BIT")+  , (SUBGROUP_FEATURE_VOTE_BIT, "VOTE_BIT")+  ,+    ( SUBGROUP_FEATURE_ARITHMETIC_BIT+    , "ARITHMETIC_BIT"+    )+  , (SUBGROUP_FEATURE_BALLOT_BIT, "BALLOT_BIT")+  ,+    ( SUBGROUP_FEATURE_SHUFFLE_BIT+    , "SHUFFLE_BIT"+    )+  ,+    ( SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT+    , "SHUFFLE_RELATIVE_BIT"+    )+  ,+    ( SUBGROUP_FEATURE_CLUSTERED_BIT+    , "CLUSTERED_BIT"+    )+  , (SUBGROUP_FEATURE_QUAD_BIT, "QUAD_BIT")+  ,+    ( SUBGROUP_FEATURE_PARTITIONED_BIT_NV+    , "PARTITIONED_BIT_NV"+    )   ]  instance Show SubgroupFeatureFlagBits where-  showsPrec = enumShowsPrec enumPrefixSubgroupFeatureFlagBits-                            showTableSubgroupFeatureFlagBits-                            conNameSubgroupFeatureFlagBits-                            (\(SubgroupFeatureFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSubgroupFeatureFlagBits+      showTableSubgroupFeatureFlagBits+      conNameSubgroupFeatureFlagBits+      (\(SubgroupFeatureFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SubgroupFeatureFlagBits where-  readPrec = enumReadPrec enumPrefixSubgroupFeatureFlagBits-                          showTableSubgroupFeatureFlagBits-                          conNameSubgroupFeatureFlagBits-                          SubgroupFeatureFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSubgroupFeatureFlagBits+      showTableSubgroupFeatureFlagBits+      conNameSubgroupFeatureFlagBits+      SubgroupFeatureFlagBits
src/Vulkan/Core11/Enums/TessellationDomainOrigin.hs view
@@ -25,7 +25,8 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>,--- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetTessellationDomainOriginEXT' newtype TessellationDomainOrigin = TessellationDomainOrigin Int32   deriving newtype (Eq, Ord, Storable, Zero) @@ -33,13 +34,18 @@ -- domain space is in the upper left corner, as shown in figure -- <https://registry.khronos.org/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://registry.khronos.org/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 #-} +{-# COMPLETE+  TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT+  , TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT ::+    TessellationDomainOrigin+  #-}+ conNameTessellationDomainOrigin :: String conNameTessellationDomainOrigin = "TessellationDomainOrigin" @@ -48,18 +54,29 @@  showTableTessellationDomainOrigin :: [(TessellationDomainOrigin, String)] showTableTessellationDomainOrigin =-  [(TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, "UPPER_LEFT"), (TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, "LOWER_LEFT")]+  [+    ( TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT+    , "UPPER_LEFT"+    )+  ,+    ( TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT+    , "LOWER_LEFT"+    )+  ]  instance Show TessellationDomainOrigin where-  showsPrec = enumShowsPrec enumPrefixTessellationDomainOrigin-                            showTableTessellationDomainOrigin-                            conNameTessellationDomainOrigin-                            (\(TessellationDomainOrigin x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixTessellationDomainOrigin+      showTableTessellationDomainOrigin+      conNameTessellationDomainOrigin+      (\(TessellationDomainOrigin x) -> x)+      (showsPrec 11)  instance Read TessellationDomainOrigin where-  readPrec = enumReadPrec enumPrefixTessellationDomainOrigin-                          showTableTessellationDomainOrigin-                          conNameTessellationDomainOrigin-                          TessellationDomainOrigin-+  readPrec =+    enumReadPrec+      enumPrefixTessellationDomainOrigin+      showTableTessellationDomainOrigin+      conNameTessellationDomainOrigin+      TessellationDomainOrigin
src/Vulkan/Core11/Handles.hs view
@@ -56,7 +56,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType DescriptorUpdateTemplate where-  objectTypeAndHandle (DescriptorUpdateTemplate h) = (OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, h)+  objectTypeAndHandle (DescriptorUpdateTemplate h) = ( OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE+                                                     , h ) instance Show DescriptorUpdateTemplate where   showsPrec p (DescriptorUpdateTemplate x) = showParen (p >= 11) (showString "DescriptorUpdateTemplate 0x" . showHex x) @@ -76,7 +77,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType SamplerYcbcrConversion where-  objectTypeAndHandle (SamplerYcbcrConversion h) = (OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, h)+  objectTypeAndHandle (SamplerYcbcrConversion h) = ( OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION+                                                   , h ) instance Show SamplerYcbcrConversion where   showsPrec p (SamplerYcbcrConversion x) = showParen (p >= 11) (showString "SamplerYcbcrConversion 0x" . showHex x) 
src/Vulkan/Core11/Originally_Based_On_VK_KHR_protected_memory.hs view
@@ -120,7 +120,10 @@   let vkGetDeviceQueue2' = mkVkGetDeviceQueue2 vkGetDeviceQueue2Ptr   pQueueInfo <- ContT $ withCStruct (queueInfo)   pPQueue <- ContT $ bracket (callocBytes @(Ptr Queue_T) 8) free-  lift $ traceAroundEvent "vkGetDeviceQueue2" (vkGetDeviceQueue2' (deviceHandle (device)) pQueueInfo (pPQueue))+  lift $ traceAroundEvent "vkGetDeviceQueue2" (vkGetDeviceQueue2'+                                                 (deviceHandle (device))+                                                 pQueueInfo+                                                 (pPQueue))   pQueue <- lift $ peek @(Ptr Queue_T) pPQueue   pure $ (((\h -> Queue h cmds ) pQueue)) 
src/Vulkan/Core11/Originally_Based_On_VK_KHR_subgroup.hs view
@@ -133,7 +133,10 @@     supportedOperations <- peek @SubgroupFeatureFlags ((p `plusPtr` 24 :: Ptr SubgroupFeatureFlags))     quadOperationsInAllStages <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))     pure $ PhysicalDeviceSubgroupProperties-             subgroupSize supportedStages supportedOperations (bool32ToBool quadOperationsInAllStages)+             subgroupSize+             supportedStages+             supportedOperations+             (bool32ToBool quadOperationsInAllStages)  instance Storable PhysicalDeviceSubgroupProperties where   sizeOf ~_ = 32
src/Vulkan/Core11/Promoted_From_VK_KHR_16bit_storage.hs view
@@ -119,7 +119,10 @@     storagePushConstant16 <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     storageInputOutput16 <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))     pure $ PhysicalDevice16BitStorageFeatures-             (bool32ToBool storageBuffer16BitAccess) (bool32ToBool uniformAndStorageBuffer16BitAccess) (bool32ToBool storagePushConstant16) (bool32ToBool storageInputOutput16)+             (bool32ToBool storageBuffer16BitAccess)+             (bool32ToBool uniformAndStorageBuffer16BitAccess)+             (bool32ToBool storagePushConstant16)+             (bool32ToBool storageInputOutput16)  instance Storable PhysicalDevice16BitStorageFeatures where   sizeOf ~_ = 32
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs view
@@ -132,7 +132,10 @@   let vkBindBufferMemory2' = mkVkBindBufferMemory2 vkBindBufferMemory2Ptr   pPBindInfos <- ContT $ allocaBytes @(BindBufferMemoryInfo _) ((Data.Vector.length (bindInfos)) * 40)   Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindInfos `plusPtr` (40 * (i)) :: Ptr (BindBufferMemoryInfo _))) (e) . ($ ())) (bindInfos)-  r <- lift $ traceAroundEvent "vkBindBufferMemory2" (vkBindBufferMemory2' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (forgetExtensions (pPBindInfos)))+  r <- lift $ traceAroundEvent "vkBindBufferMemory2" (vkBindBufferMemory2'+                                                        (deviceHandle (device))+                                                        ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32))+                                                        (forgetExtensions (pPBindInfos)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -204,7 +207,10 @@   let vkBindImageMemory2' = mkVkBindImageMemory2 vkBindImageMemory2Ptr   pPBindInfos <- ContT $ allocaBytes @(BindImageMemoryInfo _) ((Data.Vector.length (bindInfos)) * 40)   Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPBindInfos `plusPtr` (40 * (i)) :: Ptr (BindImageMemoryInfo _))) (e) . ($ ())) (bindInfos)-  r <- lift $ traceAroundEvent "vkBindImageMemory2" (vkBindImageMemory2' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (forgetExtensions (pPBindInfos)))+  r <- lift $ traceAroundEvent "vkBindImageMemory2" (vkBindImageMemory2'+                                                       (deviceHandle (device))+                                                       ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32))+                                                       (forgetExtensions (pPBindInfos)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -213,8 +219,8 @@ -- -- == Valid Usage ----- -   #VUID-VkBindBufferMemoryInfo-buffer-01029# @buffer@ /must/ not---     already be backed by a memory object+-- -   #VUID-VkBindBufferMemoryInfo-buffer-07459# @buffer@ /must/ not have+--     been bound to a memory object -- -- -   #VUID-VkBindBufferMemoryInfo-buffer-01030# @buffer@ /must/ not have --     been created with any sparse memory binding flags@@ -393,7 +399,8 @@     | Just Refl <- eqT @e @BindBufferMemoryDeviceGroupInfo = Just f     | otherwise = Nothing -instance (Extendss BindBufferMemoryInfo es, PokeChain es) => ToCStruct (BindBufferMemoryInfo es) where+instance ( Extendss BindBufferMemoryInfo es+         , PokeChain es ) => ToCStruct (BindBufferMemoryInfo es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BindBufferMemoryInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO)@@ -414,7 +421,8 @@     lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)     lift $ f -instance (Extendss BindBufferMemoryInfo es, PeekChain es) => FromCStruct (BindBufferMemoryInfo es) where+instance ( Extendss BindBufferMemoryInfo es+         , PeekChain es ) => FromCStruct (BindBufferMemoryInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -437,8 +445,8 @@ -- -- == Valid Usage ----- -   #VUID-VkBindImageMemoryInfo-image-01044# @image@ /must/ not already---     be backed by a memory object+-- -   #VUID-VkBindImageMemoryInfo-image-07460# @image@ /must/ not have+--     been bound to a memory object -- -- -   #VUID-VkBindImageMemoryInfo-image-01045# @image@ /must/ not have --     been created with any sparse memory binding flags@@ -734,7 +742,8 @@     | Just Refl <- eqT @e @BindImageMemoryDeviceGroupInfo = Just f     | otherwise = Nothing -instance (Extendss BindImageMemoryInfo es, PokeChain es) => ToCStruct (BindImageMemoryInfo es) where+instance ( Extendss BindImageMemoryInfo es+         , PokeChain es ) => ToCStruct (BindImageMemoryInfo es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p BindImageMemoryInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO)@@ -755,7 +764,8 @@     lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)     lift $ f -instance (Extendss BindImageMemoryInfo es, PeekChain es) => FromCStruct (BindImageMemoryInfo es) where+instance ( Extendss BindImageMemoryInfo es+         , PeekChain es ) => FromCStruct (BindImageMemoryInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core11/Promoted_From_VK_KHR_bind_memory2.hs-boot view
@@ -14,17 +14,21 @@ type role BindBufferMemoryInfo nominal data BindBufferMemoryInfo (es :: [Type]) -instance (Extendss BindBufferMemoryInfo es, PokeChain es) => ToCStruct (BindBufferMemoryInfo es)+instance ( Extendss BindBufferMemoryInfo es+         , PokeChain es ) => ToCStruct (BindBufferMemoryInfo es) instance Show (Chain es) => Show (BindBufferMemoryInfo es) -instance (Extendss BindBufferMemoryInfo es, PeekChain es) => FromCStruct (BindBufferMemoryInfo es)+instance ( Extendss BindBufferMemoryInfo es+         , PeekChain es ) => FromCStruct (BindBufferMemoryInfo es)   type role BindImageMemoryInfo nominal data BindImageMemoryInfo (es :: [Type]) -instance (Extendss BindImageMemoryInfo es, PokeChain es) => ToCStruct (BindImageMemoryInfo es)+instance ( Extendss BindImageMemoryInfo es+         , PokeChain es ) => ToCStruct (BindImageMemoryInfo es) instance Show (Chain es) => Show (BindImageMemoryInfo es) -instance (Extendss BindImageMemoryInfo es, PeekChain es) => FromCStruct (BindImageMemoryInfo es)+instance ( Extendss BindImageMemoryInfo es+         , PeekChain es ) => FromCStruct (BindImageMemoryInfo es) 
src/Vulkan/Core11/Promoted_From_VK_KHR_dedicated_allocation.hs view
@@ -151,7 +151,8 @@     prefersDedicatedAllocation <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     requiresDedicatedAllocation <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ MemoryDedicatedRequirements-             (bool32ToBool prefersDedicatedAllocation) (bool32ToBool requiresDedicatedAllocation)+             (bool32ToBool prefersDedicatedAllocation)+             (bool32ToBool requiresDedicatedAllocation)  instance Storable MemoryDedicatedRequirements where   sizeOf ~_ = 24
src/Vulkan/Core11/Promoted_From_VK_KHR_descriptor_update_template.hs view
@@ -148,7 +148,9 @@                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io (DescriptorUpdateTemplate)-createDescriptorUpdateTemplate device createInfo allocator = liftIO . evalContT $ do+createDescriptorUpdateTemplate device+                                 createInfo+                                 allocator = liftIO . evalContT $ do   let vkCreateDescriptorUpdateTemplatePtr = pVkCreateDescriptorUpdateTemplate (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateDescriptorUpdateTemplatePtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDescriptorUpdateTemplate is null" Nothing Nothing@@ -158,7 +160,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPDescriptorUpdateTemplate <- ContT $ bracket (callocBytes @DescriptorUpdateTemplate 8) free-  r <- lift $ traceAroundEvent "vkCreateDescriptorUpdateTemplate" (vkCreateDescriptorUpdateTemplate' (deviceHandle (device)) pCreateInfo pAllocator (pPDescriptorUpdateTemplate))+  r <- lift $ traceAroundEvent "vkCreateDescriptorUpdateTemplate" (vkCreateDescriptorUpdateTemplate'+                                                                     (deviceHandle (device))+                                                                     pCreateInfo+                                                                     pAllocator+                                                                     (pPDescriptorUpdateTemplate))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDescriptorUpdateTemplate <- lift $ peek @DescriptorUpdateTemplate pPDescriptorUpdateTemplate   pure $ (pDescriptorUpdateTemplate)@@ -242,7 +248,9 @@                                    -- chapter.                                    ("allocator" ::: Maybe AllocationCallbacks)                                 -> io ()-destroyDescriptorUpdateTemplate device descriptorUpdateTemplate allocator = liftIO . evalContT $ do+destroyDescriptorUpdateTemplate device+                                  descriptorUpdateTemplate+                                  allocator = liftIO . evalContT $ do   let vkDestroyDescriptorUpdateTemplatePtr = pVkDestroyDescriptorUpdateTemplate (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyDescriptorUpdateTemplatePtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyDescriptorUpdateTemplate is null" Nothing Nothing@@ -250,7 +258,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDescriptorUpdateTemplate" (vkDestroyDescriptorUpdateTemplate' (deviceHandle (device)) (descriptorUpdateTemplate) pAllocator)+  lift $ traceAroundEvent "vkDestroyDescriptorUpdateTemplate" (vkDestroyDescriptorUpdateTemplate'+                                                                 (deviceHandle (device))+                                                                 (descriptorUpdateTemplate)+                                                                 pAllocator)   pure $ ()  @@ -397,12 +408,19 @@                                    -- write the descriptors.                                    ("data" ::: Ptr ())                                 -> io ()-updateDescriptorSetWithTemplate device descriptorSet descriptorUpdateTemplate data' = liftIO $ do+updateDescriptorSetWithTemplate device+                                  descriptorSet+                                  descriptorUpdateTemplate+                                  data' = liftIO $ do   let vkUpdateDescriptorSetWithTemplatePtr = pVkUpdateDescriptorSetWithTemplate (case device of Device{deviceCmds} -> deviceCmds)   unless (vkUpdateDescriptorSetWithTemplatePtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUpdateDescriptorSetWithTemplate is null" Nothing Nothing   let vkUpdateDescriptorSetWithTemplate' = mkVkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplatePtr-  traceAroundEvent "vkUpdateDescriptorSetWithTemplate" (vkUpdateDescriptorSetWithTemplate' (deviceHandle (device)) (descriptorSet) (descriptorUpdateTemplate) (data'))+  traceAroundEvent "vkUpdateDescriptorSetWithTemplate" (vkUpdateDescriptorSetWithTemplate'+                                                          (deviceHandle (device))+                                                          (descriptorSet)+                                                          (descriptorUpdateTemplate)+                                                          (data'))   pure $ ()  @@ -524,7 +542,12 @@     offset <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))     stride <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))     pure $ DescriptorUpdateTemplateEntry-             dstBinding dstArrayElement descriptorCount descriptorType (coerce @CSize @Word64 offset) (coerce @CSize @Word64 stride)+             dstBinding+             dstArrayElement+             descriptorCount+             descriptorType+             (coerce @CSize @Word64 offset)+             (coerce @CSize @Word64 stride)  instance Storable DescriptorUpdateTemplateEntry where   sizeOf ~_ = 32@@ -706,7 +729,13 @@     pipelineLayout <- peek @PipelineLayout ((p `plusPtr` 56 :: Ptr PipelineLayout))     set <- peek @Word32 ((p `plusPtr` 64 :: Ptr Word32))     pure $ DescriptorUpdateTemplateCreateInfo-             flags pDescriptorUpdateEntries' templateType descriptorSetLayout pipelineBindPoint pipelineLayout set+             flags+             pDescriptorUpdateEntries'+             templateType+             descriptorSetLayout+             pipelineBindPoint+             pipelineLayout+             set  instance Zero DescriptorUpdateTemplateCreateInfo where   zero = DescriptorUpdateTemplateCreateInfo
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -136,13 +136,21 @@                                     -- @remoteDeviceIndex@ /must/ be a valid device index                                     ("remoteDeviceIndex" ::: Word32)                                  -> io (("peerMemoryFeatures" ::: PeerMemoryFeatureFlags))-getDeviceGroupPeerMemoryFeatures device heapIndex localDeviceIndex remoteDeviceIndex = liftIO . evalContT $ do+getDeviceGroupPeerMemoryFeatures device+                                   heapIndex+                                   localDeviceIndex+                                   remoteDeviceIndex = liftIO . evalContT $ do   let vkGetDeviceGroupPeerMemoryFeaturesPtr = pVkGetDeviceGroupPeerMemoryFeatures (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetDeviceGroupPeerMemoryFeaturesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupPeerMemoryFeatures is null" Nothing Nothing   let vkGetDeviceGroupPeerMemoryFeatures' = mkVkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeaturesPtr   pPPeerMemoryFeatures <- ContT $ bracket (callocBytes @PeerMemoryFeatureFlags 4) free-  lift $ traceAroundEvent "vkGetDeviceGroupPeerMemoryFeatures" (vkGetDeviceGroupPeerMemoryFeatures' (deviceHandle (device)) (heapIndex) (localDeviceIndex) (remoteDeviceIndex) (pPPeerMemoryFeatures))+  lift $ traceAroundEvent "vkGetDeviceGroupPeerMemoryFeatures" (vkGetDeviceGroupPeerMemoryFeatures'+                                                                  (deviceHandle (device))+                                                                  (heapIndex)+                                                                  (localDeviceIndex)+                                                                  (remoteDeviceIndex)+                                                                  (pPPeerMemoryFeatures))   pPeerMemoryFeatures <- lift $ peek @PeerMemoryFeatureFlags pPPeerMemoryFeatures   pure $ (pPeerMemoryFeatures) @@ -235,7 +243,9 @@   unless (vkCmdSetDeviceMaskPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDeviceMask is null" Nothing Nothing   let vkCmdSetDeviceMask' = mkVkCmdSetDeviceMask vkCmdSetDeviceMaskPtr-  traceAroundEvent "vkCmdSetDeviceMask" (vkCmdSetDeviceMask' (commandBufferHandle (commandBuffer)) (deviceMask))+  traceAroundEvent "vkCmdSetDeviceMask" (vkCmdSetDeviceMask'+                                           (commandBufferHandle (commandBuffer))+                                           (deviceMask))   pure $ ()  @@ -731,12 +741,25 @@                    -- dimension.                    ("groupCountZ" ::: Word32)                 -> io ()-cmdDispatchBase commandBuffer baseGroupX baseGroupY baseGroupZ groupCountX groupCountY groupCountZ = liftIO $ do+cmdDispatchBase commandBuffer+                  baseGroupX+                  baseGroupY+                  baseGroupZ+                  groupCountX+                  groupCountY+                  groupCountZ = liftIO $ do   let vkCmdDispatchBasePtr = pVkCmdDispatchBase (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdDispatchBasePtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDispatchBase is null" Nothing Nothing   let vkCmdDispatchBase' = mkVkCmdDispatchBase vkCmdDispatchBasePtr-  traceAroundEvent "vkCmdDispatchBase" (vkCmdDispatchBase' (commandBufferHandle (commandBuffer)) (baseGroupX) (baseGroupY) (baseGroupZ) (groupCountX) (groupCountY) (groupCountZ))+  traceAroundEvent "vkCmdDispatchBase" (vkCmdDispatchBase'+                                          (commandBufferHandle (commandBuffer))+                                          (baseGroupX)+                                          (baseGroupY)+                                          (baseGroupZ)+                                          (groupCountX)+                                          (groupCountY)+                                          (groupCountZ))   pure $ ()  @@ -1161,7 +1184,9 @@     pSignalSemaphoreDeviceIndices <- peek @(Ptr Word32) ((p `plusPtr` 56 :: Ptr (Ptr Word32)))     pSignalSemaphoreDeviceIndices' <- generateM (fromIntegral signalSemaphoreCount) (\i -> peek @Word32 ((pSignalSemaphoreDeviceIndices `advancePtrBytes` (4 * (i)) :: Ptr Word32)))     pure $ DeviceGroupSubmitInfo-             pWaitSemaphoreDeviceIndices' pCommandBufferDeviceMasks' pSignalSemaphoreDeviceIndices'+             pWaitSemaphoreDeviceIndices'+             pCommandBufferDeviceMasks'+             pSignalSemaphoreDeviceIndices'  instance Zero DeviceGroupSubmitInfo where   zero = DeviceGroupSubmitInfo
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group_creation.hs view
@@ -149,12 +149,18 @@   let vkEnumeratePhysicalDeviceGroups' = mkVkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroupsPtr   let instance'' = instanceHandle (instance')   pPPhysicalDeviceGroupCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceGroups" (vkEnumeratePhysicalDeviceGroups' instance'' (pPPhysicalDeviceGroupCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceGroups" (vkEnumeratePhysicalDeviceGroups'+                                                                    instance''+                                                                    (pPPhysicalDeviceGroupCount)+                                                                    (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPhysicalDeviceGroupCount <- lift $ peek @Word32 pPPhysicalDeviceGroupCount   pPPhysicalDeviceGroupProperties <- ContT $ bracket (callocBytes @PhysicalDeviceGroupProperties ((fromIntegral (pPhysicalDeviceGroupCount)) * 288)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPPhysicalDeviceGroupProperties `advancePtrBytes` (i * 288) :: Ptr PhysicalDeviceGroupProperties) . ($ ())) [0..(fromIntegral (pPhysicalDeviceGroupCount)) - 1]-  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceGroups" (vkEnumeratePhysicalDeviceGroups' instance'' (pPPhysicalDeviceGroupCount) ((pPPhysicalDeviceGroupProperties)))+  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceGroups" (vkEnumeratePhysicalDeviceGroups'+                                                                     instance''+                                                                     (pPPhysicalDeviceGroupCount)+                                                                     ((pPPhysicalDeviceGroupProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPhysicalDeviceGroupCount' <- lift $ peek @Word32 pPPhysicalDeviceGroupCount   pPhysicalDeviceGroupProperties' <- lift $ generateM (fromIntegral (pPhysicalDeviceGroupCount')) (\i -> peekCStruct @PhysicalDeviceGroupProperties (((pPPhysicalDeviceGroupProperties) `advancePtrBytes` (288 * (i)) :: Ptr PhysicalDeviceGroupProperties)))
src/Vulkan/Core11/Promoted_From_VK_KHR_external_fence_capabilities.hs view
@@ -89,14 +89,18 @@                                             -- 'PhysicalDeviceExternalFenceInfo' structure                                             PhysicalDeviceExternalFenceInfo                                          -> io (ExternalFenceProperties)-getPhysicalDeviceExternalFenceProperties physicalDevice externalFenceInfo = liftIO . evalContT $ do+getPhysicalDeviceExternalFenceProperties physicalDevice+                                           externalFenceInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceExternalFencePropertiesPtr = pVkGetPhysicalDeviceExternalFenceProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceExternalFencePropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceExternalFenceProperties is null" Nothing Nothing   let vkGetPhysicalDeviceExternalFenceProperties' = mkVkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFencePropertiesPtr   pExternalFenceInfo <- ContT $ withCStruct (externalFenceInfo)   pPExternalFenceProperties <- ContT (withZeroCStruct @ExternalFenceProperties)-  lift $ traceAroundEvent "vkGetPhysicalDeviceExternalFenceProperties" (vkGetPhysicalDeviceExternalFenceProperties' (physicalDeviceHandle (physicalDevice)) pExternalFenceInfo (pPExternalFenceProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceExternalFenceProperties" (vkGetPhysicalDeviceExternalFenceProperties'+                                                                          (physicalDeviceHandle (physicalDevice))+                                                                          pExternalFenceInfo+                                                                          (pPExternalFenceProperties))   pExternalFenceProperties <- lift $ peekCStruct @ExternalFenceProperties pPExternalFenceProperties   pure $ (pExternalFenceProperties) @@ -239,7 +243,9 @@     compatibleHandleTypes <- peek @ExternalFenceHandleTypeFlags ((p `plusPtr` 20 :: Ptr ExternalFenceHandleTypeFlags))     externalFenceFeatures <- peek @ExternalFenceFeatureFlags ((p `plusPtr` 24 :: Ptr ExternalFenceFeatureFlags))     pure $ ExternalFenceProperties-             exportFromImportedHandleTypes compatibleHandleTypes externalFenceFeatures+             exportFromImportedHandleTypes+             compatibleHandleTypes+             externalFenceFeatures  instance Storable ExternalFenceProperties where   sizeOf ~_ = 32
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -113,14 +113,18 @@                                              -- 'PhysicalDeviceExternalBufferInfo' structure                                              PhysicalDeviceExternalBufferInfo                                           -> io (ExternalBufferProperties)-getPhysicalDeviceExternalBufferProperties physicalDevice externalBufferInfo = liftIO . evalContT $ do+getPhysicalDeviceExternalBufferProperties physicalDevice+                                            externalBufferInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceExternalBufferPropertiesPtr = pVkGetPhysicalDeviceExternalBufferProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceExternalBufferPropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceExternalBufferProperties is null" Nothing Nothing   let vkGetPhysicalDeviceExternalBufferProperties' = mkVkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferPropertiesPtr   pExternalBufferInfo <- ContT $ withCStruct (externalBufferInfo)   pPExternalBufferProperties <- ContT (withZeroCStruct @ExternalBufferProperties)-  lift $ traceAroundEvent "vkGetPhysicalDeviceExternalBufferProperties" (vkGetPhysicalDeviceExternalBufferProperties' (physicalDeviceHandle (physicalDevice)) pExternalBufferInfo (pPExternalBufferProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceExternalBufferProperties" (vkGetPhysicalDeviceExternalBufferProperties'+                                                                           (physicalDeviceHandle (physicalDevice))+                                                                           pExternalBufferInfo+                                                                           (pPExternalBufferProperties))   pExternalBufferProperties <- lift $ peekCStruct @ExternalBufferProperties pPExternalBufferProperties   pure $ (pExternalBufferProperties) @@ -188,7 +192,9 @@     exportFromImportedHandleTypes <- peek @ExternalMemoryHandleTypeFlags ((p `plusPtr` 4 :: Ptr ExternalMemoryHandleTypeFlags))     compatibleHandleTypes <- peek @ExternalMemoryHandleTypeFlags ((p `plusPtr` 8 :: Ptr ExternalMemoryHandleTypeFlags))     pure $ ExternalMemoryProperties-             externalMemoryFeatures exportFromImportedHandleTypes compatibleHandleTypes+             externalMemoryFeatures+             exportFromImportedHandleTypes+             compatibleHandleTypes  instance Storable ExternalMemoryProperties where   sizeOf ~_ = 12@@ -653,7 +659,11 @@     deviceNodeMask <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))     deviceLUIDValid <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))     pure $ PhysicalDeviceIDProperties-             deviceUUID driverUUID deviceLUID deviceNodeMask (bool32ToBool deviceLUIDValid)+             deviceUUID+             driverUUID+             deviceLUID+             deviceNodeMask+             (bool32ToBool deviceLUIDValid)  instance Storable PhysicalDeviceIDProperties where   sizeOf ~_ = 64
src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs view
@@ -86,7 +86,9 @@ -- 'ExternalSemaphoreProperties', 'Vulkan.Core10.Handles.PhysicalDevice', -- 'PhysicalDeviceExternalSemaphoreInfo' getPhysicalDeviceExternalSemaphoreProperties :: forall a io-                                              . (Extendss PhysicalDeviceExternalSemaphoreInfo a, PokeChain a, MonadIO io)+                                              . ( Extendss PhysicalDeviceExternalSemaphoreInfo a+                                                , PokeChain a+                                                , MonadIO io )                                              => -- | @physicalDevice@ is the physical device from which to query the                                                 -- semaphore capabilities.                                                 --@@ -104,14 +106,18 @@                                                 -- 'PhysicalDeviceExternalSemaphoreInfo' structure                                                 (PhysicalDeviceExternalSemaphoreInfo a)                                              -> io (ExternalSemaphoreProperties)-getPhysicalDeviceExternalSemaphoreProperties physicalDevice externalSemaphoreInfo = liftIO . evalContT $ do+getPhysicalDeviceExternalSemaphoreProperties physicalDevice+                                               externalSemaphoreInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceExternalSemaphorePropertiesPtr = pVkGetPhysicalDeviceExternalSemaphoreProperties (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceExternalSemaphorePropertiesPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceExternalSemaphoreProperties is null" Nothing Nothing   let vkGetPhysicalDeviceExternalSemaphoreProperties' = mkVkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphorePropertiesPtr   pExternalSemaphoreInfo <- ContT $ withCStruct (externalSemaphoreInfo)   pPExternalSemaphoreProperties <- ContT (withZeroCStruct @ExternalSemaphoreProperties)-  lift $ traceAroundEvent "vkGetPhysicalDeviceExternalSemaphoreProperties" (vkGetPhysicalDeviceExternalSemaphoreProperties' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pExternalSemaphoreInfo) (pPExternalSemaphoreProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceExternalSemaphoreProperties" (vkGetPhysicalDeviceExternalSemaphoreProperties'+                                                                              (physicalDeviceHandle (physicalDevice))+                                                                              (forgetExtensions pExternalSemaphoreInfo)+                                                                              (pPExternalSemaphoreProperties))   pExternalSemaphoreProperties <- lift $ peekCStruct @ExternalSemaphoreProperties pPExternalSemaphoreProperties   pure $ (pExternalSemaphoreProperties) @@ -168,7 +174,8 @@     | Just Refl <- eqT @e @SemaphoreTypeCreateInfo = Just f     | otherwise = Nothing -instance (Extendss PhysicalDeviceExternalSemaphoreInfo es, PokeChain es) => ToCStruct (PhysicalDeviceExternalSemaphoreInfo es) where+instance ( Extendss PhysicalDeviceExternalSemaphoreInfo es+         , PokeChain es ) => ToCStruct (PhysicalDeviceExternalSemaphoreInfo es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PhysicalDeviceExternalSemaphoreInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO)@@ -185,7 +192,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr ExternalSemaphoreHandleTypeFlagBits)) (zero)     lift $ f -instance (Extendss PhysicalDeviceExternalSemaphoreInfo es, PeekChain es) => FromCStruct (PhysicalDeviceExternalSemaphoreInfo es) where+instance ( Extendss PhysicalDeviceExternalSemaphoreInfo es+         , PeekChain es ) => FromCStruct (PhysicalDeviceExternalSemaphoreInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -264,7 +272,9 @@     compatibleHandleTypes <- peek @ExternalSemaphoreHandleTypeFlags ((p `plusPtr` 20 :: Ptr ExternalSemaphoreHandleTypeFlags))     externalSemaphoreFeatures <- peek @ExternalSemaphoreFeatureFlags ((p `plusPtr` 24 :: Ptr ExternalSemaphoreFeatureFlags))     pure $ ExternalSemaphoreProperties-             exportFromImportedHandleTypes compatibleHandleTypes externalSemaphoreFeatures+             exportFromImportedHandleTypes+             compatibleHandleTypes+             externalSemaphoreFeatures  instance Storable ExternalSemaphoreProperties where   sizeOf ~_ = 32
src/Vulkan/Core11/Promoted_From_VK_KHR_external_semaphore_capabilities.hs-boot view
@@ -22,8 +22,10 @@ type role PhysicalDeviceExternalSemaphoreInfo nominal data PhysicalDeviceExternalSemaphoreInfo (es :: [Type]) -instance (Extendss PhysicalDeviceExternalSemaphoreInfo es, PokeChain es) => ToCStruct (PhysicalDeviceExternalSemaphoreInfo es)+instance ( Extendss PhysicalDeviceExternalSemaphoreInfo es+         , PokeChain es ) => ToCStruct (PhysicalDeviceExternalSemaphoreInfo es) instance Show (Chain es) => Show (PhysicalDeviceExternalSemaphoreInfo es) -instance (Extendss PhysicalDeviceExternalSemaphoreInfo es, PeekChain es) => FromCStruct (PhysicalDeviceExternalSemaphoreInfo es)+instance ( Extendss PhysicalDeviceExternalSemaphoreInfo es+         , PeekChain es ) => FromCStruct (PhysicalDeviceExternalSemaphoreInfo es) 
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs view
@@ -98,7 +98,10 @@ -- 'BufferMemoryRequirementsInfo2', 'Vulkan.Core10.Handles.Device', -- 'MemoryRequirements2' getBufferMemoryRequirements2 :: forall a io-                              . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)+                              . ( Extendss MemoryRequirements2 a+                                , PokeChain a+                                , PeekChain a+                                , MonadIO io )                              => -- | @device@ is the logical device that owns the buffer.                                 --                                 -- #VUID-vkGetBufferMemoryRequirements2-device-parameter# @device@ /must/@@ -118,7 +121,10 @@   let vkGetBufferMemoryRequirements2' = mkVkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2Ptr   pInfo <- ContT $ withCStruct (info)   pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetBufferMemoryRequirements2" (vkGetBufferMemoryRequirements2' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  lift $ traceAroundEvent "vkGetBufferMemoryRequirements2" (vkGetBufferMemoryRequirements2'+                                                              (deviceHandle (device))+                                                              pInfo+                                                              (forgetExtensions (pPMemoryRequirements)))   pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -141,7 +147,12 @@ -- 'Vulkan.Core10.Handles.Device', 'ImageMemoryRequirementsInfo2', -- 'MemoryRequirements2' getImageMemoryRequirements2 :: forall a b io-                             . (Extendss ImageMemoryRequirementsInfo2 a, PokeChain a, Extendss MemoryRequirements2 b, PokeChain b, PeekChain b, MonadIO io)+                             . ( Extendss ImageMemoryRequirementsInfo2 a+                               , PokeChain a+                               , Extendss MemoryRequirements2 b+                               , PokeChain b+                               , PeekChain b+                               , MonadIO io )                             => -- | @device@ is the logical device that owns the image.                                --                                -- #VUID-vkGetImageMemoryRequirements2-device-parameter# @device@ /must/ be@@ -161,7 +172,10 @@   let vkGetImageMemoryRequirements2' = mkVkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2Ptr   pInfo <- ContT $ withCStruct (info)   pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetImageMemoryRequirements2" (vkGetImageMemoryRequirements2' (deviceHandle (device)) (forgetExtensions pInfo) (forgetExtensions (pPMemoryRequirements)))+  lift $ traceAroundEvent "vkGetImageMemoryRequirements2" (vkGetImageMemoryRequirements2'+                                                             (deviceHandle (device))+                                                             (forgetExtensions pInfo)+                                                             (forgetExtensions (pPMemoryRequirements)))   pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -217,11 +231,19 @@   let device' = deviceHandle (device)   pInfo <- ContT $ withCStruct (info)   pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements2" (vkGetImageSparseMemoryRequirements2' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr))+  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements2" (vkGetImageSparseMemoryRequirements2'+                                                                   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 "vkGetImageSparseMemoryRequirements2" (vkGetImageSparseMemoryRequirements2' device' pInfo (pPSparseMemoryRequirementCount) ((pPSparseMemoryRequirements)))+  lift $ traceAroundEvent "vkGetImageSparseMemoryRequirements2" (vkGetImageSparseMemoryRequirements2'+                                                                   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')@@ -368,7 +390,8 @@     | Just Refl <- eqT @e @ImagePlaneMemoryRequirementsInfo = Just f     | otherwise = Nothing -instance (Extendss ImageMemoryRequirementsInfo2 es, PokeChain es) => ToCStruct (ImageMemoryRequirementsInfo2 es) where+instance ( Extendss ImageMemoryRequirementsInfo2 es+         , PokeChain es ) => ToCStruct (ImageMemoryRequirementsInfo2 es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageMemoryRequirementsInfo2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2)@@ -385,7 +408,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)     lift $ f -instance (Extendss ImageMemoryRequirementsInfo2 es, PeekChain es) => FromCStruct (ImageMemoryRequirementsInfo2 es) where+instance ( Extendss ImageMemoryRequirementsInfo2 es+         , PeekChain es ) => FromCStruct (ImageMemoryRequirementsInfo2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -505,7 +529,8 @@     | Just Refl <- eqT @e @MemoryDedicatedRequirements = Just f     | otherwise = Nothing -instance (Extendss MemoryRequirements2 es, PokeChain es) => ToCStruct (MemoryRequirements2 es) where+instance ( Extendss MemoryRequirements2 es+         , PokeChain es ) => ToCStruct (MemoryRequirements2 es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p MemoryRequirements2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2)@@ -522,7 +547,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr MemoryRequirements)) (zero)     lift $ f -instance (Extendss MemoryRequirements2 es, PeekChain es) => FromCStruct (MemoryRequirements2 es) where+instance ( Extendss MemoryRequirements2 es+         , PeekChain es ) => FromCStruct (MemoryRequirements2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core11/Promoted_From_VK_KHR_get_memory_requirements2.hs-boot view
@@ -25,10 +25,12 @@ type role ImageMemoryRequirementsInfo2 nominal data ImageMemoryRequirementsInfo2 (es :: [Type]) -instance (Extendss ImageMemoryRequirementsInfo2 es, PokeChain es) => ToCStruct (ImageMemoryRequirementsInfo2 es)+instance ( Extendss ImageMemoryRequirementsInfo2 es+         , PokeChain es ) => ToCStruct (ImageMemoryRequirementsInfo2 es) instance Show (Chain es) => Show (ImageMemoryRequirementsInfo2 es) -instance (Extendss ImageMemoryRequirementsInfo2 es, PeekChain es) => FromCStruct (ImageMemoryRequirementsInfo2 es)+instance ( Extendss ImageMemoryRequirementsInfo2 es+         , PeekChain es ) => FromCStruct (ImageMemoryRequirementsInfo2 es)   data ImageSparseMemoryRequirementsInfo2@@ -42,10 +44,12 @@ type role MemoryRequirements2 nominal data MemoryRequirements2 (es :: [Type]) -instance (Extendss MemoryRequirements2 es, PokeChain es) => ToCStruct (MemoryRequirements2 es)+instance ( Extendss MemoryRequirements2 es+         , PokeChain es ) => ToCStruct (MemoryRequirements2 es) instance Show (Chain es) => Show (MemoryRequirements2 es) -instance (Extendss MemoryRequirements2 es, PeekChain es) => FromCStruct (MemoryRequirements2 es)+instance ( Extendss MemoryRequirements2 es+         , PeekChain es ) => FromCStruct (MemoryRequirements2 es)   data SparseImageMemoryRequirements2
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -89,6 +89,7 @@ import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceProperties2)) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceQueueFamilyProperties2)) import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceSparseImageFormatProperties2))+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..)) import Vulkan.Core10.Handles (PhysicalDevice)@@ -100,6 +101,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_astc_decode_mode (PhysicalDeviceASTCDecodeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructureFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_acceleration_structure (PhysicalDeviceAccelerationStructurePropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (PhysicalDeviceAddressBindingReportFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_SEC_amigo_profiling (PhysicalDeviceAmigoProfilingFeaturesSEC) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_attachment_feedback_loop_layout (PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PhysicalDeviceBlendOperationAdvancedFeaturesEXT)@@ -136,10 +138,13 @@ 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_state3 (PhysicalDeviceExtendedDynamicState3FeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (PhysicalDeviceExtendedDynamicState3PropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (PhysicalDeviceFaultFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)@@ -197,6 +202,10 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (PhysicalDeviceMultiviewProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_mutable_descriptor_type (PhysicalDeviceMutableDescriptorTypeFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_non_seamless_cube_map (PhysicalDeviceNonSeamlessCubeMapFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (PhysicalDeviceOpacityMicromapPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowFeaturesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (PhysicalDeviceOpticalFlowPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pci_bus_info (PhysicalDevicePCIBusInfoPropertiesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pageable_device_local_memory (PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR)@@ -204,11 +213,13 @@ 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_EXT_pipeline_properties (PhysicalDevicePipelinePropertiesFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_protected_access (PhysicalDevicePipelineProtectedAccessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_robustness (PhysicalDevicePipelineRobustnessPropertiesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (PhysicalDevicePresentBarrierFeaturesNV) 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)@@ -342,7 +353,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>, -- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceFeatures2' getPhysicalDeviceFeatures2 :: forall a io-                            . (Extendss PhysicalDeviceFeatures2 a, PokeChain a, PeekChain a, MonadIO io)+                            . ( Extendss PhysicalDeviceFeatures2 a+                              , PokeChain a+                              , PeekChain a+                              , MonadIO io )                            => -- | @physicalDevice@ is the physical device from which to query the                               -- supported features.                               --@@ -357,7 +371,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFeatures2 is null" Nothing Nothing   let vkGetPhysicalDeviceFeatures2' = mkVkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2Ptr   pPFeatures <- ContT (withZeroCStruct @(PhysicalDeviceFeatures2 _))-  lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures2" (vkGetPhysicalDeviceFeatures2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPFeatures)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceFeatures2" (vkGetPhysicalDeviceFeatures2'+                                                            (physicalDeviceHandle (physicalDevice))+                                                            (forgetExtensions (pPFeatures)))   pFeatures <- lift $ peekCStruct @(PhysicalDeviceFeatures2 _) pPFeatures   pure $ (pFeatures) @@ -385,7 +401,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>, -- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceProperties2' getPhysicalDeviceProperties2 :: forall a io-                              . (Extendss PhysicalDeviceProperties2 a, PokeChain a, PeekChain a, MonadIO io)+                              . ( Extendss PhysicalDeviceProperties2 a+                                , PokeChain a+                                , PeekChain a+                                , MonadIO io )                              => -- | @physicalDevice@ is the handle to the physical device whose properties                                 -- will be queried.                                 --@@ -400,7 +419,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceProperties2 is null" Nothing Nothing   let vkGetPhysicalDeviceProperties2' = mkVkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2Ptr   pPProperties <- ContT (withZeroCStruct @(PhysicalDeviceProperties2 _))-  lift $ traceAroundEvent "vkGetPhysicalDeviceProperties2" (vkGetPhysicalDeviceProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPProperties)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceProperties2" (vkGetPhysicalDeviceProperties2'+                                                              (physicalDeviceHandle (physicalDevice))+                                                              (forgetExtensions (pPProperties)))   pProperties <- lift $ peekCStruct @(PhysicalDeviceProperties2 _) pPProperties   pure $ (pProperties) @@ -430,7 +451,10 @@ -- 'Vulkan.Core10.Enums.Format.Format', 'FormatProperties2', -- 'Vulkan.Core10.Handles.PhysicalDevice' getPhysicalDeviceFormatProperties2 :: forall a io-                                    . (Extendss FormatProperties2 a, PokeChain a, PeekChain a, MonadIO io)+                                    . ( Extendss FormatProperties2 a+                                      , PokeChain a+                                      , PeekChain a+                                      , MonadIO io )                                    => -- | @physicalDevice@ is the physical device from which to query the format                                       -- properties.                                       --@@ -444,13 +468,17 @@                                       -- /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value                                       Format                                    -> io (FormatProperties2 a)-getPhysicalDeviceFormatProperties2 physicalDevice format = liftIO . evalContT $ do+getPhysicalDeviceFormatProperties2 physicalDevice+                                     format = liftIO . evalContT $ do   let vkGetPhysicalDeviceFormatProperties2Ptr = pVkGetPhysicalDeviceFormatProperties2 (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceFormatProperties2Ptr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceFormatProperties2 is null" Nothing Nothing   let vkGetPhysicalDeviceFormatProperties2' = mkVkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2Ptr   pPFormatProperties <- ContT (withZeroCStruct @(FormatProperties2 _))-  lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties2" (vkGetPhysicalDeviceFormatProperties2' (physicalDeviceHandle (physicalDevice)) (format) (forgetExtensions (pPFormatProperties)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceFormatProperties2" (vkGetPhysicalDeviceFormatProperties2'+                                                                    (physicalDeviceHandle (physicalDevice))+                                                                    (format)+                                                                    (forgetExtensions (pPFormatProperties)))   pFormatProperties <- lift $ peekCStruct @(FormatProperties2 _) pPFormatProperties   pure $ (pFormatProperties) @@ -542,7 +570,12 @@ -- 'ImageFormatProperties2', 'Vulkan.Core10.Handles.PhysicalDevice', -- 'PhysicalDeviceImageFormatInfo2' getPhysicalDeviceImageFormatProperties2 :: forall a b io-                                         . (Extendss PhysicalDeviceImageFormatInfo2 a, PokeChain a, Extendss ImageFormatProperties2 b, PokeChain b, PeekChain b, MonadIO io)+                                         . ( Extendss PhysicalDeviceImageFormatInfo2 a+                                           , PokeChain a+                                           , Extendss ImageFormatProperties2 b+                                           , PokeChain b+                                           , PeekChain b+                                           , MonadIO io )                                         => -- | @physicalDevice@ is the physical device from which to query the image                                            -- capabilities.                                            PhysicalDevice@@ -551,14 +584,18 @@                                            -- 'Vulkan.Core10.Image.createImage'.                                            (PhysicalDeviceImageFormatInfo2 a)                                         -> io (ImageFormatProperties2 b)-getPhysicalDeviceImageFormatProperties2 physicalDevice imageFormatInfo = liftIO . evalContT $ do+getPhysicalDeviceImageFormatProperties2 physicalDevice+                                          imageFormatInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceImageFormatProperties2Ptr = pVkGetPhysicalDeviceImageFormatProperties2 (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceImageFormatProperties2Ptr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceImageFormatProperties2 is null" Nothing Nothing   let vkGetPhysicalDeviceImageFormatProperties2' = mkVkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2Ptr   pImageFormatInfo <- ContT $ withCStruct (imageFormatInfo)   pPImageFormatProperties <- ContT (withZeroCStruct @(ImageFormatProperties2 _))-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties2" (vkGetPhysicalDeviceImageFormatProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pImageFormatInfo) (forgetExtensions (pPImageFormatProperties)))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceImageFormatProperties2" (vkGetPhysicalDeviceImageFormatProperties2'+                                                                              (physicalDeviceHandle (physicalDevice))+                                                                              (forgetExtensions pImageFormatInfo)+                                                                              (forgetExtensions (pPImageFormatProperties)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pImageFormatProperties <- lift $ peekCStruct @(ImageFormatProperties2 _) pPImageFormatProperties   pure $ (pImageFormatProperties)@@ -602,7 +639,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_1 VK_VERSION_1_1>, -- 'Vulkan.Core10.Handles.PhysicalDevice', 'QueueFamilyProperties2' getPhysicalDeviceQueueFamilyProperties2 :: forall a io-                                         . (Extendss QueueFamilyProperties2 a, PokeChain a, PeekChain a, MonadIO io)+                                         . ( Extendss QueueFamilyProperties2 a+                                           , PokeChain a+                                           , PeekChain a+                                           , MonadIO io )                                         => -- | @physicalDevice@ is the handle to the physical device whose properties                                            -- will be queried.                                            PhysicalDevice@@ -614,11 +654,17 @@   let vkGetPhysicalDeviceQueueFamilyProperties2' = mkVkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2Ptr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPQueueFamilyPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties2" (vkGetPhysicalDeviceQueueFamilyProperties2' physicalDevice' (pPQueueFamilyPropertyCount) (forgetExtensions (nullPtr)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties2" (vkGetPhysicalDeviceQueueFamilyProperties2'+                                                                         physicalDevice'+                                                                         (pPQueueFamilyPropertyCount)+                                                                         (forgetExtensions (nullPtr)))   pQueueFamilyPropertyCount <- lift $ peek @Word32 pPQueueFamilyPropertyCount   pPQueueFamilyProperties <- ContT $ bracket (callocBytes @(QueueFamilyProperties2 _) ((fromIntegral (pQueueFamilyPropertyCount)) * 40)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPQueueFamilyProperties `advancePtrBytes` (i * 40) :: Ptr (QueueFamilyProperties2 _)) . ($ ())) [0..(fromIntegral (pQueueFamilyPropertyCount)) - 1]-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties2" (vkGetPhysicalDeviceQueueFamilyProperties2' physicalDevice' (pPQueueFamilyPropertyCount) (forgetExtensions ((pPQueueFamilyProperties))))+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyProperties2" (vkGetPhysicalDeviceQueueFamilyProperties2'+                                                                         physicalDevice'+                                                                         (pPQueueFamilyPropertyCount)+                                                                         (forgetExtensions ((pPQueueFamilyProperties))))   pQueueFamilyPropertyCount' <- lift $ peek @Word32 pPQueueFamilyPropertyCount   pQueueFamilyProperties' <- lift $ generateM (fromIntegral (pQueueFamilyPropertyCount')) (\i -> peekCStruct @(QueueFamilyProperties2 _) (((pPQueueFamilyProperties) `advancePtrBytes` (40 * (i)) :: Ptr (QueueFamilyProperties2 _))))   pure $ (pQueueFamilyProperties')@@ -649,7 +695,10 @@ -- 'Vulkan.Core10.Handles.PhysicalDevice', -- 'PhysicalDeviceMemoryProperties2' getPhysicalDeviceMemoryProperties2 :: forall a io-                                    . (Extendss PhysicalDeviceMemoryProperties2 a, PokeChain a, PeekChain a, MonadIO io)+                                    . ( Extendss PhysicalDeviceMemoryProperties2 a+                                      , PokeChain a+                                      , PeekChain a+                                      , MonadIO io )                                    => -- | @physicalDevice@ is the handle to the device to query.                                       --                                       -- #VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter#@@ -663,7 +712,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMemoryProperties2 is null" Nothing Nothing   let vkGetPhysicalDeviceMemoryProperties2' = mkVkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2Ptr   pPMemoryProperties <- ContT (withZeroCStruct @(PhysicalDeviceMemoryProperties2 _))-  lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties2" (vkGetPhysicalDeviceMemoryProperties2' (physicalDeviceHandle (physicalDevice)) (forgetExtensions (pPMemoryProperties)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceMemoryProperties2" (vkGetPhysicalDeviceMemoryProperties2'+                                                                    (physicalDeviceHandle (physicalDevice))+                                                                    (forgetExtensions (pPMemoryProperties)))   pMemoryProperties <- lift $ peekCStruct @(PhysicalDeviceMemoryProperties2 _) pPMemoryProperties   pure $ (pMemoryProperties) @@ -718,7 +769,8 @@                                                  -- structure containing input parameters to the command.                                                  PhysicalDeviceSparseImageFormatInfo2                                               -> io (("properties" ::: Vector SparseImageFormatProperties2))-getPhysicalDeviceSparseImageFormatProperties2 physicalDevice formatInfo = liftIO . evalContT $ do+getPhysicalDeviceSparseImageFormatProperties2 physicalDevice+                                                formatInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceSparseImageFormatProperties2Ptr = pVkGetPhysicalDeviceSparseImageFormatProperties2 (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSparseImageFormatProperties2Ptr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSparseImageFormatProperties2 is null" Nothing Nothing@@ -726,11 +778,19 @@   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pFormatInfo <- ContT $ withCStruct (formatInfo)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties2" (vkGetPhysicalDeviceSparseImageFormatProperties2' physicalDevice' pFormatInfo (pPPropertyCount) (nullPtr))+  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties2" (vkGetPhysicalDeviceSparseImageFormatProperties2'+                                                                               physicalDevice'+                                                                               pFormatInfo+                                                                               (pPPropertyCount)+                                                                               (nullPtr))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @SparseImageFormatProperties2 ((fromIntegral (pPropertyCount)) * 40)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 40) :: Ptr SparseImageFormatProperties2) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties2" (vkGetPhysicalDeviceSparseImageFormatProperties2' physicalDevice' pFormatInfo (pPPropertyCount) ((pPProperties)))+  lift $ traceAroundEvent "vkGetPhysicalDeviceSparseImageFormatProperties2" (vkGetPhysicalDeviceSparseImageFormatProperties2'+                                                                               physicalDevice'+                                                                               pFormatInfo+                                                                               (pPPropertyCount)+                                                                               ((pPProperties)))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @SparseImageFormatProperties2 (((pPProperties) `advancePtrBytes` (40 * (i)) :: Ptr SparseImageFormatProperties2)))   pure $ (pProperties')@@ -777,6 +837,9 @@   getNext PhysicalDeviceFeatures2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceFaultFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceAddressBindingReportFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDepthClampZeroOneFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceAmigoProfilingFeaturesSEC = Just f@@ -786,6 +849,7 @@     | Just Refl <- eqT @e @PhysicalDeviceNonSeamlessCubeMapFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD = Just f     | Just Refl <- eqT @e @PhysicalDevicePipelinePropertiesFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceOpacityMicromapFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassMergeFeedbackFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageCompressionControlFeaturesEXT = Just f@@ -803,6 +867,7 @@     | 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 @PhysicalDevicePipelineProtectedAccessFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceLegacyDitheringFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT = Just f@@ -826,6 +891,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f+    | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState3FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicState2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceExtendedDynamicStateFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceBorderColorSwizzleFeaturesEXT = Just f@@ -849,6 +915,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = Just f     | Just Refl <- eqT @e @PhysicalDeviceCoverageReductionModeFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDevicePerformanceQueryFeaturesKHR = Just f+    | Just Refl <- eqT @e @PhysicalDevicePresentBarrierFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceYcbcrImageArraysFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCooperativeMatrixFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceTextureCompressionASTCHDRFeatures = Just f@@ -909,7 +976,8 @@     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = Just f     | otherwise = Nothing -instance (Extendss PhysicalDeviceFeatures2 es, PokeChain es) => ToCStruct (PhysicalDeviceFeatures2 es) where+instance ( Extendss PhysicalDeviceFeatures2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceFeatures2 es) where   withCStruct x f = allocaBytes 240 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PhysicalDeviceFeatures2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2)@@ -926,7 +994,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceFeatures)) (zero)     lift $ f -instance (Extendss PhysicalDeviceFeatures2 es, PeekChain es) => FromCStruct (PhysicalDeviceFeatures2 es) where+instance ( Extendss PhysicalDeviceFeatures2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceFeatures2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -967,6 +1036,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_EXT_extended_dynamic_state3.PhysicalDeviceExtendedDynamicState3PropertiesEXT', --     'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', --     'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2PropertiesEXT',@@ -987,6 +1057,8 @@ --     'Vulkan.Extensions.VK_EXT_multi_draw.PhysicalDeviceMultiDrawPropertiesEXT', --     'Vulkan.Extensions.VK_NVX_multiview_per_view_attributes.PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX', --     'Vulkan.Core11.Promoted_From_VK_KHR_multiview.PhysicalDeviceMultiviewProperties',+--     'Vulkan.Extensions.VK_EXT_opacity_micromap.PhysicalDeviceOpacityMicromapPropertiesEXT',+--     'Vulkan.Extensions.VK_NV_optical_flow.PhysicalDeviceOpticalFlowPropertiesNV', --     'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT', --     'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', --     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PhysicalDevicePipelineRobustnessPropertiesEXT',@@ -1049,8 +1121,10 @@   getNext PhysicalDeviceProperties2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceOpticalFlowPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageProcessingPropertiesQCOM = Just f     | Just Refl <- eqT @e @PhysicalDevicePipelineRobustnessPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceOpacityMicromapPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderModuleIdentifierPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShaderBarycentricPropertiesKHR = Just f@@ -1061,6 +1135,7 @@     | 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 @PhysicalDeviceExtendedDynamicState3PropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan13Properties = Just f     | Just Refl <- eqT @e @PhysicalDeviceVulkan12Properties = Just f@@ -1111,7 +1186,8 @@     | Just Refl <- eqT @e @PhysicalDeviceDeviceGeneratedCommandsPropertiesNV = Just f     | otherwise = Nothing -instance (Extendss PhysicalDeviceProperties2 es, PokeChain es) => ToCStruct (PhysicalDeviceProperties2 es) where+instance ( Extendss PhysicalDeviceProperties2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceProperties2 es) where   withCStruct x f = allocaBytes 840 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PhysicalDeviceProperties2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2)@@ -1128,7 +1204,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceProperties)) (zero)     lift $ f -instance (Extendss PhysicalDeviceProperties2 es, PeekChain es) => FromCStruct (PhysicalDeviceProperties2 es) where+instance ( Extendss PhysicalDeviceProperties2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceProperties2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1194,7 +1271,8 @@     | Just Refl <- eqT @e @DrmFormatModifierPropertiesListEXT = Just f     | otherwise = Nothing -instance (Extendss FormatProperties2 es, PokeChain es) => ToCStruct (FormatProperties2 es) where+instance ( Extendss FormatProperties2 es+         , PokeChain es ) => ToCStruct (FormatProperties2 es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p FormatProperties2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_FORMAT_PROPERTIES_2)@@ -1211,7 +1289,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr FormatProperties)) (zero)     lift $ f -instance (Extendss FormatProperties2 es, PeekChain es) => FromCStruct (FormatProperties2 es) where+instance ( Extendss FormatProperties2 es+         , PeekChain es ) => FromCStruct (FormatProperties2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1301,7 +1380,8 @@     | Just Refl <- eqT @e @ExternalImageFormatProperties = Just f     | otherwise = Nothing -instance (Extendss ImageFormatProperties2 es, PokeChain es) => ToCStruct (ImageFormatProperties2 es) where+instance ( Extendss ImageFormatProperties2 es+         , PokeChain es ) => ToCStruct (ImageFormatProperties2 es) where   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ImageFormatProperties2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2)@@ -1318,7 +1398,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr ImageFormatProperties)) (zero)     lift $ f -instance (Extendss ImageFormatProperties2 es, PeekChain es) => FromCStruct (ImageFormatProperties2 es) where+instance ( Extendss ImageFormatProperties2 es+         , PeekChain es ) => FromCStruct (ImageFormatProperties2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1370,6 +1451,7 @@ --     'Vulkan.Extensions.VK_EXT_image_compression_control.ImageCompressionControlEXT', --     'Vulkan.Core12.Promoted_From_VK_KHR_image_format_list.ImageFormatListCreateInfo', --     'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo',+--     'Vulkan.Extensions.VK_NV_optical_flow.OpticalFlowImageFormatInfoNV', --     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo', --     'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.PhysicalDeviceImageDrmFormatModifierInfoEXT', --     'Vulkan.Extensions.VK_EXT_filter_cubic.PhysicalDeviceImageViewImageFormatInfoEXT',@@ -1452,6 +1534,7 @@   getNext PhysicalDeviceImageFormatInfo2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceImageFormatInfo2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @OpticalFlowImageFormatInfoNV = Just f     | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceImageViewImageFormatInfoEXT = Just f     | Just Refl <- eqT @e @ImageStencilUsageCreateInfo = Just f@@ -1460,7 +1543,8 @@     | Just Refl <- eqT @e @PhysicalDeviceExternalImageFormatInfo = Just f     | otherwise = Nothing -instance (Extendss PhysicalDeviceImageFormatInfo2 es, PokeChain es) => ToCStruct (PhysicalDeviceImageFormatInfo2 es) where+instance ( Extendss PhysicalDeviceImageFormatInfo2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceImageFormatInfo2 es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PhysicalDeviceImageFormatInfo2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2)@@ -1484,7 +1568,8 @@     lift $ poke ((p `plusPtr` 28 :: Ptr ImageUsageFlags)) (zero)     lift $ f -instance (Extendss PhysicalDeviceImageFormatInfo2 es, PeekChain es) => FromCStruct (PhysicalDeviceImageFormatInfo2 es) where+instance ( Extendss PhysicalDeviceImageFormatInfo2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceImageFormatInfo2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1560,7 +1645,8 @@     | Just Refl <- eqT @e @QueueFamilyGlobalPriorityPropertiesKHR = Just f     | otherwise = Nothing -instance (Extendss QueueFamilyProperties2 es, PokeChain es) => ToCStruct (QueueFamilyProperties2 es) where+instance ( Extendss QueueFamilyProperties2 es+         , PokeChain es ) => ToCStruct (QueueFamilyProperties2 es) where   withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)   pokeCStruct p QueueFamilyProperties2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2)@@ -1577,7 +1663,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr QueueFamilyProperties)) (zero)     lift $ f -instance (Extendss QueueFamilyProperties2 es, PeekChain es) => FromCStruct (QueueFamilyProperties2 es) where+instance ( Extendss QueueFamilyProperties2 es+         , PeekChain es ) => FromCStruct (QueueFamilyProperties2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1638,7 +1725,8 @@     | Just Refl <- eqT @e @PhysicalDeviceMemoryBudgetPropertiesEXT = Just f     | otherwise = Nothing -instance (Extendss PhysicalDeviceMemoryProperties2 es, PokeChain es) => ToCStruct (PhysicalDeviceMemoryProperties2 es) where+instance ( Extendss PhysicalDeviceMemoryProperties2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceMemoryProperties2 es) where   withCStruct x f = allocaBytes 536 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PhysicalDeviceMemoryProperties2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2)@@ -1655,7 +1743,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr PhysicalDeviceMemoryProperties)) (zero)     lift $ f -instance (Extendss PhysicalDeviceMemoryProperties2 es, PeekChain es) => FromCStruct (PhysicalDeviceMemoryProperties2 es) where+instance ( Extendss PhysicalDeviceMemoryProperties2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceMemoryProperties2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs-boot view
@@ -21,55 +21,67 @@ type role FormatProperties2 nominal data FormatProperties2 (es :: [Type]) -instance (Extendss FormatProperties2 es, PokeChain es) => ToCStruct (FormatProperties2 es)+instance ( Extendss FormatProperties2 es+         , PokeChain es ) => ToCStruct (FormatProperties2 es) instance Show (Chain es) => Show (FormatProperties2 es) -instance (Extendss FormatProperties2 es, PeekChain es) => FromCStruct (FormatProperties2 es)+instance ( Extendss FormatProperties2 es+         , PeekChain es ) => FromCStruct (FormatProperties2 es)   type role ImageFormatProperties2 nominal data ImageFormatProperties2 (es :: [Type]) -instance (Extendss ImageFormatProperties2 es, PokeChain es) => ToCStruct (ImageFormatProperties2 es)+instance ( Extendss ImageFormatProperties2 es+         , PokeChain es ) => ToCStruct (ImageFormatProperties2 es) instance Show (Chain es) => Show (ImageFormatProperties2 es) -instance (Extendss ImageFormatProperties2 es, PeekChain es) => FromCStruct (ImageFormatProperties2 es)+instance ( Extendss ImageFormatProperties2 es+         , PeekChain es ) => FromCStruct (ImageFormatProperties2 es)   type role PhysicalDeviceFeatures2 nominal data PhysicalDeviceFeatures2 (es :: [Type]) -instance (Extendss PhysicalDeviceFeatures2 es, PokeChain es) => ToCStruct (PhysicalDeviceFeatures2 es)+instance ( Extendss PhysicalDeviceFeatures2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceFeatures2 es) instance Show (Chain es) => Show (PhysicalDeviceFeatures2 es) -instance (Extendss PhysicalDeviceFeatures2 es, PeekChain es) => FromCStruct (PhysicalDeviceFeatures2 es)+instance ( Extendss PhysicalDeviceFeatures2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceFeatures2 es)   type role PhysicalDeviceImageFormatInfo2 nominal data PhysicalDeviceImageFormatInfo2 (es :: [Type]) -instance (Extendss PhysicalDeviceImageFormatInfo2 es, PokeChain es) => ToCStruct (PhysicalDeviceImageFormatInfo2 es)+instance ( Extendss PhysicalDeviceImageFormatInfo2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceImageFormatInfo2 es) instance Show (Chain es) => Show (PhysicalDeviceImageFormatInfo2 es) -instance (Extendss PhysicalDeviceImageFormatInfo2 es, PeekChain es) => FromCStruct (PhysicalDeviceImageFormatInfo2 es)+instance ( Extendss PhysicalDeviceImageFormatInfo2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceImageFormatInfo2 es)   type role PhysicalDeviceMemoryProperties2 nominal data PhysicalDeviceMemoryProperties2 (es :: [Type]) -instance (Extendss PhysicalDeviceMemoryProperties2 es, PokeChain es) => ToCStruct (PhysicalDeviceMemoryProperties2 es)+instance ( Extendss PhysicalDeviceMemoryProperties2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceMemoryProperties2 es) instance Show (Chain es) => Show (PhysicalDeviceMemoryProperties2 es) -instance (Extendss PhysicalDeviceMemoryProperties2 es, PeekChain es) => FromCStruct (PhysicalDeviceMemoryProperties2 es)+instance ( Extendss PhysicalDeviceMemoryProperties2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceMemoryProperties2 es)   type role PhysicalDeviceProperties2 nominal data PhysicalDeviceProperties2 (es :: [Type]) -instance (Extendss PhysicalDeviceProperties2 es, PokeChain es) => ToCStruct (PhysicalDeviceProperties2 es)+instance ( Extendss PhysicalDeviceProperties2 es+         , PokeChain es ) => ToCStruct (PhysicalDeviceProperties2 es) instance Show (Chain es) => Show (PhysicalDeviceProperties2 es) -instance (Extendss PhysicalDeviceProperties2 es, PeekChain es) => FromCStruct (PhysicalDeviceProperties2 es)+instance ( Extendss PhysicalDeviceProperties2 es+         , PeekChain es ) => FromCStruct (PhysicalDeviceProperties2 es)   data PhysicalDeviceSparseImageFormatInfo2@@ -83,10 +95,12 @@ type role QueueFamilyProperties2 nominal data QueueFamilyProperties2 (es :: [Type]) -instance (Extendss QueueFamilyProperties2 es, PokeChain es) => ToCStruct (QueueFamilyProperties2 es)+instance ( Extendss QueueFamilyProperties2 es+         , PokeChain es ) => ToCStruct (QueueFamilyProperties2 es) instance Show (Chain es) => Show (QueueFamilyProperties2 es) -instance (Extendss QueueFamilyProperties2 es, PeekChain es) => FromCStruct (QueueFamilyProperties2 es)+instance ( Extendss QueueFamilyProperties2 es+         , PeekChain es ) => FromCStruct (QueueFamilyProperties2 es)   data SparseImageFormatProperties2
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance1.hs view
@@ -121,6 +121,9 @@   unless (vkTrimCommandPoolPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkTrimCommandPool is null" Nothing Nothing   let vkTrimCommandPool' = mkVkTrimCommandPool vkTrimCommandPoolPtr-  traceAroundEvent "vkTrimCommandPool" (vkTrimCommandPool' (deviceHandle (device)) (commandPool) (flags))+  traceAroundEvent "vkTrimCommandPool" (vkTrimCommandPool'+                                          (deviceHandle (device))+                                          (commandPool)+                                          (flags))   pure $ () 
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs view
@@ -111,7 +111,12 @@ -- 'Vulkan.Core10.DescriptorSet.DescriptorSetLayoutCreateInfo', -- 'DescriptorSetLayoutSupport', 'Vulkan.Core10.Handles.Device' getDescriptorSetLayoutSupport :: forall a b io-                               . (Extendss DescriptorSetLayoutCreateInfo a, PokeChain a, Extendss DescriptorSetLayoutSupport b, PokeChain b, PeekChain b, MonadIO io)+                               . ( Extendss DescriptorSetLayoutCreateInfo a+                                 , PokeChain a+                                 , Extendss DescriptorSetLayoutSupport b+                                 , PokeChain b+                                 , PeekChain b+                                 , MonadIO io )                               => -- | @device@ is the logical device that would create the descriptor set                                  -- layout.                                  --@@ -134,7 +139,10 @@   let vkGetDescriptorSetLayoutSupport' = mkVkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupportPtr   pCreateInfo <- ContT $ withCStruct (createInfo)   pPSupport <- ContT (withZeroCStruct @(DescriptorSetLayoutSupport _))-  lift $ traceAroundEvent "vkGetDescriptorSetLayoutSupport" (vkGetDescriptorSetLayoutSupport' (deviceHandle (device)) (forgetExtensions pCreateInfo) (forgetExtensions (pPSupport)))+  lift $ traceAroundEvent "vkGetDescriptorSetLayoutSupport" (vkGetDescriptorSetLayoutSupport'+                                                               (deviceHandle (device))+                                                               (forgetExtensions pCreateInfo)+                                                               (forgetExtensions (pPSupport)))   pSupport <- lift $ peekCStruct @(DescriptorSetLayoutSupport _) pPSupport   pure $ (pSupport) @@ -264,7 +272,8 @@     | Just Refl <- eqT @e @DescriptorSetVariableDescriptorCountLayoutSupport = Just f     | otherwise = Nothing -instance (Extendss DescriptorSetLayoutSupport es, PokeChain es) => ToCStruct (DescriptorSetLayoutSupport es) where+instance ( Extendss DescriptorSetLayoutSupport es+         , PokeChain es ) => ToCStruct (DescriptorSetLayoutSupport es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DescriptorSetLayoutSupport{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT)@@ -281,7 +290,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))     lift $ f -instance (Extendss DescriptorSetLayoutSupport es, PeekChain es) => FromCStruct (DescriptorSetLayoutSupport es) where+instance ( Extendss DescriptorSetLayoutSupport es+         , PeekChain es ) => FromCStruct (DescriptorSetLayoutSupport es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core11/Promoted_From_VK_KHR_maintenance3.hs-boot view
@@ -14,10 +14,12 @@ type role DescriptorSetLayoutSupport nominal data DescriptorSetLayoutSupport (es :: [Type]) -instance (Extendss DescriptorSetLayoutSupport es, PokeChain es) => ToCStruct (DescriptorSetLayoutSupport es)+instance ( Extendss DescriptorSetLayoutSupport es+         , PokeChain es ) => ToCStruct (DescriptorSetLayoutSupport es) instance Show (Chain es) => Show (DescriptorSetLayoutSupport es) -instance (Extendss DescriptorSetLayoutSupport es, PeekChain es) => FromCStruct (DescriptorSetLayoutSupport es)+instance ( Extendss DescriptorSetLayoutSupport es+         , PeekChain es ) => FromCStruct (DescriptorSetLayoutSupport es)   data PhysicalDeviceMaintenance3Properties
src/Vulkan/Core11/Promoted_From_VK_KHR_multiview.hs view
@@ -149,7 +149,9 @@     multiviewGeometryShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     multiviewTessellationShader <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceMultiviewFeatures-             (bool32ToBool multiview) (bool32ToBool multiviewGeometryShader) (bool32ToBool multiviewTessellationShader)+             (bool32ToBool multiview)+             (bool32ToBool multiviewGeometryShader)+             (bool32ToBool multiviewTessellationShader)  instance Storable PhysicalDeviceMultiviewFeatures where   sizeOf ~_ = 32
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs view
@@ -177,7 +177,9 @@ -- 'Vulkan.Core11.Handles.SamplerYcbcrConversion', -- 'SamplerYcbcrConversionCreateInfo' createSamplerYcbcrConversion :: forall a io-                              . (Extendss SamplerYcbcrConversionCreateInfo a, PokeChain a, MonadIO io)+                              . ( Extendss SamplerYcbcrConversionCreateInfo a+                                , PokeChain a+                                , MonadIO io )                              => -- | @device@ is the logical device that creates the sampler Y′CBCR                                 -- conversion.                                 Device@@ -189,7 +191,9 @@                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (SamplerYcbcrConversion)-createSamplerYcbcrConversion device createInfo allocator = liftIO . evalContT $ do+createSamplerYcbcrConversion device+                               createInfo+                               allocator = liftIO . evalContT $ do   let vkCreateSamplerYcbcrConversionPtr = pVkCreateSamplerYcbcrConversion (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateSamplerYcbcrConversionPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateSamplerYcbcrConversion is null" Nothing Nothing@@ -199,7 +203,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPYcbcrConversion <- ContT $ bracket (callocBytes @SamplerYcbcrConversion 8) free-  r <- lift $ traceAroundEvent "vkCreateSamplerYcbcrConversion" (vkCreateSamplerYcbcrConversion' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPYcbcrConversion))+  r <- lift $ traceAroundEvent "vkCreateSamplerYcbcrConversion" (vkCreateSamplerYcbcrConversion'+                                                                   (deviceHandle (device))+                                                                   (forgetExtensions pCreateInfo)+                                                                   pAllocator+                                                                   (pPYcbcrConversion))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pYcbcrConversion <- lift $ peek @SamplerYcbcrConversion pPYcbcrConversion   pure $ (pYcbcrConversion)@@ -267,7 +275,9 @@                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io ()-destroySamplerYcbcrConversion device ycbcrConversion allocator = liftIO . evalContT $ do+destroySamplerYcbcrConversion device+                                ycbcrConversion+                                allocator = liftIO . evalContT $ do   let vkDestroySamplerYcbcrConversionPtr = pVkDestroySamplerYcbcrConversion (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroySamplerYcbcrConversionPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroySamplerYcbcrConversion is null" Nothing Nothing@@ -275,7 +285,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroySamplerYcbcrConversion" (vkDestroySamplerYcbcrConversion' (deviceHandle (device)) (ycbcrConversion) pAllocator)+  lift $ traceAroundEvent "vkDestroySamplerYcbcrConversion" (vkDestroySamplerYcbcrConversion'+                                                               (deviceHandle (device))+                                                               (ycbcrConversion)+                                                               pAllocator)   pure $ ()  @@ -573,7 +586,8 @@     | Just Refl <- eqT @e @ExternalFormatANDROID = Just f     | otherwise = Nothing -instance (Extendss SamplerYcbcrConversionCreateInfo es, PokeChain es) => ToCStruct (SamplerYcbcrConversionCreateInfo es) where+instance ( Extendss SamplerYcbcrConversionCreateInfo es+         , PokeChain es ) => ToCStruct (SamplerYcbcrConversionCreateInfo es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SamplerYcbcrConversionCreateInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO)@@ -604,7 +618,8 @@     lift $ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))     lift $ f -instance (Extendss SamplerYcbcrConversionCreateInfo es, PeekChain es) => FromCStruct (SamplerYcbcrConversionCreateInfo es) where+instance ( Extendss SamplerYcbcrConversionCreateInfo es+         , PeekChain es ) => FromCStruct (SamplerYcbcrConversionCreateInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -617,7 +632,15 @@     chromaFilter <- peek @Filter ((p `plusPtr` 52 :: Ptr Filter))     forceExplicitReconstruction <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))     pure $ SamplerYcbcrConversionCreateInfo-             next format ycbcrModel ycbcrRange components xChromaOffset yChromaOffset chromaFilter (bool32ToBool forceExplicitReconstruction)+             next+             format+             ycbcrModel+             ycbcrRange+             components+             xChromaOffset+             yChromaOffset+             chromaFilter+             (bool32ToBool forceExplicitReconstruction)  instance es ~ '[] => Zero (SamplerYcbcrConversionCreateInfo es) where   zero = SamplerYcbcrConversionCreateInfo
src/Vulkan/Core11/Promoted_From_VK_KHR_sampler_ycbcr_conversion.hs-boot view
@@ -42,10 +42,12 @@ type role SamplerYcbcrConversionCreateInfo nominal data SamplerYcbcrConversionCreateInfo (es :: [Type]) -instance (Extendss SamplerYcbcrConversionCreateInfo es, PokeChain es) => ToCStruct (SamplerYcbcrConversionCreateInfo es)+instance ( Extendss SamplerYcbcrConversionCreateInfo es+         , PokeChain es ) => ToCStruct (SamplerYcbcrConversionCreateInfo es) instance Show (Chain es) => Show (SamplerYcbcrConversionCreateInfo es) -instance (Extendss SamplerYcbcrConversionCreateInfo es, PeekChain es) => FromCStruct (SamplerYcbcrConversionCreateInfo es)+instance ( Extendss SamplerYcbcrConversionCreateInfo es+         , PeekChain es ) => FromCStruct (SamplerYcbcrConversionCreateInfo es)   data SamplerYcbcrConversionImageFormatProperties
src/Vulkan/Core11/Promoted_From_VK_KHR_variable_pointers.hs view
@@ -120,7 +120,8 @@     variablePointersStorageBuffer <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     variablePointers <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceVariablePointersFeatures-             (bool32ToBool variablePointersStorageBuffer) (bool32ToBool variablePointers)+             (bool32ToBool variablePointersStorageBuffer)+             (bool32ToBool variablePointers)  instance Storable PhysicalDeviceVariablePointersFeatures where   sizeOf ~_ = 24
src/Vulkan/Core12.hs view
@@ -268,7 +268,18 @@     samplerYcbcrConversion <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))     shaderDrawParameters <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))     pure $ PhysicalDeviceVulkan11Features-             (bool32ToBool storageBuffer16BitAccess) (bool32ToBool uniformAndStorageBuffer16BitAccess) (bool32ToBool storagePushConstant16) (bool32ToBool storageInputOutput16) (bool32ToBool multiview) (bool32ToBool multiviewGeometryShader) (bool32ToBool multiviewTessellationShader) (bool32ToBool variablePointersStorageBuffer) (bool32ToBool variablePointers) (bool32ToBool protectedMemory) (bool32ToBool samplerYcbcrConversion) (bool32ToBool shaderDrawParameters)+             (bool32ToBool storageBuffer16BitAccess)+             (bool32ToBool uniformAndStorageBuffer16BitAccess)+             (bool32ToBool storagePushConstant16)+             (bool32ToBool storageInputOutput16)+             (bool32ToBool multiview)+             (bool32ToBool multiviewGeometryShader)+             (bool32ToBool multiviewTessellationShader)+             (bool32ToBool variablePointersStorageBuffer)+             (bool32ToBool variablePointers)+             (bool32ToBool protectedMemory)+             (bool32ToBool samplerYcbcrConversion)+             (bool32ToBool shaderDrawParameters)  instance Storable PhysicalDeviceVulkan11Features where   sizeOf ~_ = 64@@ -489,7 +500,21 @@     maxPerSetDescriptors <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))     maxMemoryAllocationSize <- peek @DeviceSize ((p `plusPtr` 104 :: Ptr DeviceSize))     pure $ PhysicalDeviceVulkan11Properties-             deviceUUID driverUUID deviceLUID deviceNodeMask (bool32ToBool deviceLUIDValid) subgroupSize subgroupSupportedStages subgroupSupportedOperations (bool32ToBool subgroupQuadOperationsInAllStages) pointClippingBehavior maxMultiviewViewCount maxMultiviewInstanceIndex (bool32ToBool protectedNoFault) maxPerSetDescriptors maxMemoryAllocationSize+             deviceUUID+             driverUUID+             deviceLUID+             deviceNodeMask+             (bool32ToBool deviceLUIDValid)+             subgroupSize+             subgroupSupportedStages+             subgroupSupportedOperations+             (bool32ToBool subgroupQuadOperationsInAllStages)+             pointClippingBehavior+             maxMultiviewViewCount+             maxMultiviewInstanceIndex+             (bool32ToBool protectedNoFault)+             maxPerSetDescriptors+             maxMemoryAllocationSize  instance Storable PhysicalDeviceVulkan11Properties where   sizeOf ~_ = 112@@ -1202,7 +1227,53 @@     shaderOutputLayer <- peek @Bool32 ((p `plusPtr` 196 :: Ptr Bool32))     subgroupBroadcastDynamicId <- peek @Bool32 ((p `plusPtr` 200 :: Ptr Bool32))     pure $ PhysicalDeviceVulkan12Features-             (bool32ToBool samplerMirrorClampToEdge) (bool32ToBool drawIndirectCount) (bool32ToBool storageBuffer8BitAccess) (bool32ToBool uniformAndStorageBuffer8BitAccess) (bool32ToBool storagePushConstant8) (bool32ToBool shaderBufferInt64Atomics) (bool32ToBool shaderSharedInt64Atomics) (bool32ToBool shaderFloat16) (bool32ToBool shaderInt8) (bool32ToBool descriptorIndexing) (bool32ToBool shaderInputAttachmentArrayDynamicIndexing) (bool32ToBool shaderUniformTexelBufferArrayDynamicIndexing) (bool32ToBool shaderStorageTexelBufferArrayDynamicIndexing) (bool32ToBool shaderUniformBufferArrayNonUniformIndexing) (bool32ToBool shaderSampledImageArrayNonUniformIndexing) (bool32ToBool shaderStorageBufferArrayNonUniformIndexing) (bool32ToBool shaderStorageImageArrayNonUniformIndexing) (bool32ToBool shaderInputAttachmentArrayNonUniformIndexing) (bool32ToBool shaderUniformTexelBufferArrayNonUniformIndexing) (bool32ToBool shaderStorageTexelBufferArrayNonUniformIndexing) (bool32ToBool descriptorBindingUniformBufferUpdateAfterBind) (bool32ToBool descriptorBindingSampledImageUpdateAfterBind) (bool32ToBool descriptorBindingStorageImageUpdateAfterBind) (bool32ToBool descriptorBindingStorageBufferUpdateAfterBind) (bool32ToBool descriptorBindingUniformTexelBufferUpdateAfterBind) (bool32ToBool descriptorBindingStorageTexelBufferUpdateAfterBind) (bool32ToBool descriptorBindingUpdateUnusedWhilePending) (bool32ToBool descriptorBindingPartiallyBound) (bool32ToBool descriptorBindingVariableDescriptorCount) (bool32ToBool runtimeDescriptorArray) (bool32ToBool samplerFilterMinmax) (bool32ToBool scalarBlockLayout) (bool32ToBool imagelessFramebuffer) (bool32ToBool uniformBufferStandardLayout) (bool32ToBool shaderSubgroupExtendedTypes) (bool32ToBool separateDepthStencilLayouts) (bool32ToBool hostQueryReset) (bool32ToBool timelineSemaphore) (bool32ToBool bufferDeviceAddress) (bool32ToBool bufferDeviceAddressCaptureReplay) (bool32ToBool bufferDeviceAddressMultiDevice) (bool32ToBool vulkanMemoryModel) (bool32ToBool vulkanMemoryModelDeviceScope) (bool32ToBool vulkanMemoryModelAvailabilityVisibilityChains) (bool32ToBool shaderOutputViewportIndex) (bool32ToBool shaderOutputLayer) (bool32ToBool subgroupBroadcastDynamicId)+             (bool32ToBool samplerMirrorClampToEdge)+             (bool32ToBool drawIndirectCount)+             (bool32ToBool storageBuffer8BitAccess)+             (bool32ToBool uniformAndStorageBuffer8BitAccess)+             (bool32ToBool storagePushConstant8)+             (bool32ToBool shaderBufferInt64Atomics)+             (bool32ToBool shaderSharedInt64Atomics)+             (bool32ToBool shaderFloat16)+             (bool32ToBool shaderInt8)+             (bool32ToBool descriptorIndexing)+             (bool32ToBool shaderInputAttachmentArrayDynamicIndexing)+             (bool32ToBool shaderUniformTexelBufferArrayDynamicIndexing)+             (bool32ToBool shaderStorageTexelBufferArrayDynamicIndexing)+             (bool32ToBool shaderUniformBufferArrayNonUniformIndexing)+             (bool32ToBool shaderSampledImageArrayNonUniformIndexing)+             (bool32ToBool shaderStorageBufferArrayNonUniformIndexing)+             (bool32ToBool shaderStorageImageArrayNonUniformIndexing)+             (bool32ToBool shaderInputAttachmentArrayNonUniformIndexing)+             (bool32ToBool shaderUniformTexelBufferArrayNonUniformIndexing)+             (bool32ToBool shaderStorageTexelBufferArrayNonUniformIndexing)+             (bool32ToBool descriptorBindingUniformBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingSampledImageUpdateAfterBind)+             (bool32ToBool descriptorBindingStorageImageUpdateAfterBind)+             (bool32ToBool descriptorBindingStorageBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingUniformTexelBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingStorageTexelBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingUpdateUnusedWhilePending)+             (bool32ToBool descriptorBindingPartiallyBound)+             (bool32ToBool descriptorBindingVariableDescriptorCount)+             (bool32ToBool runtimeDescriptorArray)+             (bool32ToBool samplerFilterMinmax)+             (bool32ToBool scalarBlockLayout)+             (bool32ToBool imagelessFramebuffer)+             (bool32ToBool uniformBufferStandardLayout)+             (bool32ToBool shaderSubgroupExtendedTypes)+             (bool32ToBool separateDepthStencilLayouts)+             (bool32ToBool hostQueryReset)+             (bool32ToBool timelineSemaphore)+             (bool32ToBool bufferDeviceAddress)+             (bool32ToBool bufferDeviceAddressCaptureReplay)+             (bool32ToBool bufferDeviceAddressMultiDevice)+             (bool32ToBool vulkanMemoryModel)+             (bool32ToBool vulkanMemoryModelDeviceScope)+             (bool32ToBool vulkanMemoryModelAvailabilityVisibilityChains)+             (bool32ToBool shaderOutputViewportIndex)+             (bool32ToBool shaderOutputLayer)+             (bool32ToBool subgroupBroadcastDynamicId)  instance Storable PhysicalDeviceVulkan12Features where   sizeOf ~_ = 208@@ -1836,7 +1907,58 @@     maxTimelineSemaphoreValueDifference <- peek @Word64 ((p `plusPtr` 720 :: Ptr Word64))     framebufferIntegerColorSampleCounts <- peek @SampleCountFlags ((p `plusPtr` 728 :: Ptr SampleCountFlags))     pure $ PhysicalDeviceVulkan12Properties-             driverID driverName driverInfo conformanceVersion denormBehaviorIndependence roundingModeIndependence (bool32ToBool shaderSignedZeroInfNanPreserveFloat16) (bool32ToBool shaderSignedZeroInfNanPreserveFloat32) (bool32ToBool shaderSignedZeroInfNanPreserveFloat64) (bool32ToBool shaderDenormPreserveFloat16) (bool32ToBool shaderDenormPreserveFloat32) (bool32ToBool shaderDenormPreserveFloat64) (bool32ToBool shaderDenormFlushToZeroFloat16) (bool32ToBool shaderDenormFlushToZeroFloat32) (bool32ToBool shaderDenormFlushToZeroFloat64) (bool32ToBool shaderRoundingModeRTEFloat16) (bool32ToBool shaderRoundingModeRTEFloat32) (bool32ToBool shaderRoundingModeRTEFloat64) (bool32ToBool shaderRoundingModeRTZFloat16) (bool32ToBool shaderRoundingModeRTZFloat32) (bool32ToBool shaderRoundingModeRTZFloat64) maxUpdateAfterBindDescriptorsInAllPools (bool32ToBool shaderUniformBufferArrayNonUniformIndexingNative) (bool32ToBool shaderSampledImageArrayNonUniformIndexingNative) (bool32ToBool shaderStorageBufferArrayNonUniformIndexingNative) (bool32ToBool shaderStorageImageArrayNonUniformIndexingNative) (bool32ToBool shaderInputAttachmentArrayNonUniformIndexingNative) (bool32ToBool robustBufferAccessUpdateAfterBind) (bool32ToBool quadDivergentImplicitLod) maxPerStageDescriptorUpdateAfterBindSamplers maxPerStageDescriptorUpdateAfterBindUniformBuffers maxPerStageDescriptorUpdateAfterBindStorageBuffers maxPerStageDescriptorUpdateAfterBindSampledImages maxPerStageDescriptorUpdateAfterBindStorageImages maxPerStageDescriptorUpdateAfterBindInputAttachments maxPerStageUpdateAfterBindResources maxDescriptorSetUpdateAfterBindSamplers maxDescriptorSetUpdateAfterBindUniformBuffers maxDescriptorSetUpdateAfterBindUniformBuffersDynamic maxDescriptorSetUpdateAfterBindStorageBuffers maxDescriptorSetUpdateAfterBindStorageBuffersDynamic maxDescriptorSetUpdateAfterBindSampledImages maxDescriptorSetUpdateAfterBindStorageImages maxDescriptorSetUpdateAfterBindInputAttachments supportedDepthResolveModes supportedStencilResolveModes (bool32ToBool independentResolveNone) (bool32ToBool independentResolve) (bool32ToBool filterMinmaxSingleComponentFormats) (bool32ToBool filterMinmaxImageComponentMapping) maxTimelineSemaphoreValueDifference framebufferIntegerColorSampleCounts+             driverID+             driverName+             driverInfo+             conformanceVersion+             denormBehaviorIndependence+             roundingModeIndependence+             (bool32ToBool shaderSignedZeroInfNanPreserveFloat16)+             (bool32ToBool shaderSignedZeroInfNanPreserveFloat32)+             (bool32ToBool shaderSignedZeroInfNanPreserveFloat64)+             (bool32ToBool shaderDenormPreserveFloat16)+             (bool32ToBool shaderDenormPreserveFloat32)+             (bool32ToBool shaderDenormPreserveFloat64)+             (bool32ToBool shaderDenormFlushToZeroFloat16)+             (bool32ToBool shaderDenormFlushToZeroFloat32)+             (bool32ToBool shaderDenormFlushToZeroFloat64)+             (bool32ToBool shaderRoundingModeRTEFloat16)+             (bool32ToBool shaderRoundingModeRTEFloat32)+             (bool32ToBool shaderRoundingModeRTEFloat64)+             (bool32ToBool shaderRoundingModeRTZFloat16)+             (bool32ToBool shaderRoundingModeRTZFloat32)+             (bool32ToBool shaderRoundingModeRTZFloat64)+             maxUpdateAfterBindDescriptorsInAllPools+             (bool32ToBool shaderUniformBufferArrayNonUniformIndexingNative)+             (bool32ToBool shaderSampledImageArrayNonUniformIndexingNative)+             (bool32ToBool shaderStorageBufferArrayNonUniformIndexingNative)+             (bool32ToBool shaderStorageImageArrayNonUniformIndexingNative)+             (bool32ToBool shaderInputAttachmentArrayNonUniformIndexingNative)+             (bool32ToBool robustBufferAccessUpdateAfterBind)+             (bool32ToBool quadDivergentImplicitLod)+             maxPerStageDescriptorUpdateAfterBindSamplers+             maxPerStageDescriptorUpdateAfterBindUniformBuffers+             maxPerStageDescriptorUpdateAfterBindStorageBuffers+             maxPerStageDescriptorUpdateAfterBindSampledImages+             maxPerStageDescriptorUpdateAfterBindStorageImages+             maxPerStageDescriptorUpdateAfterBindInputAttachments+             maxPerStageUpdateAfterBindResources+             maxDescriptorSetUpdateAfterBindSamplers+             maxDescriptorSetUpdateAfterBindUniformBuffers+             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic+             maxDescriptorSetUpdateAfterBindStorageBuffers+             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic+             maxDescriptorSetUpdateAfterBindSampledImages+             maxDescriptorSetUpdateAfterBindStorageImages+             maxDescriptorSetUpdateAfterBindInputAttachments+             supportedDepthResolveModes+             supportedStencilResolveModes+             (bool32ToBool independentResolveNone)+             (bool32ToBool independentResolve)+             (bool32ToBool filterMinmaxSingleComponentFormats)+             (bool32ToBool filterMinmaxImageComponentMapping)+             maxTimelineSemaphoreValueDifference+             framebufferIntegerColorSampleCounts  instance Storable PhysicalDeviceVulkan12Properties where   sizeOf ~_ = 736
src/Vulkan/Core12/Enums/DescriptorBindingFlagBits.hs view
@@ -59,7 +59,8 @@ -- concurrently by two threads. Descriptors with this flag set /can/ be -- updated concurrently with the set being bound to a command buffer in -- another thread, but not concurrently with the set being reset or freed.-pattern DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT           = DescriptorBindingFlagBits 0x00000001+pattern DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = DescriptorBindingFlagBits 0x00000001+ -- | 'DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT' indicates that -- descriptors in this binding /can/ be updated after a command buffer has -- bound this descriptor set, or while a command buffer that uses this@@ -76,6 +77,7 @@ -- then descriptors /can/ be updated as long as they are not statically -- used by any shader invocations. pattern DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = DescriptorBindingFlagBits 0x00000002+ -- | 'DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT' indicates that descriptors in -- this binding that are not /dynamically used/ need not contain valid -- descriptors at the time the descriptors are consumed. A descriptor is@@ -83,7 +85,8 @@ -- performs any memory access using the descriptor. If a descriptor is not -- dynamically used, any resource referenced by the descriptor is not -- considered to be referenced during command execution.-pattern DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT             = DescriptorBindingFlagBits 0x00000004+pattern DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = DescriptorBindingFlagBits 0x00000004+ -- | 'DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT' indicates that this -- is a /variable-sized descriptor binding/ whose size will be specified -- when a descriptor set is allocated using this layout. The value of@@ -100,7 +103,7 @@ -- and -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxInlineUniformTotalSize maxInlineUniformTotalSize> -- limits instead.-pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT   = DescriptorBindingFlagBits 0x00000008+pattern DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = DescriptorBindingFlagBits 0x00000008  conNameDescriptorBindingFlagBits :: String conNameDescriptorBindingFlagBits = "DescriptorBindingFlagBits"@@ -110,22 +113,37 @@  showTableDescriptorBindingFlagBits :: [(DescriptorBindingFlagBits, String)] showTableDescriptorBindingFlagBits =-  [ (DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT          , "UPDATE_AFTER_BIND_BIT")-  , (DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, "UPDATE_UNUSED_WHILE_PENDING_BIT")-  , (DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT            , "PARTIALLY_BOUND_BIT")-  , (DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT  , "VARIABLE_DESCRIPTOR_COUNT_BIT")+  [+    ( DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT+    , "UPDATE_AFTER_BIND_BIT"+    )+  ,+    ( DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT+    , "UPDATE_UNUSED_WHILE_PENDING_BIT"+    )+  ,+    ( DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT+    , "PARTIALLY_BOUND_BIT"+    )+  ,+    ( DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT+    , "VARIABLE_DESCRIPTOR_COUNT_BIT"+    )   ]  instance Show DescriptorBindingFlagBits where-  showsPrec = enumShowsPrec enumPrefixDescriptorBindingFlagBits-                            showTableDescriptorBindingFlagBits-                            conNameDescriptorBindingFlagBits-                            (\(DescriptorBindingFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDescriptorBindingFlagBits+      showTableDescriptorBindingFlagBits+      conNameDescriptorBindingFlagBits+      (\(DescriptorBindingFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DescriptorBindingFlagBits where-  readPrec = enumReadPrec enumPrefixDescriptorBindingFlagBits-                          showTableDescriptorBindingFlagBits-                          conNameDescriptorBindingFlagBits-                          DescriptorBindingFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixDescriptorBindingFlagBits+      showTableDescriptorBindingFlagBits+      conNameDescriptorBindingFlagBits+      DescriptorBindingFlagBits
src/Vulkan/Core12/Enums/DriverId.hs view
@@ -60,78 +60,105 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Properties' newtype DriverId = DriverId 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  -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_AMD_PROPRIETARY"-pattern DRIVER_ID_AMD_PROPRIETARY           = DriverId 1+pattern DRIVER_ID_AMD_PROPRIETARY = DriverId 1+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_AMD_OPEN_SOURCE"-pattern DRIVER_ID_AMD_OPEN_SOURCE           = DriverId 2+pattern DRIVER_ID_AMD_OPEN_SOURCE = DriverId 2+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_RADV"-pattern DRIVER_ID_MESA_RADV                 = DriverId 3+pattern DRIVER_ID_MESA_RADV = DriverId 3+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_NVIDIA_PROPRIETARY"-pattern DRIVER_ID_NVIDIA_PROPRIETARY        = DriverId 4+pattern DRIVER_ID_NVIDIA_PROPRIETARY = DriverId 4+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS" pattern DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = DriverId 5+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA"-pattern DRIVER_ID_INTEL_OPEN_SOURCE_MESA    = DriverId 6+pattern DRIVER_ID_INTEL_OPEN_SOURCE_MESA = DriverId 6+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_IMAGINATION_PROPRIETARY"-pattern DRIVER_ID_IMAGINATION_PROPRIETARY   = DriverId 7+pattern DRIVER_ID_IMAGINATION_PROPRIETARY = DriverId 7+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_QUALCOMM_PROPRIETARY"-pattern DRIVER_ID_QUALCOMM_PROPRIETARY      = DriverId 8+pattern DRIVER_ID_QUALCOMM_PROPRIETARY = DriverId 8+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_ARM_PROPRIETARY"-pattern DRIVER_ID_ARM_PROPRIETARY           = DriverId 9+pattern DRIVER_ID_ARM_PROPRIETARY = DriverId 9+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_GOOGLE_SWIFTSHADER"-pattern DRIVER_ID_GOOGLE_SWIFTSHADER        = DriverId 10+pattern DRIVER_ID_GOOGLE_SWIFTSHADER = DriverId 10+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_GGP_PROPRIETARY"-pattern DRIVER_ID_GGP_PROPRIETARY           = DriverId 11+pattern DRIVER_ID_GGP_PROPRIETARY = DriverId 11+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_BROADCOM_PROPRIETARY"-pattern DRIVER_ID_BROADCOM_PROPRIETARY      = DriverId 12+pattern DRIVER_ID_BROADCOM_PROPRIETARY = DriverId 12+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_LLVMPIPE"-pattern DRIVER_ID_MESA_LLVMPIPE             = DriverId 13+pattern DRIVER_ID_MESA_LLVMPIPE = DriverId 13+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MOLTENVK"-pattern DRIVER_ID_MOLTENVK                  = DriverId 14+pattern DRIVER_ID_MOLTENVK = DriverId 14+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_COREAVI_PROPRIETARY"-pattern DRIVER_ID_COREAVI_PROPRIETARY       = DriverId 15+pattern DRIVER_ID_COREAVI_PROPRIETARY = DriverId 15+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_JUICE_PROPRIETARY"-pattern DRIVER_ID_JUICE_PROPRIETARY         = DriverId 16+pattern DRIVER_ID_JUICE_PROPRIETARY = DriverId 16+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_VERISILICON_PROPRIETARY"-pattern DRIVER_ID_VERISILICON_PROPRIETARY   = DriverId 17+pattern DRIVER_ID_VERISILICON_PROPRIETARY = DriverId 17+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_TURNIP"-pattern DRIVER_ID_MESA_TURNIP               = DriverId 18+pattern DRIVER_ID_MESA_TURNIP = DriverId 18+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_V3DV"-pattern DRIVER_ID_MESA_V3DV                 = DriverId 19+pattern DRIVER_ID_MESA_V3DV = DriverId 19+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_PANVK"-pattern DRIVER_ID_MESA_PANVK                = DriverId 20+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+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+pattern DRIVER_ID_MESA_VENUS = DriverId 22+ -- No documentation found for Nested "VkDriverId" "VK_DRIVER_ID_MESA_DOZEN"-pattern DRIVER_ID_MESA_DOZEN                = DriverId 23-{-# complete DRIVER_ID_AMD_PROPRIETARY,-             DRIVER_ID_AMD_OPEN_SOURCE,-             DRIVER_ID_MESA_RADV,-             DRIVER_ID_NVIDIA_PROPRIETARY,-             DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,-             DRIVER_ID_INTEL_OPEN_SOURCE_MESA,-             DRIVER_ID_IMAGINATION_PROPRIETARY,-             DRIVER_ID_QUALCOMM_PROPRIETARY,-             DRIVER_ID_ARM_PROPRIETARY,-             DRIVER_ID_GOOGLE_SWIFTSHADER,-             DRIVER_ID_GGP_PROPRIETARY,-             DRIVER_ID_BROADCOM_PROPRIETARY,-             DRIVER_ID_MESA_LLVMPIPE,-             DRIVER_ID_MOLTENVK,-             DRIVER_ID_COREAVI_PROPRIETARY,-             DRIVER_ID_JUICE_PROPRIETARY,-             DRIVER_ID_VERISILICON_PROPRIETARY,-             DRIVER_ID_MESA_TURNIP,-             DRIVER_ID_MESA_V3DV,-             DRIVER_ID_MESA_PANVK,-             DRIVER_ID_SAMSUNG_PROPRIETARY,-             DRIVER_ID_MESA_VENUS,-             DRIVER_ID_MESA_DOZEN :: DriverId #-}+pattern DRIVER_ID_MESA_DOZEN = DriverId 23 +{-# COMPLETE+  DRIVER_ID_AMD_PROPRIETARY+  , DRIVER_ID_AMD_OPEN_SOURCE+  , DRIVER_ID_MESA_RADV+  , DRIVER_ID_NVIDIA_PROPRIETARY+  , DRIVER_ID_INTEL_PROPRIETARY_WINDOWS+  , DRIVER_ID_INTEL_OPEN_SOURCE_MESA+  , DRIVER_ID_IMAGINATION_PROPRIETARY+  , DRIVER_ID_QUALCOMM_PROPRIETARY+  , DRIVER_ID_ARM_PROPRIETARY+  , DRIVER_ID_GOOGLE_SWIFTSHADER+  , DRIVER_ID_GGP_PROPRIETARY+  , DRIVER_ID_BROADCOM_PROPRIETARY+  , DRIVER_ID_MESA_LLVMPIPE+  , DRIVER_ID_MOLTENVK+  , DRIVER_ID_COREAVI_PROPRIETARY+  , DRIVER_ID_JUICE_PROPRIETARY+  , DRIVER_ID_VERISILICON_PROPRIETARY+  , DRIVER_ID_MESA_TURNIP+  , DRIVER_ID_MESA_V3DV+  , DRIVER_ID_MESA_PANVK+  , DRIVER_ID_SAMSUNG_PROPRIETARY+  , DRIVER_ID_MESA_VENUS+  , DRIVER_ID_MESA_DOZEN ::+    DriverId+  #-}+ conNameDriverId :: String conNameDriverId = "DriverId" @@ -140,34 +167,56 @@  showTableDriverId :: [(DriverId, String)] showTableDriverId =-  [ (DRIVER_ID_AMD_PROPRIETARY          , "AMD_PROPRIETARY")-  , (DRIVER_ID_AMD_OPEN_SOURCE          , "AMD_OPEN_SOURCE")-  , (DRIVER_ID_MESA_RADV                , "MESA_RADV")-  , (DRIVER_ID_NVIDIA_PROPRIETARY       , "NVIDIA_PROPRIETARY")-  , (DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, "INTEL_PROPRIETARY_WINDOWS")-  , (DRIVER_ID_INTEL_OPEN_SOURCE_MESA   , "INTEL_OPEN_SOURCE_MESA")-  , (DRIVER_ID_IMAGINATION_PROPRIETARY  , "IMAGINATION_PROPRIETARY")-  , (DRIVER_ID_QUALCOMM_PROPRIETARY     , "QUALCOMM_PROPRIETARY")-  , (DRIVER_ID_ARM_PROPRIETARY          , "ARM_PROPRIETARY")-  , (DRIVER_ID_GOOGLE_SWIFTSHADER       , "GOOGLE_SWIFTSHADER")-  , (DRIVER_ID_GGP_PROPRIETARY          , "GGP_PROPRIETARY")-  , (DRIVER_ID_BROADCOM_PROPRIETARY     , "BROADCOM_PROPRIETARY")-  , (DRIVER_ID_MESA_LLVMPIPE            , "MESA_LLVMPIPE")-  , (DRIVER_ID_MOLTENVK                 , "MOLTENVK")-  , (DRIVER_ID_COREAVI_PROPRIETARY      , "COREAVI_PROPRIETARY")-  , (DRIVER_ID_JUICE_PROPRIETARY        , "JUICE_PROPRIETARY")-  , (DRIVER_ID_VERISILICON_PROPRIETARY  , "VERISILICON_PROPRIETARY")-  , (DRIVER_ID_MESA_TURNIP              , "MESA_TURNIP")-  , (DRIVER_ID_MESA_V3DV                , "MESA_V3DV")-  , (DRIVER_ID_MESA_PANVK               , "MESA_PANVK")-  , (DRIVER_ID_SAMSUNG_PROPRIETARY      , "SAMSUNG_PROPRIETARY")-  , (DRIVER_ID_MESA_VENUS               , "MESA_VENUS")-  , (DRIVER_ID_MESA_DOZEN               , "MESA_DOZEN")+  [ (DRIVER_ID_AMD_PROPRIETARY, "AMD_PROPRIETARY")+  , (DRIVER_ID_AMD_OPEN_SOURCE, "AMD_OPEN_SOURCE")+  , (DRIVER_ID_MESA_RADV, "MESA_RADV")+  , (DRIVER_ID_NVIDIA_PROPRIETARY, "NVIDIA_PROPRIETARY")+  ,+    ( DRIVER_ID_INTEL_PROPRIETARY_WINDOWS+    , "INTEL_PROPRIETARY_WINDOWS"+    )+  ,+    ( DRIVER_ID_INTEL_OPEN_SOURCE_MESA+    , "INTEL_OPEN_SOURCE_MESA"+    )+  ,+    ( DRIVER_ID_IMAGINATION_PROPRIETARY+    , "IMAGINATION_PROPRIETARY"+    )+  , (DRIVER_ID_QUALCOMM_PROPRIETARY, "QUALCOMM_PROPRIETARY")+  , (DRIVER_ID_ARM_PROPRIETARY, "ARM_PROPRIETARY")+  , (DRIVER_ID_GOOGLE_SWIFTSHADER, "GOOGLE_SWIFTSHADER")+  , (DRIVER_ID_GGP_PROPRIETARY, "GGP_PROPRIETARY")+  , (DRIVER_ID_BROADCOM_PROPRIETARY, "BROADCOM_PROPRIETARY")+  , (DRIVER_ID_MESA_LLVMPIPE, "MESA_LLVMPIPE")+  , (DRIVER_ID_MOLTENVK, "MOLTENVK")+  , (DRIVER_ID_COREAVI_PROPRIETARY, "COREAVI_PROPRIETARY")+  , (DRIVER_ID_JUICE_PROPRIETARY, "JUICE_PROPRIETARY")+  ,+    ( DRIVER_ID_VERISILICON_PROPRIETARY+    , "VERISILICON_PROPRIETARY"+    )+  , (DRIVER_ID_MESA_TURNIP, "MESA_TURNIP")+  , (DRIVER_ID_MESA_V3DV, "MESA_V3DV")+  , (DRIVER_ID_MESA_PANVK, "MESA_PANVK")+  , (DRIVER_ID_SAMSUNG_PROPRIETARY, "SAMSUNG_PROPRIETARY")+  , (DRIVER_ID_MESA_VENUS, "MESA_VENUS")+  , (DRIVER_ID_MESA_DOZEN, "MESA_DOZEN")   ]  instance Show DriverId where-  showsPrec = enumShowsPrec enumPrefixDriverId showTableDriverId conNameDriverId (\(DriverId x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDriverId+      showTableDriverId+      conNameDriverId+      (\(DriverId x) -> x)+      (showsPrec 11)  instance Read DriverId where-  readPrec = enumReadPrec enumPrefixDriverId showTableDriverId conNameDriverId DriverId-+  readPrec =+    enumReadPrec+      enumPrefixDriverId+      showTableDriverId+      conNameDriverId+      DriverId
src/Vulkan/Core12/Enums/ResolveModeFlagBits.hs view
@@ -37,19 +37,23 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'RESOLVE_MODE_NONE' indicates that no resolve operation is done.-pattern RESOLVE_MODE_NONE            = ResolveModeFlagBits 0x00000000+pattern RESOLVE_MODE_NONE = ResolveModeFlagBits 0x00000000+ -- | 'RESOLVE_MODE_SAMPLE_ZERO_BIT' indicates that result of the resolve -- operation is equal to the value of sample 0. pattern RESOLVE_MODE_SAMPLE_ZERO_BIT = ResolveModeFlagBits 0x00000001+ -- | 'RESOLVE_MODE_AVERAGE_BIT' indicates that result of the resolve -- operation is the average of the sample values.-pattern RESOLVE_MODE_AVERAGE_BIT     = ResolveModeFlagBits 0x00000002+pattern RESOLVE_MODE_AVERAGE_BIT = ResolveModeFlagBits 0x00000002+ -- | 'RESOLVE_MODE_MIN_BIT' indicates that result of the resolve operation is -- the minimum of the sample values.-pattern RESOLVE_MODE_MIN_BIT         = ResolveModeFlagBits 0x00000004+pattern RESOLVE_MODE_MIN_BIT = ResolveModeFlagBits 0x00000004+ -- | 'RESOLVE_MODE_MAX_BIT' indicates that result of the resolve operation is -- the maximum of the sample values.-pattern RESOLVE_MODE_MAX_BIT         = ResolveModeFlagBits 0x00000008+pattern RESOLVE_MODE_MAX_BIT = ResolveModeFlagBits 0x00000008  conNameResolveModeFlagBits :: String conNameResolveModeFlagBits = "ResolveModeFlagBits"@@ -59,23 +63,29 @@  showTableResolveModeFlagBits :: [(ResolveModeFlagBits, String)] showTableResolveModeFlagBits =-  [ (RESOLVE_MODE_NONE           , "NONE")-  , (RESOLVE_MODE_SAMPLE_ZERO_BIT, "SAMPLE_ZERO_BIT")-  , (RESOLVE_MODE_AVERAGE_BIT    , "AVERAGE_BIT")-  , (RESOLVE_MODE_MIN_BIT        , "MIN_BIT")-  , (RESOLVE_MODE_MAX_BIT        , "MAX_BIT")+  [ (RESOLVE_MODE_NONE, "NONE")+  ,+    ( RESOLVE_MODE_SAMPLE_ZERO_BIT+    , "SAMPLE_ZERO_BIT"+    )+  , (RESOLVE_MODE_AVERAGE_BIT, "AVERAGE_BIT")+  , (RESOLVE_MODE_MIN_BIT, "MIN_BIT")+  , (RESOLVE_MODE_MAX_BIT, "MAX_BIT")   ]  instance Show ResolveModeFlagBits where-  showsPrec = enumShowsPrec enumPrefixResolveModeFlagBits-                            showTableResolveModeFlagBits-                            conNameResolveModeFlagBits-                            (\(ResolveModeFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixResolveModeFlagBits+      showTableResolveModeFlagBits+      conNameResolveModeFlagBits+      (\(ResolveModeFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ResolveModeFlagBits where-  readPrec = enumReadPrec enumPrefixResolveModeFlagBits-                          showTableResolveModeFlagBits-                          conNameResolveModeFlagBits-                          ResolveModeFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixResolveModeFlagBits+      showTableResolveModeFlagBits+      conNameResolveModeFlagBits+      ResolveModeFlagBits
src/Vulkan/Core12/Enums/SamplerReductionMode.hs view
@@ -30,18 +30,24 @@ -- using weights as specified in -- <https://registry.khronos.org/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 -- non-zero weights.-pattern SAMPLER_REDUCTION_MODE_MIN              = SamplerReductionMode 1+pattern SAMPLER_REDUCTION_MODE_MIN = SamplerReductionMode 1+ -- | 'SAMPLER_REDUCTION_MODE_MAX' specifies that texel values are combined by -- taking the component-wise maximum of values in the footprint with -- non-zero weights.-pattern SAMPLER_REDUCTION_MODE_MAX              = SamplerReductionMode 2-{-# complete SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,-             SAMPLER_REDUCTION_MODE_MIN,-             SAMPLER_REDUCTION_MODE_MAX :: SamplerReductionMode #-}+pattern SAMPLER_REDUCTION_MODE_MAX = SamplerReductionMode 2 +{-# COMPLETE+  SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE+  , SAMPLER_REDUCTION_MODE_MIN+  , SAMPLER_REDUCTION_MODE_MAX ::+    SamplerReductionMode+  #-}+ conNameSamplerReductionMode :: String conNameSamplerReductionMode = "SamplerReductionMode" @@ -50,21 +56,27 @@  showTableSamplerReductionMode :: [(SamplerReductionMode, String)] showTableSamplerReductionMode =-  [ (SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, "WEIGHTED_AVERAGE")-  , (SAMPLER_REDUCTION_MODE_MIN             , "MIN")-  , (SAMPLER_REDUCTION_MODE_MAX             , "MAX")+  [+    ( SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE+    , "WEIGHTED_AVERAGE"+    )+  , (SAMPLER_REDUCTION_MODE_MIN, "MIN")+  , (SAMPLER_REDUCTION_MODE_MAX, "MAX")   ]  instance Show SamplerReductionMode where-  showsPrec = enumShowsPrec enumPrefixSamplerReductionMode-                            showTableSamplerReductionMode-                            conNameSamplerReductionMode-                            (\(SamplerReductionMode x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSamplerReductionMode+      showTableSamplerReductionMode+      conNameSamplerReductionMode+      (\(SamplerReductionMode x) -> x)+      (showsPrec 11)  instance Read SamplerReductionMode where-  readPrec = enumReadPrec enumPrefixSamplerReductionMode-                          showTableSamplerReductionMode-                          conNameSamplerReductionMode-                          SamplerReductionMode-+  readPrec =+    enumReadPrec+      enumPrefixSamplerReductionMode+      showTableSamplerReductionMode+      conNameSamplerReductionMode+      SamplerReductionMode
src/Vulkan/Core12/Enums/SemaphoreType.hs view
@@ -27,7 +27,8 @@ -- | 'SEMAPHORE_TYPE_BINARY' specifies a /binary semaphore/ type that has a -- boolean payload indicating whether the semaphore is currently signaled -- or unsignaled. When created, the semaphore is in the unsignaled state.-pattern SEMAPHORE_TYPE_BINARY   = SemaphoreType 0+pattern SEMAPHORE_TYPE_BINARY = SemaphoreType 0+ -- | 'SEMAPHORE_TYPE_TIMELINE' specifies a /timeline semaphore/ type that has -- a strictly increasing 64-bit unsigned integer payload indicating whether -- the semaphore is signaled with respect to a particular reference value.@@ -35,9 +36,13 @@ -- @initialValue@ field of -- 'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.SemaphoreTypeCreateInfo'. pattern SEMAPHORE_TYPE_TIMELINE = SemaphoreType 1-{-# complete SEMAPHORE_TYPE_BINARY,-             SEMAPHORE_TYPE_TIMELINE :: SemaphoreType #-} +{-# COMPLETE+  SEMAPHORE_TYPE_BINARY+  , SEMAPHORE_TYPE_TIMELINE ::+    SemaphoreType+  #-}+ conNameSemaphoreType :: String conNameSemaphoreType = "SemaphoreType" @@ -45,15 +50,24 @@ enumPrefixSemaphoreType = "SEMAPHORE_TYPE_"  showTableSemaphoreType :: [(SemaphoreType, String)]-showTableSemaphoreType = [(SEMAPHORE_TYPE_BINARY, "BINARY"), (SEMAPHORE_TYPE_TIMELINE, "TIMELINE")]+showTableSemaphoreType =+  [ (SEMAPHORE_TYPE_BINARY, "BINARY")+  , (SEMAPHORE_TYPE_TIMELINE, "TIMELINE")+  ]  instance Show SemaphoreType where-  showsPrec = enumShowsPrec enumPrefixSemaphoreType-                            showTableSemaphoreType-                            conNameSemaphoreType-                            (\(SemaphoreType x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSemaphoreType+      showTableSemaphoreType+      conNameSemaphoreType+      (\(SemaphoreType x) -> x)+      (showsPrec 11)  instance Read SemaphoreType where-  readPrec = enumReadPrec enumPrefixSemaphoreType showTableSemaphoreType conNameSemaphoreType SemaphoreType-+  readPrec =+    enumReadPrec+      enumPrefixSemaphoreType+      showTableSemaphoreType+      conNameSemaphoreType+      SemaphoreType
src/Vulkan/Core12/Enums/SemaphoreWaitFlagBits.hs view
@@ -52,15 +52,18 @@ showTableSemaphoreWaitFlagBits = [(SEMAPHORE_WAIT_ANY_BIT, "")]  instance Show SemaphoreWaitFlagBits where-  showsPrec = enumShowsPrec enumPrefixSemaphoreWaitFlagBits-                            showTableSemaphoreWaitFlagBits-                            conNameSemaphoreWaitFlagBits-                            (\(SemaphoreWaitFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSemaphoreWaitFlagBits+      showTableSemaphoreWaitFlagBits+      conNameSemaphoreWaitFlagBits+      (\(SemaphoreWaitFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SemaphoreWaitFlagBits where-  readPrec = enumReadPrec enumPrefixSemaphoreWaitFlagBits-                          showTableSemaphoreWaitFlagBits-                          conNameSemaphoreWaitFlagBits-                          SemaphoreWaitFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSemaphoreWaitFlagBits+      showTableSemaphoreWaitFlagBits+      conNameSemaphoreWaitFlagBits+      SemaphoreWaitFlagBits
src/Vulkan/Core12/Enums/ShaderFloatControlsIndependence.hs view
@@ -31,16 +31,22 @@ -- float controls for 32-bit floating point /can/ be set independently; -- other bit widths /must/ be set identically to each other. pattern SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = ShaderFloatControlsIndependence 0+ -- | 'SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL' specifies that shader float -- controls for all bit widths /can/ be set independently.-pattern SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL         = ShaderFloatControlsIndependence 1+pattern SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = ShaderFloatControlsIndependence 1+ -- | 'SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE' specifies that shader float -- controls for all bit widths /must/ be set identically.-pattern SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE        = ShaderFloatControlsIndependence 2-{-# complete SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,-             SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,-             SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE :: ShaderFloatControlsIndependence #-}+pattern SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = ShaderFloatControlsIndependence 2 +{-# COMPLETE+  SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY+  , SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL+  , SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE ::+    ShaderFloatControlsIndependence+  #-}+ conNameShaderFloatControlsIndependence :: String conNameShaderFloatControlsIndependence = "ShaderFloatControlsIndependence" @@ -49,21 +55,33 @@  showTableShaderFloatControlsIndependence :: [(ShaderFloatControlsIndependence, String)] showTableShaderFloatControlsIndependence =-  [ (SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, "32_BIT_ONLY")-  , (SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL        , "ALL")-  , (SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE       , "NONE")+  [+    ( SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY+    , "32_BIT_ONLY"+    )+  ,+    ( SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL+    , "ALL"+    )+  ,+    ( SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE+    , "NONE"+    )   ]  instance Show ShaderFloatControlsIndependence where-  showsPrec = enumShowsPrec enumPrefixShaderFloatControlsIndependence-                            showTableShaderFloatControlsIndependence-                            conNameShaderFloatControlsIndependence-                            (\(ShaderFloatControlsIndependence x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixShaderFloatControlsIndependence+      showTableShaderFloatControlsIndependence+      conNameShaderFloatControlsIndependence+      (\(ShaderFloatControlsIndependence x) -> x)+      (showsPrec 11)  instance Read ShaderFloatControlsIndependence where-  readPrec = enumReadPrec enumPrefixShaderFloatControlsIndependence-                          showTableShaderFloatControlsIndependence-                          conNameShaderFloatControlsIndependence-                          ShaderFloatControlsIndependence-+  readPrec =+    enumReadPrec+      enumPrefixShaderFloatControlsIndependence+      showTableShaderFloatControlsIndependence+      conNameShaderFloatControlsIndependence+      ShaderFloatControlsIndependence
src/Vulkan/Core12/Promoted_From_VK_EXT_descriptor_indexing.hs view
@@ -351,7 +351,26 @@     descriptorBindingVariableDescriptorCount <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))     runtimeDescriptorArray <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))     pure $ PhysicalDeviceDescriptorIndexingFeatures-             (bool32ToBool shaderInputAttachmentArrayDynamicIndexing) (bool32ToBool shaderUniformTexelBufferArrayDynamicIndexing) (bool32ToBool shaderStorageTexelBufferArrayDynamicIndexing) (bool32ToBool shaderUniformBufferArrayNonUniformIndexing) (bool32ToBool shaderSampledImageArrayNonUniformIndexing) (bool32ToBool shaderStorageBufferArrayNonUniformIndexing) (bool32ToBool shaderStorageImageArrayNonUniformIndexing) (bool32ToBool shaderInputAttachmentArrayNonUniformIndexing) (bool32ToBool shaderUniformTexelBufferArrayNonUniformIndexing) (bool32ToBool shaderStorageTexelBufferArrayNonUniformIndexing) (bool32ToBool descriptorBindingUniformBufferUpdateAfterBind) (bool32ToBool descriptorBindingSampledImageUpdateAfterBind) (bool32ToBool descriptorBindingStorageImageUpdateAfterBind) (bool32ToBool descriptorBindingStorageBufferUpdateAfterBind) (bool32ToBool descriptorBindingUniformTexelBufferUpdateAfterBind) (bool32ToBool descriptorBindingStorageTexelBufferUpdateAfterBind) (bool32ToBool descriptorBindingUpdateUnusedWhilePending) (bool32ToBool descriptorBindingPartiallyBound) (bool32ToBool descriptorBindingVariableDescriptorCount) (bool32ToBool runtimeDescriptorArray)+             (bool32ToBool shaderInputAttachmentArrayDynamicIndexing)+             (bool32ToBool shaderUniformTexelBufferArrayDynamicIndexing)+             (bool32ToBool shaderStorageTexelBufferArrayDynamicIndexing)+             (bool32ToBool shaderUniformBufferArrayNonUniformIndexing)+             (bool32ToBool shaderSampledImageArrayNonUniformIndexing)+             (bool32ToBool shaderStorageBufferArrayNonUniformIndexing)+             (bool32ToBool shaderStorageImageArrayNonUniformIndexing)+             (bool32ToBool shaderInputAttachmentArrayNonUniformIndexing)+             (bool32ToBool shaderUniformTexelBufferArrayNonUniformIndexing)+             (bool32ToBool shaderStorageTexelBufferArrayNonUniformIndexing)+             (bool32ToBool descriptorBindingUniformBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingSampledImageUpdateAfterBind)+             (bool32ToBool descriptorBindingStorageImageUpdateAfterBind)+             (bool32ToBool descriptorBindingStorageBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingUniformTexelBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingStorageTexelBufferUpdateAfterBind)+             (bool32ToBool descriptorBindingUpdateUnusedWhilePending)+             (bool32ToBool descriptorBindingPartiallyBound)+             (bool32ToBool descriptorBindingVariableDescriptorCount)+             (bool32ToBool runtimeDescriptorArray)  instance Storable PhysicalDeviceDescriptorIndexingFeatures where   sizeOf ~_ = 96@@ -682,7 +701,29 @@     maxDescriptorSetUpdateAfterBindStorageImages <- peek @Word32 ((p `plusPtr` 100 :: Ptr Word32))     maxDescriptorSetUpdateAfterBindInputAttachments <- peek @Word32 ((p `plusPtr` 104 :: Ptr Word32))     pure $ PhysicalDeviceDescriptorIndexingProperties-             maxUpdateAfterBindDescriptorsInAllPools (bool32ToBool shaderUniformBufferArrayNonUniformIndexingNative) (bool32ToBool shaderSampledImageArrayNonUniformIndexingNative) (bool32ToBool shaderStorageBufferArrayNonUniformIndexingNative) (bool32ToBool shaderStorageImageArrayNonUniformIndexingNative) (bool32ToBool shaderInputAttachmentArrayNonUniformIndexingNative) (bool32ToBool robustBufferAccessUpdateAfterBind) (bool32ToBool quadDivergentImplicitLod) maxPerStageDescriptorUpdateAfterBindSamplers maxPerStageDescriptorUpdateAfterBindUniformBuffers maxPerStageDescriptorUpdateAfterBindStorageBuffers maxPerStageDescriptorUpdateAfterBindSampledImages maxPerStageDescriptorUpdateAfterBindStorageImages maxPerStageDescriptorUpdateAfterBindInputAttachments maxPerStageUpdateAfterBindResources maxDescriptorSetUpdateAfterBindSamplers maxDescriptorSetUpdateAfterBindUniformBuffers maxDescriptorSetUpdateAfterBindUniformBuffersDynamic maxDescriptorSetUpdateAfterBindStorageBuffers maxDescriptorSetUpdateAfterBindStorageBuffersDynamic maxDescriptorSetUpdateAfterBindSampledImages maxDescriptorSetUpdateAfterBindStorageImages maxDescriptorSetUpdateAfterBindInputAttachments+             maxUpdateAfterBindDescriptorsInAllPools+             (bool32ToBool shaderUniformBufferArrayNonUniformIndexingNative)+             (bool32ToBool shaderSampledImageArrayNonUniformIndexingNative)+             (bool32ToBool shaderStorageBufferArrayNonUniformIndexingNative)+             (bool32ToBool shaderStorageImageArrayNonUniformIndexingNative)+             (bool32ToBool shaderInputAttachmentArrayNonUniformIndexingNative)+             (bool32ToBool robustBufferAccessUpdateAfterBind)+             (bool32ToBool quadDivergentImplicitLod)+             maxPerStageDescriptorUpdateAfterBindSamplers+             maxPerStageDescriptorUpdateAfterBindUniformBuffers+             maxPerStageDescriptorUpdateAfterBindStorageBuffers+             maxPerStageDescriptorUpdateAfterBindSampledImages+             maxPerStageDescriptorUpdateAfterBindStorageImages+             maxPerStageDescriptorUpdateAfterBindInputAttachments+             maxPerStageUpdateAfterBindResources+             maxDescriptorSetUpdateAfterBindSamplers+             maxDescriptorSetUpdateAfterBindUniformBuffers+             maxDescriptorSetUpdateAfterBindUniformBuffersDynamic+             maxDescriptorSetUpdateAfterBindStorageBuffers+             maxDescriptorSetUpdateAfterBindStorageBuffersDynamic+             maxDescriptorSetUpdateAfterBindSampledImages+             maxDescriptorSetUpdateAfterBindStorageImages+             maxDescriptorSetUpdateAfterBindInputAttachments  instance Storable PhysicalDeviceDescriptorIndexingProperties where   sizeOf ~_ = 112
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -119,7 +119,11 @@   unless (vkResetQueryPoolPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkResetQueryPool is null" Nothing Nothing   let vkResetQueryPool' = mkVkResetQueryPool vkResetQueryPoolPtr-  traceAroundEvent "vkResetQueryPool" (vkResetQueryPool' (deviceHandle (device)) (queryPool) (firstQuery) (queryCount))+  traceAroundEvent "vkResetQueryPool" (vkResetQueryPool'+                                         (deviceHandle (device))+                                         (queryPool)+                                         (firstQuery)+                                         (queryCount))   pure $ ()  
src/Vulkan/Core12/Promoted_From_VK_EXT_sampler_filter_minmax.hs view
@@ -119,7 +119,8 @@     filterMinmaxSingleComponentFormats <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     filterMinmaxImageComponentMapping <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceSamplerFilterMinmaxProperties-             (bool32ToBool filterMinmaxSingleComponentFormats) (bool32ToBool filterMinmaxImageComponentMapping)+             (bool32ToBool filterMinmaxSingleComponentFormats)+             (bool32ToBool filterMinmaxImageComponentMapping)  instance Storable PhysicalDeviceSamplerFilterMinmaxProperties where   sizeOf ~_ = 24
src/Vulkan/Core12/Promoted_From_VK_KHR_8bit_storage.hs view
@@ -108,7 +108,9 @@     uniformAndStorageBuffer8BitAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     storagePushConstant8 <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDevice8BitStorageFeatures-             (bool32ToBool storageBuffer8BitAccess) (bool32ToBool uniformAndStorageBuffer8BitAccess) (bool32ToBool storagePushConstant8)+             (bool32ToBool storageBuffer8BitAccess)+             (bool32ToBool uniformAndStorageBuffer8BitAccess)+             (bool32ToBool storagePushConstant8)  instance Storable PhysicalDevice8BitStorageFeatures where   sizeOf ~_ = 32
src/Vulkan/Core12/Promoted_From_VK_KHR_buffer_device_address.hs view
@@ -132,7 +132,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferOpaqueCaptureAddress is null" Nothing Nothing   let vkGetBufferOpaqueCaptureAddress' = mkVkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddressPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkGetBufferOpaqueCaptureAddress" (vkGetBufferOpaqueCaptureAddress' (deviceHandle (device)) pInfo)+  r <- lift $ traceAroundEvent "vkGetBufferOpaqueCaptureAddress" (vkGetBufferOpaqueCaptureAddress'+                                                                    (deviceHandle (device))+                                                                    pInfo)   pure $ (r)  @@ -212,7 +214,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferDeviceAddress is null" Nothing Nothing   let vkGetBufferDeviceAddress' = mkVkGetBufferDeviceAddress vkGetBufferDeviceAddressPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkGetBufferDeviceAddress" (vkGetBufferDeviceAddress' (deviceHandle (device)) pInfo)+  r <- lift $ traceAroundEvent "vkGetBufferDeviceAddress" (vkGetBufferDeviceAddress'+                                                             (deviceHandle (device))+                                                             pInfo)   pure $ (r)  @@ -280,7 +284,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceMemoryOpaqueCaptureAddress is null" Nothing Nothing   let vkGetDeviceMemoryOpaqueCaptureAddress' = mkVkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddressPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkGetDeviceMemoryOpaqueCaptureAddress" (vkGetDeviceMemoryOpaqueCaptureAddress' (deviceHandle (device)) pInfo)+  r <- lift $ traceAroundEvent "vkGetDeviceMemoryOpaqueCaptureAddress" (vkGetDeviceMemoryOpaqueCaptureAddress'+                                                                          (deviceHandle (device))+                                                                          pInfo)   pure $ (r)  @@ -369,7 +375,9 @@     bufferDeviceAddressCaptureReplay <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     bufferDeviceAddressMultiDevice <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceBufferDeviceAddressFeatures-             (bool32ToBool bufferDeviceAddress) (bool32ToBool bufferDeviceAddressCaptureReplay) (bool32ToBool bufferDeviceAddressMultiDevice)+             (bool32ToBool bufferDeviceAddress)+             (bool32ToBool bufferDeviceAddressCaptureReplay)+             (bool32ToBool bufferDeviceAddressMultiDevice)  instance Storable PhysicalDeviceBufferDeviceAddressFeatures where   sizeOf ~_ = 32
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -201,7 +201,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPRenderPass <- ContT $ bracket (callocBytes @RenderPass 8) free-  r <- lift $ traceAroundEvent "vkCreateRenderPass2" (vkCreateRenderPass2' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPRenderPass))+  r <- lift $ traceAroundEvent "vkCreateRenderPass2" (vkCreateRenderPass2'+                                                        (deviceHandle (device))+                                                        (forgetExtensions pCreateInfo)+                                                        pAllocator+                                                        (pPRenderPass))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pRenderPass <- lift $ peek @RenderPass pPRenderPass   pure $ (pRenderPass)@@ -460,14 +464,19 @@                        -- rendering.                        SubpassBeginInfo                     -> io ()-cmdBeginRenderPass2 commandBuffer renderPassBegin subpassBeginInfo = liftIO . evalContT $ do+cmdBeginRenderPass2 commandBuffer+                      renderPassBegin+                      subpassBeginInfo = liftIO . evalContT $ do   let vkCmdBeginRenderPass2Ptr = pVkCmdBeginRenderPass2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBeginRenderPass2Ptr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginRenderPass2 is null" Nothing Nothing   let vkCmdBeginRenderPass2' = mkVkCmdBeginRenderPass2 vkCmdBeginRenderPass2Ptr   pRenderPassBegin <- ContT $ withCStruct (renderPassBegin)   pSubpassBeginInfo <- ContT $ withCStruct (subpassBeginInfo)-  lift $ traceAroundEvent "vkCmdBeginRenderPass2" (vkCmdBeginRenderPass2' (commandBufferHandle (commandBuffer)) (forgetExtensions pRenderPassBegin) pSubpassBeginInfo)+  lift $ traceAroundEvent "vkCmdBeginRenderPass2" (vkCmdBeginRenderPass2'+                                                     (commandBufferHandle (commandBuffer))+                                                     (forgetExtensions pRenderPassBegin)+                                                     pSubpassBeginInfo)   pure $ ()  -- | This function will call the supplied action between calls to@@ -476,8 +485,15 @@ -- Note that 'cmdEndRenderPass2' is *not* called if an exception is thrown -- by the inner action. cmdUseRenderPass2 :: forall a io r . (Extendss RenderPassBeginInfo a, Extendss SubpassEndInfo a, PokeChain a, PokeChain a, MonadIO io) => CommandBuffer -> RenderPassBeginInfo a -> SubpassBeginInfo -> SubpassEndInfo a -> io r -> io r-cmdUseRenderPass2 commandBuffer pRenderPassBegin pSubpassBeginInfo pSubpassEndInfo a =-  (cmdBeginRenderPass2 commandBuffer pRenderPassBegin pSubpassBeginInfo) *> a <* (cmdEndRenderPass2 commandBuffer pSubpassEndInfo)+cmdUseRenderPass2 commandBuffer+                    pRenderPassBegin+                    pSubpassBeginInfo+                    pSubpassEndInfo+                    a =+  (cmdBeginRenderPass2 commandBuffer+                         pRenderPassBegin+                         pSubpassBeginInfo) *> a <* (cmdEndRenderPass2 commandBuffer+                                                                         pSubpassEndInfo)   foreign import ccall@@ -570,14 +586,19 @@                    -- containing information about how the previous subpass will be ended.                    (SubpassEndInfo a)                 -> io ()-cmdNextSubpass2 commandBuffer subpassBeginInfo subpassEndInfo = liftIO . evalContT $ do+cmdNextSubpass2 commandBuffer+                  subpassBeginInfo+                  subpassEndInfo = liftIO . evalContT $ do   let vkCmdNextSubpass2Ptr = pVkCmdNextSubpass2 (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdNextSubpass2Ptr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdNextSubpass2 is null" Nothing Nothing   let vkCmdNextSubpass2' = mkVkCmdNextSubpass2 vkCmdNextSubpass2Ptr   pSubpassBeginInfo <- ContT $ withCStruct (subpassBeginInfo)   pSubpassEndInfo <- ContT $ withCStruct (subpassEndInfo)-  lift $ traceAroundEvent "vkCmdNextSubpass2" (vkCmdNextSubpass2' (commandBufferHandle (commandBuffer)) pSubpassBeginInfo (forgetExtensions pSubpassEndInfo))+  lift $ traceAroundEvent "vkCmdNextSubpass2" (vkCmdNextSubpass2'+                                                 (commandBufferHandle (commandBuffer))+                                                 pSubpassBeginInfo+                                                 (forgetExtensions pSubpassEndInfo))   pure $ ()  @@ -680,7 +701,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndRenderPass2 is null" Nothing Nothing   let vkCmdEndRenderPass2' = mkVkCmdEndRenderPass2 vkCmdEndRenderPass2Ptr   pSubpassEndInfo <- ContT $ withCStruct (subpassEndInfo)-  lift $ traceAroundEvent "vkCmdEndRenderPass2" (vkCmdEndRenderPass2' (commandBufferHandle (commandBuffer)) (forgetExtensions pSubpassEndInfo))+  lift $ traceAroundEvent "vkCmdEndRenderPass2" (vkCmdEndRenderPass2'+                                                   (commandBufferHandle (commandBuffer))+                                                   (forgetExtensions pSubpassEndInfo))   pure $ ()  @@ -1027,7 +1050,8 @@     | Just Refl <- eqT @e @AttachmentDescriptionStencilLayout = Just f     | otherwise = Nothing -instance (Extendss AttachmentDescription2 es, PokeChain es) => ToCStruct (AttachmentDescription2 es) where+instance ( Extendss AttachmentDescription2 es+         , PokeChain es ) => ToCStruct (AttachmentDescription2 es) where   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)   pokeCStruct p AttachmentDescription2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2)@@ -1059,7 +1083,8 @@     lift $ poke ((p `plusPtr` 48 :: Ptr ImageLayout)) (zero)     lift $ f -instance (Extendss AttachmentDescription2 es, PeekChain es) => FromCStruct (AttachmentDescription2 es) where+instance ( Extendss AttachmentDescription2 es+         , PeekChain es ) => FromCStruct (AttachmentDescription2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1073,7 +1098,16 @@     initialLayout <- peek @ImageLayout ((p `plusPtr` 44 :: Ptr ImageLayout))     finalLayout <- peek @ImageLayout ((p `plusPtr` 48 :: Ptr ImageLayout))     pure $ AttachmentDescription2-             next flags format samples loadOp storeOp stencilLoadOp stencilStoreOp initialLayout finalLayout+             next+             flags+             format+             samples+             loadOp+             storeOp+             stencilLoadOp+             stencilStoreOp+             initialLayout+             finalLayout  instance es ~ '[] => Zero (AttachmentDescription2 es) where   zero = AttachmentDescription2@@ -1201,7 +1235,8 @@     | Just Refl <- eqT @e @AttachmentReferenceStencilLayout = Just f     | otherwise = Nothing -instance (Extendss AttachmentReference2 es, PokeChain es) => ToCStruct (AttachmentReference2 es) where+instance ( Extendss AttachmentReference2 es+         , PokeChain es ) => ToCStruct (AttachmentReference2 es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p AttachmentReference2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2)@@ -1222,7 +1257,8 @@     lift $ poke ((p `plusPtr` 24 :: Ptr ImageAspectFlags)) (zero)     lift $ f -instance (Extendss AttachmentReference2 es, PeekChain es) => FromCStruct (AttachmentReference2 es) where+instance ( Extendss AttachmentReference2 es+         , PeekChain es ) => FromCStruct (AttachmentReference2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1694,7 +1730,8 @@     | Just Refl <- eqT @e @SubpassDescriptionDepthStencilResolve = Just f     | otherwise = Nothing -instance (Extendss SubpassDescription2 es, PokeChain es) => ToCStruct (SubpassDescription2 es) where+instance ( Extendss SubpassDescription2 es+         , PokeChain es ) => ToCStruct (SubpassDescription2 es) where   withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SubpassDescription2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2)@@ -1741,7 +1778,8 @@     lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss SubpassDescription2 es, PeekChain es) => FromCStruct (SubpassDescription2 es) where+instance ( Extendss SubpassDescription2 es+         , PeekChain es ) => FromCStruct (SubpassDescription2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1763,7 +1801,15 @@     pPreserveAttachments <- peek @(Ptr Word32) ((p `plusPtr` 80 :: Ptr (Ptr Word32)))     pPreserveAttachments' <- generateM (fromIntegral preserveAttachmentCount) (\i -> peek @Word32 ((pPreserveAttachments `advancePtrBytes` (4 * (i)) :: Ptr Word32)))     pure $ SubpassDescription2-             next flags pipelineBindPoint viewMask pInputAttachments' pColorAttachments' pResolveAttachments' pDepthStencilAttachment' pPreserveAttachments'+             next+             flags+             pipelineBindPoint+             viewMask+             pInputAttachments'+             pColorAttachments'+             pResolveAttachments'+             pDepthStencilAttachment'+             pPreserveAttachments'  instance es ~ '[] => Zero (SubpassDescription2 es) where   zero = SubpassDescription2@@ -2038,7 +2084,8 @@     | Just Refl <- eqT @e @MemoryBarrier2 = Just f     | otherwise = Nothing -instance (Extendss SubpassDependency2 es, PokeChain es) => ToCStruct (SubpassDependency2 es) where+instance ( Extendss SubpassDependency2 es+         , PokeChain es ) => ToCStruct (SubpassDependency2 es) where   withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SubpassDependency2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2)@@ -2064,7 +2111,8 @@     lift $ poke ((p `plusPtr` 44 :: Ptr Int32)) (zero)     lift $ f -instance (Extendss SubpassDependency2 es, PeekChain es) => FromCStruct (SubpassDependency2 es) where+instance ( Extendss SubpassDependency2 es+         , PeekChain es ) => FromCStruct (SubpassDependency2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2077,7 +2125,15 @@     dependencyFlags <- peek @DependencyFlags ((p `plusPtr` 40 :: Ptr DependencyFlags))     viewOffset <- peek @Int32 ((p `plusPtr` 44 :: Ptr Int32))     pure $ SubpassDependency2-             next srcSubpass dstSubpass srcStageMask dstStageMask srcAccessMask dstAccessMask dependencyFlags viewOffset+             next+             srcSubpass+             dstSubpass+             srcStageMask+             dstStageMask+             srcAccessMask+             dstAccessMask+             dependencyFlags+             viewOffset  instance es ~ '[] => Zero (SubpassDependency2 es) where   zero = SubpassDependency2@@ -2410,7 +2466,8 @@     | Just Refl <- eqT @e @RenderPassFragmentDensityMapCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss RenderPassCreateInfo2 es, PokeChain es) => ToCStruct (RenderPassCreateInfo2 es) where+instance ( Extendss RenderPassCreateInfo2 es+         , PokeChain es ) => ToCStruct (RenderPassCreateInfo2 es) where   withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)   pokeCStruct p RenderPassCreateInfo2{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2)@@ -2442,7 +2499,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss RenderPassCreateInfo2 es, PeekChain es) => FromCStruct (RenderPassCreateInfo2 es) where+instance ( Extendss RenderPassCreateInfo2 es+         , PeekChain es ) => FromCStruct (RenderPassCreateInfo2 es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2460,7 +2518,12 @@     pCorrelatedViewMasks <- peek @(Ptr Word32) ((p `plusPtr` 72 :: Ptr (Ptr Word32)))     pCorrelatedViewMasks' <- generateM (fromIntegral correlatedViewMaskCount) (\i -> peek @Word32 ((pCorrelatedViewMasks `advancePtrBytes` (4 * (i)) :: Ptr Word32)))     pure $ RenderPassCreateInfo2-             next flags pAttachments' pSubpasses' pDependencies' pCorrelatedViewMasks'+             next+             flags+             pAttachments'+             pSubpasses'+             pDependencies'+             pCorrelatedViewMasks'  instance es ~ '[] => Zero (RenderPassCreateInfo2 es) where   zero = RenderPassCreateInfo2@@ -2571,7 +2634,8 @@     | Just Refl <- eqT @e @SubpassFragmentDensityMapOffsetEndInfoQCOM = Just f     | otherwise = Nothing -instance (Extendss SubpassEndInfo es, PokeChain es) => ToCStruct (SubpassEndInfo es) where+instance ( Extendss SubpassEndInfo es+         , PokeChain es ) => ToCStruct (SubpassEndInfo es) where   withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SubpassEndInfo{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBPASS_END_INFO)@@ -2586,7 +2650,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss SubpassEndInfo es, PeekChain es) => FromCStruct (SubpassEndInfo es) where+instance ( Extendss SubpassEndInfo es+         , PeekChain es ) => FromCStruct (SubpassEndInfo es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs-boot view
@@ -19,28 +19,34 @@ type role AttachmentDescription2 nominal data AttachmentDescription2 (es :: [Type]) -instance (Extendss AttachmentDescription2 es, PokeChain es) => ToCStruct (AttachmentDescription2 es)+instance ( Extendss AttachmentDescription2 es+         , PokeChain es ) => ToCStruct (AttachmentDescription2 es) instance Show (Chain es) => Show (AttachmentDescription2 es) -instance (Extendss AttachmentDescription2 es, PeekChain es) => FromCStruct (AttachmentDescription2 es)+instance ( Extendss AttachmentDescription2 es+         , PeekChain es ) => FromCStruct (AttachmentDescription2 es)   type role AttachmentReference2 nominal data AttachmentReference2 (es :: [Type]) -instance (Extendss AttachmentReference2 es, PokeChain es) => ToCStruct (AttachmentReference2 es)+instance ( Extendss AttachmentReference2 es+         , PokeChain es ) => ToCStruct (AttachmentReference2 es) instance Show (Chain es) => Show (AttachmentReference2 es) -instance (Extendss AttachmentReference2 es, PeekChain es) => FromCStruct (AttachmentReference2 es)+instance ( Extendss AttachmentReference2 es+         , PeekChain es ) => FromCStruct (AttachmentReference2 es)   type role RenderPassCreateInfo2 nominal data RenderPassCreateInfo2 (es :: [Type]) -instance (Extendss RenderPassCreateInfo2 es, PokeChain es) => ToCStruct (RenderPassCreateInfo2 es)+instance ( Extendss RenderPassCreateInfo2 es+         , PokeChain es ) => ToCStruct (RenderPassCreateInfo2 es) instance Show (Chain es) => Show (RenderPassCreateInfo2 es) -instance (Extendss RenderPassCreateInfo2 es, PeekChain es) => FromCStruct (RenderPassCreateInfo2 es)+instance ( Extendss RenderPassCreateInfo2 es+         , PeekChain es ) => FromCStruct (RenderPassCreateInfo2 es)   data SubpassBeginInfo@@ -54,26 +60,32 @@ type role SubpassDependency2 nominal data SubpassDependency2 (es :: [Type]) -instance (Extendss SubpassDependency2 es, PokeChain es) => ToCStruct (SubpassDependency2 es)+instance ( Extendss SubpassDependency2 es+         , PokeChain es ) => ToCStruct (SubpassDependency2 es) instance Show (Chain es) => Show (SubpassDependency2 es) -instance (Extendss SubpassDependency2 es, PeekChain es) => FromCStruct (SubpassDependency2 es)+instance ( Extendss SubpassDependency2 es+         , PeekChain es ) => FromCStruct (SubpassDependency2 es)   type role SubpassDescription2 nominal data SubpassDescription2 (es :: [Type]) -instance (Extendss SubpassDescription2 es, PokeChain es) => ToCStruct (SubpassDescription2 es)+instance ( Extendss SubpassDescription2 es+         , PokeChain es ) => ToCStruct (SubpassDescription2 es) instance Show (Chain es) => Show (SubpassDescription2 es) -instance (Extendss SubpassDescription2 es, PeekChain es) => FromCStruct (SubpassDescription2 es)+instance ( Extendss SubpassDescription2 es+         , PeekChain es ) => FromCStruct (SubpassDescription2 es)   type role SubpassEndInfo nominal data SubpassEndInfo (es :: [Type]) -instance (Extendss SubpassEndInfo es, PokeChain es) => ToCStruct (SubpassEndInfo es)+instance ( Extendss SubpassEndInfo es+         , PokeChain es ) => ToCStruct (SubpassEndInfo es) instance Show (Chain es) => Show (SubpassEndInfo es) -instance (Extendss SubpassEndInfo es, PeekChain es) => FromCStruct (SubpassEndInfo es)+instance ( Extendss SubpassEndInfo es+         , PeekChain es ) => FromCStruct (SubpassEndInfo es) 
src/Vulkan/Core12/Promoted_From_VK_KHR_depth_stencil_resolve.hs view
@@ -135,7 +135,10 @@     independentResolveNone <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     independentResolve <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))     pure $ PhysicalDeviceDepthStencilResolveProperties-             supportedDepthResolveModes supportedStencilResolveModes (bool32ToBool independentResolveNone) (bool32ToBool independentResolve)+             supportedDepthResolveModes+             supportedStencilResolveModes+             (bool32ToBool independentResolveNone)+             (bool32ToBool independentResolve)  instance Storable PhysicalDeviceDepthStencilResolveProperties where   sizeOf ~_ = 32
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -420,6 +420,20 @@ --     by the current subpass /must/ be bound to the pipeline via a --     descriptor set --+-- -   #VUID-vkCmdDrawIndirectCount-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndirectCount-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+-- -- -   #VUID-vkCmdDrawIndirectCount-None-06537# Memory backing image --     subresources used as attachments in the current render pass /must/ --     not be written in any way other than as an attachment by this@@ -930,6 +944,360 @@ --     created with a non-zero value in --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- -   #VUID-vkCmdDrawIndirectCount-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawIndirectCount-rasterizationSamples-07471# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawIndirectCount-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirectCount-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndirectCount-firstAttachment-07476# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawIndirectCount-firstAttachment-07477# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndirectCount-firstAttachment-07478# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawIndirectCount-firstAttachment-07479# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndirectCount-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07482# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07483# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07484# If the+--     bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawIndirectCount-sampleLocationsEnable-07485# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07486# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-07487# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawIndirectCount-coverageModulationTableEnable-07488# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawIndirectCount-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawIndirectCount-coverageToColorEnable-07490# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawIndirectCount-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawIndirectCount-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawIndirectCount-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawIndirectCount-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndirectCount-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirectCount-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirectCount-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirectCount-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawIndirectCount-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+-- -- -   #VUID-vkCmdDrawIndirectCount-stage-07073# If the currently bound --     pipeline was created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -961,13 +1329,13 @@ --     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-vkCmdDrawIndirectCount-primitiveTopology-03420# If the bound---     graphics pipeline state was created with the+-- -   #VUID-vkCmdDrawIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500#+--     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+--     dynamic state enabled and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to --     '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>@@ -1165,12 +1533,25 @@                      -> -- | @stride@ is the byte stride between successive sets of draw parameters.                         ("stride" ::: Word32)                      -> io ()-cmdDrawIndirectCount commandBuffer buffer offset countBuffer countBufferOffset maxDrawCount stride = liftIO $ do+cmdDrawIndirectCount commandBuffer+                       buffer+                       offset+                       countBuffer+                       countBufferOffset+                       maxDrawCount+                       stride = liftIO $ do   let vkCmdDrawIndirectCountPtr = pVkCmdDrawIndirectCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdDrawIndirectCountPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectCount is null" Nothing Nothing   let vkCmdDrawIndirectCount' = mkVkCmdDrawIndirectCount vkCmdDrawIndirectCountPtr-  traceAroundEvent "vkCmdDrawIndirectCount" (vkCmdDrawIndirectCount' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride))+  traceAroundEvent "vkCmdDrawIndirectCount" (vkCmdDrawIndirectCount'+                                               (commandBufferHandle (commandBuffer))+                                               (buffer)+                                               (offset)+                                               (countBuffer)+                                               (countBufferOffset)+                                               (maxDrawCount)+                                               (stride))   pure $ ()  @@ -1571,6 +1952,20 @@ --     attachment used by the current subpass /must/ be bound to the --     pipeline via a descriptor set --+-- -   #VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+-- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-06537# Memory backing image --     subresources used as attachments in the current render pass /must/ --     not be written in any way other than as an attachment by this@@ -2082,6 +2477,360 @@ --     created with a non-zero value in --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- -   #VUID-vkCmdDrawIndexedIndirectCount-pColorBlendEnables-07470# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07471# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07476# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07477# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07478# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-firstAttachment-07479# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07484# If+--     the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07485# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07486# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-07487# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07489# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-coverageToColorEnable-07490# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-coverageReductionMode-07491# If+--     this @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawIndexedIndirectCount-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawIndexedIndirectCount-rasterizationSamples-07494# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07495# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawIndexedIndirectCount-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+-- -- -   #VUID-vkCmdDrawIndexedIndirectCount-stage-07073# If the currently --     bound pipeline was created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -2114,13 +2863,13 @@ --     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420# If the---     bound graphics pipeline state was created with the+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicPrimitiveTopologyUnrestricted-07500#+--     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+--     dynamic state enabled and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to --     '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>@@ -2324,11 +3073,24 @@                             -> -- | @stride@ is the byte stride between successive sets of draw parameters.                                ("stride" ::: Word32)                             -> io ()-cmdDrawIndexedIndirectCount commandBuffer buffer offset countBuffer countBufferOffset maxDrawCount stride = liftIO $ do+cmdDrawIndexedIndirectCount commandBuffer+                              buffer+                              offset+                              countBuffer+                              countBufferOffset+                              maxDrawCount+                              stride = liftIO $ do   let vkCmdDrawIndexedIndirectCountPtr = pVkCmdDrawIndexedIndirectCount (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdDrawIndexedIndirectCountPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndexedIndirectCount is null" Nothing Nothing   let vkCmdDrawIndexedIndirectCount' = mkVkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCountPtr-  traceAroundEvent "vkCmdDrawIndexedIndirectCount" (vkCmdDrawIndexedIndirectCount' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride))+  traceAroundEvent "vkCmdDrawIndexedIndirectCount" (vkCmdDrawIndexedIndirectCount'+                                                      (commandBufferHandle (commandBuffer))+                                                      (buffer)+                                                      (offset)+                                                      (countBuffer)+                                                      (countBufferOffset)+                                                      (maxDrawCount)+                                                      (stride))   pure $ () 
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_atomic_int64.hs view
@@ -91,7 +91,8 @@     shaderBufferInt64Atomics <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     shaderSharedInt64Atomics <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceShaderAtomicInt64Features-             (bool32ToBool shaderBufferInt64Atomics) (bool32ToBool shaderSharedInt64Atomics)+             (bool32ToBool shaderBufferInt64Atomics)+             (bool32ToBool shaderSharedInt64Atomics)  instance Storable PhysicalDeviceShaderAtomicInt64Features where   sizeOf ~_ = 24
src/Vulkan/Core12/Promoted_From_VK_KHR_shader_float_controls.hs view
@@ -237,7 +237,23 @@     shaderRoundingModeRTZFloat32 <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))     shaderRoundingModeRTZFloat64 <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))     pure $ PhysicalDeviceFloatControlsProperties-             denormBehaviorIndependence roundingModeIndependence (bool32ToBool shaderSignedZeroInfNanPreserveFloat16) (bool32ToBool shaderSignedZeroInfNanPreserveFloat32) (bool32ToBool shaderSignedZeroInfNanPreserveFloat64) (bool32ToBool shaderDenormPreserveFloat16) (bool32ToBool shaderDenormPreserveFloat32) (bool32ToBool shaderDenormPreserveFloat64) (bool32ToBool shaderDenormFlushToZeroFloat16) (bool32ToBool shaderDenormFlushToZeroFloat32) (bool32ToBool shaderDenormFlushToZeroFloat64) (bool32ToBool shaderRoundingModeRTEFloat16) (bool32ToBool shaderRoundingModeRTEFloat32) (bool32ToBool shaderRoundingModeRTEFloat64) (bool32ToBool shaderRoundingModeRTZFloat16) (bool32ToBool shaderRoundingModeRTZFloat32) (bool32ToBool shaderRoundingModeRTZFloat64)+             denormBehaviorIndependence+             roundingModeIndependence+             (bool32ToBool shaderSignedZeroInfNanPreserveFloat16)+             (bool32ToBool shaderSignedZeroInfNanPreserveFloat32)+             (bool32ToBool shaderSignedZeroInfNanPreserveFloat64)+             (bool32ToBool shaderDenormPreserveFloat16)+             (bool32ToBool shaderDenormPreserveFloat32)+             (bool32ToBool shaderDenormPreserveFloat64)+             (bool32ToBool shaderDenormFlushToZeroFloat16)+             (bool32ToBool shaderDenormFlushToZeroFloat32)+             (bool32ToBool shaderDenormFlushToZeroFloat64)+             (bool32ToBool shaderRoundingModeRTEFloat16)+             (bool32ToBool shaderRoundingModeRTEFloat32)+             (bool32ToBool shaderRoundingModeRTEFloat64)+             (bool32ToBool shaderRoundingModeRTZFloat16)+             (bool32ToBool shaderRoundingModeRTZFloat32)+             (bool32ToBool shaderRoundingModeRTZFloat64)  instance Storable PhysicalDeviceFloatControlsProperties where   sizeOf ~_ = 88
src/Vulkan/Core12/Promoted_From_VK_KHR_timeline_semaphore.hs view
@@ -151,7 +151,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSemaphoreCounterValue is null" Nothing Nothing   let vkGetSemaphoreCounterValue' = mkVkGetSemaphoreCounterValue vkGetSemaphoreCounterValuePtr   pPValue <- ContT $ bracket (callocBytes @Word64 8) free-  r <- lift $ traceAroundEvent "vkGetSemaphoreCounterValue" (vkGetSemaphoreCounterValue' (deviceHandle (device)) (semaphore) (pPValue))+  r <- lift $ traceAroundEvent "vkGetSemaphoreCounterValue" (vkGetSemaphoreCounterValue'+                                                               (deviceHandle (device))+                                                               (semaphore)+                                                               (pPValue))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pValue <- lift $ peek @Word64 pPValue   pure $ (pValue)@@ -189,13 +192,18 @@                               -- nanosecond, and /may/ be longer than the requested period.                               ("timeout" ::: Word64)                            -> io (Result)-waitSemaphoresSafeOrUnsafe mkVkWaitSemaphores device waitInfo timeout = liftIO . evalContT $ do+waitSemaphoresSafeOrUnsafe mkVkWaitSemaphores device+                                                waitInfo+                                                timeout = liftIO . evalContT $ do   let vkWaitSemaphoresPtr = pVkWaitSemaphores (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkWaitSemaphoresPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWaitSemaphores is null" Nothing Nothing   let vkWaitSemaphores' = mkVkWaitSemaphores vkWaitSemaphoresPtr   pWaitInfo <- ContT $ withCStruct (waitInfo)-  r <- lift $ traceAroundEvent "vkWaitSemaphores" (vkWaitSemaphores' (deviceHandle (device)) pWaitInfo (timeout))+  r <- lift $ traceAroundEvent "vkWaitSemaphores" (vkWaitSemaphores'+                                                     (deviceHandle (device))+                                                     pWaitInfo+                                                     (timeout))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -350,7 +358,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSignalSemaphore is null" Nothing Nothing   let vkSignalSemaphore' = mkVkSignalSemaphore vkSignalSemaphorePtr   pSignalInfo <- ContT $ withCStruct (signalInfo)-  r <- lift $ traceAroundEvent "vkSignalSemaphore" (vkSignalSemaphore' (deviceHandle (device)) pSignalInfo)+  r <- lift $ traceAroundEvent "vkSignalSemaphore" (vkSignalSemaphore'+                                                      (deviceHandle (device))+                                                      pSignalInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -694,7 +704,10 @@     let pSignalSemaphoreValuesLength = if pSignalSemaphoreValues == nullPtr then 0 else (fromIntegral signalSemaphoreValueCount)     pSignalSemaphoreValues' <- generateM pSignalSemaphoreValuesLength (\i -> peek @Word64 ((pSignalSemaphoreValues `advancePtrBytes` (8 * (i)) :: Ptr Word64)))     pure $ TimelineSemaphoreSubmitInfo-             waitSemaphoreValueCount pWaitSemaphoreValues' signalSemaphoreValueCount pSignalSemaphoreValues'+             waitSemaphoreValueCount+             pWaitSemaphoreValues'+             signalSemaphoreValueCount+             pSignalSemaphoreValues'  instance Zero TimelineSemaphoreSubmitInfo where   zero = TimelineSemaphoreSubmitInfo
src/Vulkan/Core12/Promoted_From_VK_KHR_vulkan_memory_model.hs view
@@ -106,7 +106,9 @@     vulkanMemoryModelDeviceScope <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     vulkanMemoryModelAvailabilityVisibilityChains <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceVulkanMemoryModelFeatures-             (bool32ToBool vulkanMemoryModel) (bool32ToBool vulkanMemoryModelDeviceScope) (bool32ToBool vulkanMemoryModelAvailabilityVisibilityChains)+             (bool32ToBool vulkanMemoryModel)+             (bool32ToBool vulkanMemoryModelDeviceScope)+             (bool32ToBool vulkanMemoryModelAvailabilityVisibilityChains)  instance Storable PhysicalDeviceVulkanMemoryModelFeatures where   sizeOf ~_ = 32
src/Vulkan/Core13.hs view
@@ -327,7 +327,21 @@     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)+             (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@@ -817,7 +831,51 @@     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+             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
src/Vulkan/Core13/Enums/AccessFlags2.hs view
@@ -43,6 +43,10 @@                                                           , ACCESS_2_SHADER_SAMPLED_READ_BIT                                                           , ACCESS_2_SHADER_STORAGE_READ_BIT                                                           , ACCESS_2_SHADER_STORAGE_WRITE_BIT+                                                          , ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV+                                                          , ACCESS_2_OPTICAL_FLOW_READ_BIT_NV+                                                          , ACCESS_2_MICROMAP_WRITE_BIT_EXT+                                                          , ACCESS_2_MICROMAP_READ_BIT_EXT                                                           , ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR                                                           , ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI                                                           , ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT@@ -183,31 +187,36 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'ACCESS_2_NONE' specifies no accesses.-pattern ACCESS_2_NONE                               = AccessFlagBits2 0x0000000000000000+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+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+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+pattern ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = AccessFlagBits2 0x0000000000000004+ -- | 'ACCESS_2_UNIFORM_READ_BIT' specifies read access to a -- <https://registry.khronos.org/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+pattern ACCESS_2_UNIFORM_READ_BIT = AccessFlagBits2 0x0000000000000008+ -- | 'ACCESS_2_INPUT_ATTACHMENT_READ_BIT' specifies read access to an -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass input attachment> -- within a render pass during subpass shading or fragment shading. Such@@ -216,7 +225,8 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT' -- pipeline stage.-pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT          = AccessFlagBits2 0x0000000000000010+pattern ACCESS_2_INPUT_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000010+ -- | 'ACCESS_2_SHADER_READ_BIT' is equivalent to the logical OR of: -- -- -   'ACCESS_2_UNIFORM_READ_BIT'@@ -226,10 +236,12 @@ -- -   'ACCESS_2_SHADER_STORAGE_READ_BIT' -- -- -   'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR'-pattern ACCESS_2_SHADER_READ_BIT                    = AccessFlagBits2 0x0000000000000020+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+pattern ACCESS_2_SHADER_WRITE_BIT = AccessFlagBits2 0x0000000000000040+ -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_BIT' specifies read access to a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachment>, -- such as via@@ -242,7 +254,8 @@ -- 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+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@@ -252,7 +265,8 @@ -- 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+pattern ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = AccessFlagBits2 0x0000000000000100+ -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT' specifies read access to a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>, -- via@@ -264,7 +278,8 @@ -- or -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT' -- pipeline stages.-pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT  = AccessFlagBits2 0x0000000000000200+pattern ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = AccessFlagBits2 0x0000000000000200+ -- | 'ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT' specifies write access to -- a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass depth\/stencil attachment>,@@ -278,6 +293,7 @@ -- '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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy>@@ -286,7 +302,8 @@ -- '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+pattern ACCESS_2_TRANSFER_READ_BIT = AccessFlagBits2 0x0000000000000800+ -- | 'ACCESS_2_TRANSFER_WRITE_BIT' specifies write access to an image or -- buffer in a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear>@@ -298,33 +315,39 @@ -- '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+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+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+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+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+pattern ACCESS_2_MEMORY_WRITE_BIT = AccessFlagBits2 0x0000000000010000+ -- | 'ACCESS_2_SHADER_SAMPLED_READ_BIT' specifies read access to a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-uniformtexelbuffer uniform texel buffer> -- or -- <https://registry.khronos.org/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+pattern ACCESS_2_SHADER_SAMPLED_READ_BIT = AccessFlagBits2 0x0000000100000000+ -- | 'ACCESS_2_SHADER_STORAGE_READ_BIT' specifies read access to a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -332,7 +355,8 @@ -- or -- <https://registry.khronos.org/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+pattern ACCESS_2_SHADER_STORAGE_READ_BIT = AccessFlagBits2 0x0000000200000000+ -- | 'ACCESS_2_SHADER_STORAGE_WRITE_BIT' specifies write access to a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagebuffer storage buffer>, -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-physical-storage-buffer physical storage buffer>,@@ -340,16 +364,49 @@ -- or -- <https://registry.khronos.org/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+pattern ACCESS_2_SHADER_STORAGE_WRITE_BIT = AccessFlagBits2 0x0000000400000000++-- | 'ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV' specifies write access to an image+-- or buffer resource as part of a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operation>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+-- pipeline stage.+pattern ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = AccessFlagBits2 0x0000080000000000++-- | 'ACCESS_2_OPTICAL_FLOW_READ_BIT_NV' specifies read access to an image or+-- buffer resource as part of a+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operation>.+-- Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+-- pipeline stage.+pattern ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = AccessFlagBits2 0x0000040000000000++-- | 'ACCESS_2_MICROMAP_WRITE_BIT_EXT' specifies write access to a micromap+-- object. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- pipeline stage.+pattern ACCESS_2_MICROMAP_WRITE_BIT_EXT = AccessFlagBits2 0x0000200000000000++-- | 'ACCESS_2_MICROMAP_READ_BIT_EXT' specifies read access to a micromap+-- object. Such access occurs in the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- and+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- pipeline stages.+pattern ACCESS_2_MICROMAP_READ_BIT_EXT = AccessFlagBits2 0x0000100000000000+ -- | 'ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR' specifies read access to a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#shader-binding-table shader binding table> -- in any shader pipeline stage.-pattern ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR  = AccessFlagBits2 0x0000010000000000+pattern ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = AccessFlagBits2 0x0000010000000000+ -- | '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+pattern ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = AccessFlagBits2 0x0000008000000000+ -- | 'ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT' specifies read -- access to -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass color attachments>,@@ -359,6 +416,7 @@ -- '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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#renderpass-fragmentdensitymapattachment fragment density map attachment> -- during dynamic@@ -366,7 +424,8 @@ -- 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+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-scratch acceleration structure scratch buffer>@@ -374,6 +433,7 @@ -- '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@@ -384,29 +444,34 @@ -- '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+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+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'@@ -414,6 +479,7 @@ -- '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'@@ -421,12 +487,13 @@ -- '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+pattern ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = AccessFlagBits2 0x0000000002000000  conNameAccessFlagBits2 :: String conNameAccessFlagBits2 = "AccessFlagBits2"@@ -436,49 +503,140 @@  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_SHADER_BINDING_TABLE_READ_BIT_KHR , "SHADER_BINDING_TABLE_READ_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")+  [ (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_OPTICAL_FLOW_WRITE_BIT_NV+    , "OPTICAL_FLOW_WRITE_BIT_NV"+    )+  ,+    ( ACCESS_2_OPTICAL_FLOW_READ_BIT_NV+    , "OPTICAL_FLOW_READ_BIT_NV"+    )+  ,+    ( ACCESS_2_MICROMAP_WRITE_BIT_EXT+    , "MICROMAP_WRITE_BIT_EXT"+    )+  ,+    ( ACCESS_2_MICROMAP_READ_BIT_EXT+    , "MICROMAP_READ_BIT_EXT"+    )+  ,+    ( ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR+    , "SHADER_BINDING_TABLE_READ_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 AccessFlagBits2 where-  showsPrec = enumShowsPrec enumPrefixAccessFlagBits2-                            showTableAccessFlagBits2-                            conNameAccessFlagBits2-                            (\(AccessFlagBits2 x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAccessFlagBits2+      showTableAccessFlagBits2+      conNameAccessFlagBits2+      (\(AccessFlagBits2 x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AccessFlagBits2 where-  readPrec = enumReadPrec enumPrefixAccessFlagBits2 showTableAccessFlagBits2 conNameAccessFlagBits2 AccessFlagBits2-+  readPrec =+    enumReadPrec+      enumPrefixAccessFlagBits2+      showTableAccessFlagBits2+      conNameAccessFlagBits2+      AccessFlagBits2
src/Vulkan/Core13/Enums/FormatFeatureFlags2.hs view
@@ -55,6 +55,9 @@                                                                         , 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_OPTICAL_FLOW_COST_BIT_NV+                                                                        , FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV+                                                                        , FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV                                                                         , FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM                                                                         , FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM                                                                         , FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM@@ -476,6 +479,19 @@ --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers> --     for write operations without specifying a format. --+-- -   'FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV' specifies that an image+--     view with this format /can/ be used as an input or reference to+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operations>+--+-- -   'FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV' specifies that an+--     image view with this format /can/ be used as a flow vector map+--     (either as hint, output or global flow) for+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operations>+--+-- -   'FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV' specifies that an image+--     view with this format /can/ be used as an output cost map for+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operations>+-- -- = 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>,@@ -486,55 +502,67 @@ -- | 'FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT' specifies that an image view /can/ -- be -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-sampledimage sampled from>.-pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT               = FormatFeatureFlagBits2 0x0000000000000001+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage image>.-pattern FORMAT_FEATURE_2_STORAGE_IMAGE_BIT               = FormatFeatureFlagBits2 0x0000000000000002+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+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+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+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+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+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+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+pattern FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = FormatFeatureFlagBits2 0x0000000000000200+ -- | 'FORMAT_FEATURE_2_BLIT_SRC_BIT' specifies that an image /can/ be used as -- the @srcImage@ for -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.-pattern FORMAT_FEATURE_2_BLIT_SRC_BIT                    = FormatFeatureFlagBits2 0x0000000000000400+pattern FORMAT_FEATURE_2_BLIT_SRC_BIT = FormatFeatureFlagBits2 0x0000000000000400+ -- | 'FORMAT_FEATURE_2_BLIT_DST_BIT' specifies that an image /can/ be used as -- the @dstImage@ for -- 'Vulkan.Core13.Promoted_From_VK_KHR_copy_commands2.cmdBlitImage2' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'.-pattern FORMAT_FEATURE_2_BLIT_DST_BIT                    = FormatFeatureFlagBits2 0x0000000000000800+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@@ -558,6 +586,7 @@ -- 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@@ -568,17 +597,20 @@ -- '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+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>.-pattern FORMAT_FEATURE_2_TRANSFER_SRC_BIT                = FormatFeatureFlagBits2 0x0000000000004000+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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands> -- and -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#clears clear commands>.-pattern FORMAT_FEATURE_2_TRANSFER_DST_BIT                = FormatFeatureFlagBits2 0x0000000000008000+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@@ -586,6 +618,7 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>@@ -600,24 +633,26 @@ -- “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+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://registry.khronos.org/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+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://registry.khronos.org/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+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@@@ -626,14 +661,15 @@ -- '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+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+pattern FORMAT_FEATURE_2_DISJOINT_BIT = FormatFeatureFlagBits2 0x0000000000400000+ -- | 'FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT' specifies that an -- application /can/ define a -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>@@ -649,7 +685,8 @@ -- /must/ not define a -- <https://registry.khronos.org/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+pattern FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = FormatFeatureFlagBits2 0x0000000000800000+ -- | 'FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT' specifies that image -- views or buffer views created with this format /can/ be used as -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>@@ -659,7 +696,8 @@ -- views created with this format /can/ be used as -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers> -- for read operations without specifying a format.-pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT          = FormatFeatureFlagBits2 0x0000000080000000+pattern FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = FormatFeatureFlagBits2 0x0000000080000000+ -- | 'FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT' specifies that image -- views or buffer views created with this format /can/ be used as -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storageimage storage images>@@ -669,50 +707,75 @@ -- buffer views created with this format /can/ be used as -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-storagetexelbuffer storage texel buffers> -- for write operations without specifying a format.-pattern FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT         = FormatFeatureFlagBits2 0x0000000100000000+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+pattern FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = FormatFeatureFlagBits2 0x0000000200000000++-- | 'FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV' specifies that an image view+-- with this format /can/ be used as an output cost map for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operations>+pattern FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = FormatFeatureFlagBits2 0x0000040000000000++-- | 'FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV' specifies that an image+-- view with this format /can/ be used as a flow vector map (either as+-- hint, output or global flow) for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operations>+pattern FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = FormatFeatureFlagBits2 0x0000020000000000++-- | 'FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV' specifies that an image+-- view with this format /can/ be used as an input or reference to+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operations>+pattern FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = FormatFeatureFlagBits2 0x0000010000000000+ -- | 'FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM' specifies that image -- views created with this format /can/ be sampled in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-boxfilter box filter sampling> -- operations.-pattern FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM              = FormatFeatureFlagBits2 0x0000002000000000+pattern FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = FormatFeatureFlagBits2 0x0000002000000000+ -- | 'FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM' specifies that image views -- created with this format /can/ be used in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-blockmatch block matching> -- operations.-pattern FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM                  = FormatFeatureFlagBits2 0x0000001000000000+pattern FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = FormatFeatureFlagBits2 0x0000001000000000+ -- | 'FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM' specifies that image -- views created with this format /can/ be sampled in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage weight image sampling> -- operations.-pattern FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM            = FormatFeatureFlagBits2 0x0000000800000000+pattern FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = FormatFeatureFlagBits2 0x0000000800000000+ -- | 'FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM' specifies that image views -- created with this format /can/ be used as the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#descriptorsets-weightimage weight image> -- input to -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#textures-weightimage weight image sampling> -- operations.-pattern FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM                    = FormatFeatureFlagBits2 0x0000000400000000+pattern FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = FormatFeatureFlagBits2 0x0000000400000000+ -- | 'FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' specifies that the -- format is supported as a renderable -- <https://registry.khronos.org/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+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://registry.khronos.org/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://registry.khronos.org/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+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@@ -732,61 +795,173 @@  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+  [+    ( 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+  ,+    ( 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+  ,+    ( 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+  ,+    ( 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_BOX_FILTER_SAMPLED_BIT_QCOM             , "BOX_FILTER_SAMPLED_BIT_QCOM")-  , (FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM                 , "BLOCK_MATCHING_BIT_QCOM")-  , (FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM           , "WEIGHT_SAMPLED_IMAGE_BIT_QCOM")-  , (FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM                   , "WEIGHT_IMAGE_BIT_QCOM")-  , (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")+  ,+    ( 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_OPTICAL_FLOW_COST_BIT_NV+    , "OPTICAL_FLOW_COST_BIT_NV"+    )+  ,+    ( FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV+    , "OPTICAL_FLOW_VECTOR_BIT_NV"+    )+  ,+    ( FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV+    , "OPTICAL_FLOW_IMAGE_BIT_NV"+    )+  ,+    ( FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM+    , "BOX_FILTER_SAMPLED_BIT_QCOM"+    )+  ,+    ( FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM+    , "BLOCK_MATCHING_BIT_QCOM"+    )+  ,+    ( FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM+    , "WEIGHT_SAMPLED_IMAGE_BIT_QCOM"+    )+  ,+    ( FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM+    , "WEIGHT_IMAGE_BIT_QCOM"+    )+  ,+    ( 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)+  showsPrec =+    enumShowsPrec+      enumPrefixFormatFeatureFlagBits2+      showTableFormatFeatureFlagBits2+      conNameFormatFeatureFlagBits2+      (\(FormatFeatureFlagBits2 x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read FormatFeatureFlagBits2 where-  readPrec = enumReadPrec enumPrefixFormatFeatureFlagBits2-                          showTableFormatFeatureFlagBits2-                          conNameFormatFeatureFlagBits2-                          FormatFeatureFlagBits2-+  readPrec =+    enumReadPrec+      enumPrefixFormatFeatureFlagBits2+      showTableFormatFeatureFlagBits2+      conNameFormatFeatureFlagBits2+      FormatFeatureFlagBits2
src/Vulkan/Core13/Enums/PipelineCreationFeedbackFlagBits.hs view
@@ -51,7 +51,8 @@  -- | 'PIPELINE_CREATION_FEEDBACK_VALID_BIT' indicates that the feedback -- information is valid.-pattern PIPELINE_CREATION_FEEDBACK_VALID_BIT                          = PipelineCreationFeedbackFlagBits 0x00000001+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@@ -77,6 +78,7 @@ -- 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@@ -93,7 +95,7 @@ -- 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+pattern PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = PipelineCreationFeedbackFlagBits 0x00000004  conNamePipelineCreationFeedbackFlagBits :: String conNamePipelineCreationFeedbackFlagBits = "PipelineCreationFeedbackFlagBits"@@ -103,21 +105,33 @@  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")+  [+    ( 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)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCreationFeedbackFlagBits+      showTablePipelineCreationFeedbackFlagBits+      conNamePipelineCreationFeedbackFlagBits+      (\(PipelineCreationFeedbackFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCreationFeedbackFlagBits where-  readPrec = enumReadPrec enumPrefixPipelineCreationFeedbackFlagBits-                          showTablePipelineCreationFeedbackFlagBits-                          conNamePipelineCreationFeedbackFlagBits-                          PipelineCreationFeedbackFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCreationFeedbackFlagBits+      showTablePipelineCreationFeedbackFlagBits+      conNamePipelineCreationFeedbackFlagBits+      PipelineCreationFeedbackFlagBits
src/Vulkan/Core13/Enums/PipelineStageFlags2.hs view
@@ -53,6 +53,8 @@                                                                         , PIPELINE_STAGE_2_INDEX_INPUT_BIT                                                                         , PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT                                                                         , PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT+                                                                        , PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV+                                                                        , PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT                                                                         , PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR                                                                         , PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI                                                                         , PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI@@ -217,50 +219,61 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'PIPELINE_STAGE_2_NONE' specifies no stages of execution.-pattern PIPELINE_STAGE_2_NONE                               = PipelineStageFlagBits2 0x0000000000000000+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+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+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+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+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+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+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+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://registry.khronos.org/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+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://registry.khronos.org/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+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@@ -268,10 +281,12 @@ -- multisample resolve operations for framebuffer attachments with a color -- or depth\/stencil format, and -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearAttachments'.-pattern PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT        = PipelineStageFlagBits2 0x0000000000000400+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+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'@@ -283,17 +298,20 @@ -- -   'PIPELINE_STAGE_2_CLEAR_BIT' -- -- -   'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR'-pattern PIPELINE_STAGE_2_ALL_TRANSFER_BIT                   = PipelineStageFlagBits2 0x0000000000001000+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+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+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: --@@ -330,31 +348,39 @@ -- -   'PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT' -- -- -   'PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI'-pattern PIPELINE_STAGE_2_ALL_GRAPHICS_BIT                   = PipelineStageFlagBits2 0x0000000000008000+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+pattern PIPELINE_STAGE_2_ALL_COMMANDS_BIT = PipelineStageFlagBits2 0x0000000000010000+ -- | 'PIPELINE_STAGE_2_COPY_BIT' specifies the execution of all -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#copies copy commands>, -- including 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults'.-pattern PIPELINE_STAGE_2_COPY_BIT                           = PipelineStageFlagBits2 0x0000000100000000+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+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+pattern PIPELINE_STAGE_2_BLIT_BIT = PipelineStageFlagBits2 0x0000000400000000+ -- | 'PIPELINE_STAGE_2_CLEAR_BIT' specifies the execution of -- <https://registry.khronos.org/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+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+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+pattern PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = PipelineStageFlagBits2 0x0000002000000000+ -- | 'PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT' is equivalent to -- specifying all supported -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader stages>:@@ -370,33 +396,51 @@ -- -   'PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' -- -- -   'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT'-pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT      = PipelineStageFlagBits2 0x0000004000000000+pattern PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = PipelineStageFlagBits2 0x0000004000000000++-- | 'PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV' specifies the stage of the+-- pipeline where+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-operations optical flow operation>+-- are performed.+pattern PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = PipelineStageFlagBits2 0x0000000020000000++-- No documentation found for Nested "VkPipelineStageFlagBits2" "VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT"+pattern PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = PipelineStageFlagBits2 0x0000000040000000+ -- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR' specifies the -- execution of -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#acceleration-structure-copying acceleration structure copy commands>. pattern PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = PipelineStageFlagBits2 0x0000000010000000+ -- | '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+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+pattern PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = PipelineStageFlagBits2 0x0000008000000000+ -- | 'PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT' specifies the mesh shader stage.-pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT                = PipelineStageFlagBits2 0x0000000000100000+pattern PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = PipelineStageFlagBits2 0x0000000000100000+ -- | 'PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT' specifies the task shader stage.-pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT                = PipelineStageFlagBits2 0x0000000000080000+pattern PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fragmentdensitymapops generate the fragment areas>.-pattern PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT   = PipelineStageFlagBits2 0x0000000000800000+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+pattern PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = PipelineStageFlagBits2 0x0000000000200000+ -- | 'PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR' specifies the -- execution of -- <https://registry.khronos.org/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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-attachment fragment shading rate attachment>@@ -405,18 +449,21 @@ -- 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+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+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+pattern PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = PipelineStageFlagBits2 0x0000000001000000  conNamePipelineStageFlagBits2 :: String conNamePipelineStageFlagBits2 = "PipelineStageFlagBits2"@@ -426,55 +473,162 @@  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_ACCELERATION_STRUCTURE_COPY_BIT_KHR, "ACCELERATION_STRUCTURE_COPY_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_EXT               , "MESH_SHADER_BIT_EXT")-  , (PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT               , "TASK_SHADER_BIT_EXT")-  , (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")+  [ (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_OPTICAL_FLOW_BIT_NV+    , "OPTICAL_FLOW_BIT_NV"+    )+  ,+    ( PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT+    , "MICROMAP_BUILD_BIT_EXT"+    )+  ,+    ( PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR+    , "ACCELERATION_STRUCTURE_COPY_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_EXT+    , "MESH_SHADER_BIT_EXT"+    )+  ,+    ( PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT+    , "TASK_SHADER_BIT_EXT"+    )+  ,+    ( 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)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineStageFlagBits2+      showTablePipelineStageFlagBits2+      conNamePipelineStageFlagBits2+      (\(PipelineStageFlagBits2 x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineStageFlagBits2 where-  readPrec = enumReadPrec enumPrefixPipelineStageFlagBits2-                          showTablePipelineStageFlagBits2-                          conNamePipelineStageFlagBits2-                          PipelineStageFlagBits2-+  readPrec =+    enumReadPrec+      enumPrefixPipelineStageFlagBits2+      showTablePipelineStageFlagBits2+      conNamePipelineStageFlagBits2+      PipelineStageFlagBits2
src/Vulkan/Core13/Enums/PrivateDataSlotCreateFlags.hs view
@@ -28,8 +28,6 @@ newtype PrivateDataSlotCreateFlags = PrivateDataSlotCreateFlags Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePrivateDataSlotCreateFlags :: String conNamePrivateDataSlotCreateFlags = "PrivateDataSlotCreateFlags" @@ -40,15 +38,18 @@ showTablePrivateDataSlotCreateFlags = []  instance Show PrivateDataSlotCreateFlags where-  showsPrec = enumShowsPrec enumPrefixPrivateDataSlotCreateFlags-                            showTablePrivateDataSlotCreateFlags-                            conNamePrivateDataSlotCreateFlags-                            (\(PrivateDataSlotCreateFlags x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPrivateDataSlotCreateFlags+      showTablePrivateDataSlotCreateFlags+      conNamePrivateDataSlotCreateFlags+      (\(PrivateDataSlotCreateFlags x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PrivateDataSlotCreateFlags where-  readPrec = enumReadPrec enumPrefixPrivateDataSlotCreateFlags-                          showTablePrivateDataSlotCreateFlags-                          conNamePrivateDataSlotCreateFlags-                          PrivateDataSlotCreateFlags-+  readPrec =+    enumReadPrec+      enumPrefixPrivateDataSlotCreateFlags+      showTablePrivateDataSlotCreateFlags+      conNamePrivateDataSlotCreateFlags+      PrivateDataSlotCreateFlags
src/Vulkan/Core13/Enums/RenderingFlagBits.hs view
@@ -62,16 +62,19 @@ -- 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+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+pattern RENDERING_RESUMING_BIT = RenderingFlagBits 0x00000004+ -- | 'RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT' specifies that -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-legacy-dithering Legacy Dithering> -- is enabled for the render pass instance.-pattern RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT        = RenderingFlagBits 0x00000008+pattern RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = RenderingFlagBits 0x00000008  conNameRenderingFlagBits :: String conNameRenderingFlagBits = "RenderingFlagBits"@@ -81,20 +84,31 @@  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")-  , (RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT       , "ENABLE_LEGACY_DITHERING_BIT_EXT")+  [+    ( RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT+    , "CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT"+    )+  , (RENDERING_SUSPENDING_BIT, "SUSPENDING_BIT")+  , (RENDERING_RESUMING_BIT, "RESUMING_BIT")+  ,+    ( RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT+    , "ENABLE_LEGACY_DITHERING_BIT_EXT"+    )   ]  instance Show RenderingFlagBits where-  showsPrec = enumShowsPrec enumPrefixRenderingFlagBits-                            showTableRenderingFlagBits-                            conNameRenderingFlagBits-                            (\(RenderingFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixRenderingFlagBits+      showTableRenderingFlagBits+      conNameRenderingFlagBits+      (\(RenderingFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read RenderingFlagBits where   readPrec =-    enumReadPrec enumPrefixRenderingFlagBits showTableRenderingFlagBits conNameRenderingFlagBits RenderingFlagBits-+    enumReadPrec+      enumPrefixRenderingFlagBits+      showTableRenderingFlagBits+      conNameRenderingFlagBits+      RenderingFlagBits
src/Vulkan/Core13/Enums/SubmitFlagBits.hs view
@@ -48,12 +48,18 @@ showTableSubmitFlagBits = [(SUBMIT_PROTECTED_BIT, "")]  instance Show SubmitFlagBits where-  showsPrec = enumShowsPrec enumPrefixSubmitFlagBits-                            showTableSubmitFlagBits-                            conNameSubmitFlagBits-                            (\(SubmitFlagBits x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSubmitFlagBits+      showTableSubmitFlagBits+      conNameSubmitFlagBits+      (\(SubmitFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SubmitFlagBits where-  readPrec = enumReadPrec enumPrefixSubmitFlagBits showTableSubmitFlagBits conNameSubmitFlagBits SubmitFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixSubmitFlagBits+      showTableSubmitFlagBits+      conNameSubmitFlagBits+      SubmitFlagBits
src/Vulkan/Core13/Enums/ToolPurposeFlagBits.hs view
@@ -63,21 +63,26 @@  -- | 'TOOL_PURPOSE_VALIDATION_BIT' specifies that the tool provides -- validation of API usage.-pattern TOOL_PURPOSE_VALIDATION_BIT          = ToolPurposeFlagBits 0x00000001+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+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+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+pattern TOOL_PURPOSE_MODIFYING_FEATURES_BIT = ToolPurposeFlagBits 0x00000010+ -- | 'TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT' specifies that the tool consumes -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-debug-markers debug markers> -- or@@ -85,7 +90,8 @@ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-queue-labels queue labels>, -- or -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#debugging-command-buffer-labels command buffer labels>-pattern TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT   = ToolPurposeFlagBits 0x00000040+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@@ -100,25 +106,40 @@  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")+  [ (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)+  showsPrec =+    enumShowsPrec+      enumPrefixToolPurposeFlagBits+      showTableToolPurposeFlagBits+      conNameToolPurposeFlagBits+      (\(ToolPurposeFlagBits x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ToolPurposeFlagBits where-  readPrec = enumReadPrec enumPrefixToolPurposeFlagBits-                          showTableToolPurposeFlagBits-                          conNameToolPurposeFlagBits-                          ToolPurposeFlagBits-+  readPrec =+    enumReadPrec+      enumPrefixToolPurposeFlagBits+      showTableToolPurposeFlagBits+      conNameToolPurposeFlagBits+      ToolPurposeFlagBits
src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state.hs view
@@ -151,7 +151,9 @@   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))+  traceAroundEvent "vkCmdSetCullMode" (vkCmdSetCullMode'+                                         (commandBufferHandle (commandBuffer))+                                         (cullMode))   pure $ ()  @@ -232,7 +234,9 @@   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))+  traceAroundEvent "vkCmdSetFrontFace" (vkCmdSetFrontFace'+                                          (commandBufferHandle (commandBuffer))+                                          (frontFace))   pure $ ()  @@ -315,7 +319,9 @@   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))+  traceAroundEvent "vkCmdSetPrimitiveTopology" (vkCmdSetPrimitiveTopology'+                                                  (commandBufferHandle (commandBuffer))+                                                  (primitiveTopology))   pure $ ()  @@ -418,7 +424,10 @@   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))+  lift $ traceAroundEvent "vkCmdSetViewportWithCount" (vkCmdSetViewportWithCount'+                                                         (commandBufferHandle (commandBuffer))+                                                         ((fromIntegral (Data.Vector.length $ (viewports)) :: Word32))+                                                         (pPViewports))   pure $ ()  @@ -534,7 +543,10 @@   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))+  lift $ traceAroundEvent "vkCmdSetScissorWithCount" (vkCmdSetScissorWithCount'+                                                        (commandBufferHandle (commandBuffer))+                                                        ((fromIntegral (Data.Vector.length $ (scissors)) :: Word32))+                                                        (pPScissors))   pure $ ()  @@ -721,7 +733,12 @@                       -> -- | @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+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@@ -751,7 +768,14 @@       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)+  lift $ traceAroundEvent "vkCmdBindVertexBuffers2" (vkCmdBindVertexBuffers2'+                                                       (commandBufferHandle (commandBuffer))+                                                       (firstBinding)+                                                       ((fromIntegral pBuffersLength :: Word32))+                                                       (pPBuffers)+                                                       (pPOffsets)+                                                       pSizes+                                                       pStrides)   pure $ ()  @@ -830,7 +854,9 @@   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)))+  traceAroundEvent "vkCmdSetDepthTestEnable" (vkCmdSetDepthTestEnable'+                                                (commandBufferHandle (commandBuffer))+                                                (boolToBool32 (depthTestEnable)))   pure $ ()  @@ -909,7 +935,9 @@   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)))+  traceAroundEvent "vkCmdSetDepthWriteEnable" (vkCmdSetDepthWriteEnable'+                                                 (commandBufferHandle (commandBuffer))+                                                 (boolToBool32 (depthWriteEnable)))   pure $ ()  @@ -995,7 +1023,9 @@   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))+  traceAroundEvent "vkCmdSetDepthCompareOp" (vkCmdSetDepthCompareOp'+                                               (commandBufferHandle (commandBuffer))+                                               (depthCompareOp))   pure $ ()  @@ -1074,7 +1104,9 @@   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)))+  traceAroundEvent "vkCmdSetDepthBoundsTestEnable" (vkCmdSetDepthBoundsTestEnable'+                                                      (commandBufferHandle (commandBuffer))+                                                      (boolToBool32 (depthBoundsTestEnable)))   pure $ ()  @@ -1153,7 +1185,9 @@   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)))+  traceAroundEvent "vkCmdSetStencilTestEnable" (vkCmdSetStencilTestEnable'+                                                  (commandBufferHandle (commandBuffer))+                                                  (boolToBool32 (stencilTestEnable)))   pure $ ()  @@ -1263,11 +1297,22 @@                    -- specifying the comparison operator used in the stencil test.                    CompareOp                 -> io ()-cmdSetStencilOp commandBuffer faceMask failOp passOp depthFailOp compareOp = liftIO $ do+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))+  traceAroundEvent "vkCmdSetStencilOp" (vkCmdSetStencilOp'+                                          (commandBufferHandle (commandBuffer))+                                          (faceMask)+                                          (failOp)+                                          (passOp)+                                          (depthFailOp)+                                          (compareOp))   pure $ () 
src/Vulkan/Core13/Promoted_From_VK_EXT_extended_dynamic_state2.hs view
@@ -100,12 +100,15 @@                                  -- immediately before the rasterization stage.                                  ("rasterizerDiscardEnable" ::: Bool)                               -> io ()-cmdSetRasterizerDiscardEnable commandBuffer rasterizerDiscardEnable = liftIO $ do+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)))+  traceAroundEvent "vkCmdSetRasterizerDiscardEnable" (vkCmdSetRasterizerDiscardEnable'+                                                        (commandBufferHandle (commandBuffer))+                                                        (boolToBool32 (rasterizerDiscardEnable)))   pure $ ()  @@ -184,7 +187,9 @@   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)))+  traceAroundEvent "vkCmdSetDepthBiasEnable" (vkCmdSetDepthBiasEnable'+                                                (commandBufferHandle (commandBuffer))+                                                (boolToBool32 (depthBiasEnable)))   pure $ ()  @@ -266,6 +271,8 @@   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)))+  traceAroundEvent "vkCmdSetPrimitiveRestartEnable" (vkCmdSetPrimitiveRestartEnable'+                                                       (commandBufferHandle (commandBuffer))+                                                       (boolToBool32 (primitiveRestartEnable)))   pure $ () 
src/Vulkan/Core13/Promoted_From_VK_EXT_inline_uniform_block.hs view
@@ -106,7 +106,8 @@     inlineUniformBlock <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     descriptorBindingInlineUniformBlockUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceInlineUniformBlockFeatures-             (bool32ToBool inlineUniformBlock) (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind)+             (bool32ToBool inlineUniformBlock)+             (bool32ToBool descriptorBindingInlineUniformBlockUpdateAfterBind)  instance Storable PhysicalDeviceInlineUniformBlockFeatures where   sizeOf ~_ = 24@@ -212,7 +213,11 @@     maxDescriptorSetInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))     maxDescriptorSetUpdateAfterBindInlineUniformBlocks <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))     pure $ PhysicalDeviceInlineUniformBlockProperties-             maxInlineUniformBlockSize maxPerStageDescriptorInlineUniformBlocks maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks maxDescriptorSetInlineUniformBlocks maxDescriptorSetUpdateAfterBindInlineUniformBlocks+             maxInlineUniformBlockSize+             maxPerStageDescriptorInlineUniformBlocks+             maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks+             maxDescriptorSetInlineUniformBlocks+             maxDescriptorSetUpdateAfterBindInlineUniformBlocks  instance Storable PhysicalDeviceInlineUniformBlockProperties where   sizeOf ~_ = 40
src/Vulkan/Core13/Promoted_From_VK_EXT_pipeline_creation_feedback.hs view
@@ -197,7 +197,9 @@     pipelineStageCreationFeedbackCount <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     pPipelineStageCreationFeedbacks <- peek @(Ptr PipelineCreationFeedback) ((p `plusPtr` 32 :: Ptr (Ptr PipelineCreationFeedback)))     pure $ PipelineCreationFeedbackCreateInfo-             pPipelineCreationFeedback pipelineStageCreationFeedbackCount pPipelineStageCreationFeedbacks+             pPipelineCreationFeedback+             pipelineStageCreationFeedbackCount+             pPipelineStageCreationFeedbacks  instance Storable PipelineCreationFeedbackCreateInfo where   sizeOf ~_ = 40
src/Vulkan/Core13/Promoted_From_VK_EXT_private_data.hs view
@@ -149,7 +149,11 @@     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))+  r <- lift $ traceAroundEvent "vkCreatePrivateDataSlot" (vkCreatePrivateDataSlot'+                                                            (deviceHandle (device))+                                                            pCreateInfo+                                                            pAllocator+                                                            (pPPrivateDataSlot))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPrivateDataSlot <- lift $ peek @PrivateDataSlot pPPrivateDataSlot   pure $ (pPrivateDataSlot)@@ -229,7 +233,9 @@                           -- chapter.                           ("allocator" ::: Maybe AllocationCallbacks)                        -> io ()-destroyPrivateDataSlot device privateDataSlot allocator = liftIO . evalContT $ do+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@@ -237,7 +243,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyPrivateDataSlot" (vkDestroyPrivateDataSlot' (deviceHandle (device)) (privateDataSlot) pAllocator)+  lift $ traceAroundEvent "vkDestroyPrivateDataSlot" (vkDestroyPrivateDataSlot'+                                                        (deviceHandle (device))+                                                        (privateDataSlot)+                                                        pAllocator)   pure $ ()  @@ -302,12 +311,21 @@                   -- be stored at @privateDataSlot@.                   ("data" ::: Word64)                -> io ()-setPrivateData device objectType objectHandle privateDataSlot data' = liftIO $ do+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'))+  r <- traceAroundEvent "vkSetPrivateData" (vkSetPrivateData'+                                              (deviceHandle (device))+                                              (objectType)+                                              (objectHandle)+                                              (privateDataSlot)+                                              (data'))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -370,13 +388,21 @@                   -- have been created, allocated, or retrieved from @device@                   PrivateDataSlot                -> io (("data" ::: Word64))-getPrivateData device objectType objectHandle privateDataSlot = liftIO . evalContT $ do+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))+  lift $ traceAroundEvent "vkGetPrivateData" (vkGetPrivateData'+                                                (deviceHandle (device))+                                                (objectType)+                                                (objectHandle)+                                                (privateDataSlot)+                                                (pPData))   pData <- lift $ peek @Word64 pPData   pure $ (pData) 
src/Vulkan/Core13/Promoted_From_VK_EXT_subgroup_size_control.hs view
@@ -129,7 +129,8 @@     subgroupSizeControl <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     computeFullSubgroups <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceSubgroupSizeControlFeatures-             (bool32ToBool subgroupSizeControl) (bool32ToBool computeFullSubgroups)+             (bool32ToBool subgroupSizeControl)+             (bool32ToBool computeFullSubgroups)  instance Storable PhysicalDeviceSubgroupSizeControlFeatures where   sizeOf ~_ = 24@@ -232,7 +233,10 @@     maxComputeWorkgroupSubgroups <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     requiredSubgroupSizeStages <- peek @ShaderStageFlags ((p `plusPtr` 28 :: Ptr ShaderStageFlags))     pure $ PhysicalDeviceSubgroupSizeControlProperties-             minSubgroupSize maxSubgroupSize maxComputeWorkgroupSubgroups requiredSubgroupSizeStages+             minSubgroupSize+             maxSubgroupSize+             maxComputeWorkgroupSubgroups+             requiredSubgroupSizeStages  instance Storable PhysicalDeviceSubgroupSizeControlProperties where   sizeOf ~_ = 32
src/Vulkan/Core13/Promoted_From_VK_EXT_texel_buffer_alignment.hs view
@@ -120,7 +120,10 @@     uniformTexelBufferOffsetAlignmentBytes <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))     uniformTexelBufferOffsetSingleTexelAlignment <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))     pure $ PhysicalDeviceTexelBufferAlignmentProperties-             storageTexelBufferOffsetAlignmentBytes (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment) uniformTexelBufferOffsetAlignmentBytes (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment)+             storageTexelBufferOffsetAlignmentBytes+             (bool32ToBool storageTexelBufferOffsetSingleTexelAlignment)+             uniformTexelBufferOffsetAlignmentBytes+             (bool32ToBool uniformTexelBufferOffsetSingleTexelAlignment)  instance Storable PhysicalDeviceTexelBufferAlignmentProperties where   sizeOf ~_ = 48
src/Vulkan/Core13/Promoted_From_VK_EXT_tooling_info.hs view
@@ -136,12 +136,18 @@   let vkGetPhysicalDeviceToolProperties' = mkVkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolPropertiesPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPToolCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceToolProperties" (vkGetPhysicalDeviceToolProperties' physicalDevice' (pPToolCount) (nullPtr))+  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)))+  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)))
src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -198,7 +198,9 @@     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)+  lift $ traceAroundEvent "vkCmdCopyBuffer2" (vkCmdCopyBuffer2'+                                                (commandBufferHandle (commandBuffer))+                                                pCopyBufferInfo)   pure $ ()  @@ -297,7 +299,9 @@     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)+  lift $ traceAroundEvent "vkCmdCopyImage2" (vkCmdCopyImage2'+                                               (commandBufferHandle (commandBuffer))+                                               pCopyImageInfo)   pure $ ()  @@ -395,7 +399,9 @@     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)+  lift $ traceAroundEvent "vkCmdBlitImage2" (vkCmdBlitImage2'+                                               (commandBufferHandle (commandBuffer))+                                               pBlitImageInfo)   pure $ ()  @@ -490,13 +496,16 @@                          -- structure describing the copy parameters.                          CopyBufferToImageInfo2                       -> io ()-cmdCopyBufferToImage2 commandBuffer copyBufferToImageInfo = liftIO . evalContT $ do+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)+  lift $ traceAroundEvent "vkCmdCopyBufferToImage2" (vkCmdCopyBufferToImage2'+                                                       (commandBufferHandle (commandBuffer))+                                                       pCopyBufferToImageInfo)   pure $ ()  @@ -591,13 +600,16 @@                          -- structure describing the copy parameters.                          CopyImageToBufferInfo2                       -> io ()-cmdCopyImageToBuffer2 commandBuffer copyImageToBufferInfo = liftIO . evalContT $ do+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)+  lift $ traceAroundEvent "vkCmdCopyImageToBuffer2" (vkCmdCopyImageToBuffer2'+                                                       (commandBufferHandle (commandBuffer))+                                                       pCopyImageToBufferInfo)   pure $ ()  @@ -695,7 +707,9 @@     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)+  lift $ traceAroundEvent "vkCmdResolveImage2" (vkCmdResolveImage2'+                                                  (commandBufferHandle (commandBuffer))+                                                  pResolveImageInfo)   pure $ ()  @@ -962,7 +976,8 @@     | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f     | otherwise = Nothing -instance (Extendss ImageBlit2 es, PokeChain es) => ToCStruct (ImageBlit2 es) where+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)@@ -1001,7 +1016,8 @@         poke (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1)     lift $ f -instance (Extendss ImageBlit2 es, PeekChain es) => FromCStruct (ImageBlit2 es) where+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)@@ -1014,7 +1030,11 @@     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))+             next+             srcSubresource+             ((srcOffsets0, srcOffsets1))+             dstSubresource+             ((dstOffsets0, dstOffsets1))  instance es ~ '[] => Zero (ImageBlit2 es) where   zero = ImageBlit2@@ -1123,7 +1143,8 @@     | Just Refl <- eqT @e @CopyCommandTransformInfoQCOM = Just f     | otherwise = Nothing -instance (Extendss BufferImageCopy2 es, PokeChain es) => ToCStruct (BufferImageCopy2 es) where+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)@@ -1150,7 +1171,8 @@     lift $ poke ((p `plusPtr` 60 :: Ptr Extent3D)) (zero)     lift $ f -instance (Extendss BufferImageCopy2 es, PeekChain es) => FromCStruct (BufferImageCopy2 es) where+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)@@ -1161,7 +1183,13 @@     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+             next+             bufferOffset+             bufferRowLength+             bufferImageHeight+             imageSubresource+             imageOffset+             imageExtent  instance es ~ '[] => Zero (BufferImageCopy2 es) where   zero = BufferImageCopy2
src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs-boot view
@@ -39,10 +39,12 @@ type role BufferImageCopy2 nominal data BufferImageCopy2 (es :: [Type]) -instance (Extendss BufferImageCopy2 es, PokeChain es) => ToCStruct (BufferImageCopy2 es)+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)+instance ( Extendss BufferImageCopy2 es+         , PeekChain es ) => FromCStruct (BufferImageCopy2 es)   data CopyBufferInfo2
src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -184,7 +184,9 @@     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))+  lift $ traceAroundEvent "vkCmdBeginRendering" (vkCmdBeginRendering'+                                                   (commandBufferHandle (commandBuffer))+                                                   (forgetExtensions pRenderingInfo))   pure $ ()  -- | This function will call the supplied action between calls to@@ -194,7 +196,8 @@ -- 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)+  (cmdBeginRendering commandBuffer+                       pRenderingInfo) *> a <* (cmdEndRendering commandBuffer)   foreign import ccall@@ -283,7 +286,8 @@   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)))+  traceAroundEvent "vkCmdEndRendering" (vkCmdEndRendering'+                                          (commandBufferHandle (commandBuffer)))   pure $ ()  @@ -370,7 +374,10 @@     depthAttachmentFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))     stencilAttachmentFormat <- peek @Format ((p `plusPtr` 36 :: Ptr Format))     pure $ PipelineRenderingCreateInfo-             viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat+             viewMask+             pColorAttachmentFormats'+             depthAttachmentFormat+             stencilAttachmentFormat  instance Zero PipelineRenderingCreateInfo where   zero = PipelineRenderingCreateInfo@@ -927,7 +934,8 @@     | Just Refl <- eqT @e @DeviceGroupRenderPassBeginInfo = Just f     | otherwise = Nothing -instance (Extendss RenderingInfo es, PokeChain es) => ToCStruct (RenderingInfo es) where+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)@@ -1548,7 +1556,12 @@     stencilAttachmentFormat <- peek @Format ((p `plusPtr` 44 :: Ptr Format))     rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 48 :: Ptr SampleCountFlagBits))     pure $ CommandBufferInheritanceRenderingInfo-             flags viewMask pColorAttachmentFormats' depthAttachmentFormat stencilAttachmentFormat rasterizationSamples+             flags+             viewMask+             pColorAttachmentFormats'+             depthAttachmentFormat+             stencilAttachmentFormat+             rasterizationSamples  instance Zero CommandBufferInheritanceRenderingInfo where   zero = CommandBufferInheritanceRenderingInfo
src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs-boot view
@@ -46,6 +46,7 @@ type role RenderingInfo nominal data RenderingInfo (es :: [Type]) -instance (Extendss RenderingInfo es, PokeChain es) => ToCStruct (RenderingInfo es)+instance ( Extendss RenderingInfo es+         , PokeChain es ) => ToCStruct (RenderingInfo es) instance Show (Chain es) => Show (RenderingInfo es) 
src/Vulkan/Core13/Promoted_From_VK_KHR_maintenance4.hs view
@@ -100,7 +100,10 @@ -- '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)+                                   . ( Extendss MemoryRequirements2 a+                                     , PokeChain a+                                     , PeekChain a+                                     , MonadIO io )                                   => -- | @device@ is the logical device intended to own the buffer.                                      --                                      -- #VUID-vkGetDeviceBufferMemoryRequirements-device-parameter# @device@@@ -121,7 +124,10 @@   let vkGetDeviceBufferMemoryRequirements' = mkVkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirementsPtr   pInfo <- ContT $ withCStruct (info)   pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetDeviceBufferMemoryRequirements" (vkGetDeviceBufferMemoryRequirements' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  lift $ traceAroundEvent "vkGetDeviceBufferMemoryRequirements" (vkGetDeviceBufferMemoryRequirements'+                                                                   (deviceHandle (device))+                                                                   pInfo+                                                                   (forgetExtensions (pPMemoryRequirements)))   pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -145,7 +151,10 @@ -- '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)+                                  . ( Extendss MemoryRequirements2 a+                                    , PokeChain a+                                    , PeekChain a+                                    , MonadIO io )                                  => -- | @device@ is the logical device intended to own the image.                                     --                                     -- #VUID-vkGetDeviceImageMemoryRequirements-device-parameter# @device@@@ -165,7 +174,10 @@   let vkGetDeviceImageMemoryRequirements' = mkVkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirementsPtr   pInfo <- ContT $ withCStruct (info)   pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetDeviceImageMemoryRequirements" (vkGetDeviceImageMemoryRequirements' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  lift $ traceAroundEvent "vkGetDeviceImageMemoryRequirements" (vkGetDeviceImageMemoryRequirements'+                                                                  (deviceHandle (device))+                                                                  pInfo+                                                                  (forgetExtensions (pPMemoryRequirements)))   pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -223,11 +235,19 @@   let device' = deviceHandle (device)   pInfo <- ContT $ withCStruct (info)   pPSparseMemoryRequirementCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetDeviceImageSparseMemoryRequirements" (vkGetDeviceImageSparseMemoryRequirements' device' pInfo (pPSparseMemoryRequirementCount) (nullPtr))+  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)))+  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')
src/Vulkan/Core13/Promoted_From_VK_KHR_shader_integer_dot_product.hs view
@@ -434,7 +434,36 @@     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)+             (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
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -309,7 +309,10 @@     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)+  lift $ traceAroundEvent "vkCmdSetEvent2" (vkCmdSetEvent2'+                                              (commandBufferHandle (commandBuffer))+                                              (event)+                                              pDependencyInfo)   pure $ ()  @@ -494,7 +497,10 @@   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))+  traceAroundEvent "vkCmdResetEvent2" (vkCmdResetEvent2'+                                         (commandBufferHandle (commandBuffer))+                                         (event)+                                         (stageMask))   pure $ ()  @@ -523,7 +529,9 @@                               -- <https://registry.khronos.org/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+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@@ -535,7 +543,11 @@   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))+  lift $ traceAroundEvent "vkCmdWaitEvents2" (vkCmdWaitEvents2'+                                                (commandBufferHandle (commandBuffer))+                                                ((fromIntegral pEventsLength :: Word32))+                                                (pPEvents)+                                                (pPDependencyInfos))   pure $ ()  -- | vkCmdWaitEvents2 - Wait for one or more events@@ -897,7 +909,9 @@     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)+  lift $ traceAroundEvent "vkCmdPipelineBarrier2" (vkCmdPipelineBarrier2'+                                                     (commandBufferHandle (commandBuffer))+                                                     pDependencyInfo)   pure $ ()  @@ -1145,7 +1159,11 @@   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))+  r <- lift $ traceAroundEvent "vkQueueSubmit2" (vkQueueSubmit2'+                                                   (queueHandle (queue))+                                                   ((fromIntegral (Data.Vector.length $ (submits)) :: Word32))+                                                   (forgetExtensions (pPSubmits))+                                                   (fence))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -1374,7 +1392,11 @@   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))+  traceAroundEvent "vkCmdWriteTimestamp2" (vkCmdWriteTimestamp2'+                                             (commandBufferHandle (commandBuffer))+                                             (stage)+                                             (queryPool)+                                             (query))   pure $ ()  @@ -1527,13 +1549,14 @@ --     '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@+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-07454# 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',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@@@ -1751,6 +1774,32 @@ --     includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @srcStageMask@ --     /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ --+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-07455# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-07456# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-07457# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-srcAccessMask-07458# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- -- -   #VUID-VkMemoryBarrier2-dstStageMask-03929# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> --     feature is not enabled, @dstStageMask@ /must/ not contain@@ -1876,13 +1925,14 @@ --     '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@+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-07454# 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',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@@@ -2100,6 +2150,32 @@ --     includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @dstStageMask@ --     /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ --+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-07455# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-07456# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-07457# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   #VUID-VkMemoryBarrier2-dstAccessMask-07458# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkMemoryBarrier2-sType-sType# @sType@ /must/ be@@ -2405,13 +2481,14 @@ --     '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@+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-07454# 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',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@@@ -2629,6 +2706,32 @@ --     includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @srcStageMask@ --     /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ --+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-07455# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-07456# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-07457# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-srcAccessMask-07458# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- -- -   #VUID-VkImageMemoryBarrier2-dstStageMask-03929# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> --     feature is not enabled, @dstStageMask@ /must/ not contain@@ -2754,13 +2857,14 @@ --     '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@+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-07454# 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',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@@@ -2978,6 +3082,32 @@ --     includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @dstStageMask@ --     /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ --+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-07455# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-07456# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-07457# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   #VUID-VkImageMemoryBarrier2-dstAccessMask-07458# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- -- -   #VUID-VkImageMemoryBarrier2-subresourceRange-01486# --     @subresourceRange.baseMipLevel@ /must/ be less than the @mipLevels@ --     specified in 'Vulkan.Core10.Image.ImageCreateInfo' when @image@ was@@ -3403,7 +3533,8 @@     | Just Refl <- eqT @e @SampleLocationsInfoEXT = Just f     | otherwise = Nothing -instance (Extendss ImageMemoryBarrier2 es, PokeChain es) => ToCStruct (ImageMemoryBarrier2 es) where+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)@@ -3434,7 +3565,8 @@     lift $ poke ((p `plusPtr` 72 :: Ptr ImageSubresourceRange)) (zero)     lift $ f -instance (Extendss ImageMemoryBarrier2 es, PeekChain es) => FromCStruct (ImageMemoryBarrier2 es) where+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)@@ -3449,7 +3581,17 @@     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+             next+             srcStageMask+             srcAccessMask+             dstStageMask+             dstAccessMask+             oldLayout+             newLayout+             srcQueueFamilyIndex+             dstQueueFamilyIndex+             image+             subresourceRange  instance es ~ '[] => Zero (ImageMemoryBarrier2 es) where   zero = ImageMemoryBarrier2@@ -3650,13 +3792,14 @@ --     '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@+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-07454# 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',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-03909# If @srcAccessMask@@@ -3874,6 +4017,32 @@ --     includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @srcStageMask@ --     /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ --+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-07455# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-07456# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-07457# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-srcAccessMask-07458# If @srcAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT',+--     @srcStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- -- -   #VUID-VkBufferMemoryBarrier2-dstStageMask-03929# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-geometryShader geometryShader> --     feature is not enabled, @dstStageMask@ /must/ not contain@@ -3999,13 +4168,14 @@ --     '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@+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-07454# 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',+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT' --     or one of the @VK_PIPELINE_STAGE_*_SHADER_BIT@ stages -- -- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-03909# If @dstAccessMask@@@ -4223,6 +4393,32 @@ --     includes @VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR@, @dstStageMask@ --     /must/ include @VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR@ --+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-07455# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-07456# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-07457# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   #VUID-VkBufferMemoryBarrier2-dstAccessMask-07458# If @dstAccessMask@+--     includes+--     'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT',+--     @dstStageMask@ /must/ include+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--     or+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR'+-- -- -   #VUID-VkBufferMemoryBarrier2-offset-01187# @offset@ /must/ be less --     than the size of @buffer@ --@@ -4386,7 +4582,15 @@     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+             srcStageMask+             srcAccessMask+             dstStageMask+             dstAccessMask+             srcQueueFamilyIndex+             dstQueueFamilyIndex+             buffer+             offset+             size  instance Storable BufferMemoryBarrier2 where   sizeOf ~_ = 80@@ -4524,7 +4728,10 @@     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'+             dependencyFlags+             pMemoryBarriers'+             pBufferMemoryBarriers'+             pImageMemoryBarriers'  instance Zero DependencyInfo where   zero = DependencyInfo@@ -4937,7 +5144,8 @@     | Just Refl <- eqT @e @Win32KeyedMutexAcquireReleaseInfoNV = Just f     | otherwise = Nothing -instance (Extendss SubmitInfo2 es, PokeChain es) => ToCStruct (SubmitInfo2 es) where+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)@@ -4965,7 +5173,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss SubmitInfo2 es, PeekChain es) => FromCStruct (SubmitInfo2 es) where+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)@@ -4980,7 +5189,11 @@     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'+             next+             flags+             pWaitSemaphoreInfos'+             pCommandBufferInfos'+             pSignalSemaphoreInfos'  instance es ~ '[] => Zero (SubmitInfo2 es) where   zero = SubmitInfo2
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot view
@@ -44,10 +44,12 @@ type role ImageMemoryBarrier2 nominal data ImageMemoryBarrier2 (es :: [Type]) -instance (Extendss ImageMemoryBarrier2 es, PokeChain es) => ToCStruct (ImageMemoryBarrier2 es)+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)+instance ( Extendss ImageMemoryBarrier2 es+         , PeekChain es ) => FromCStruct (ImageMemoryBarrier2 es)   data MemoryBarrier2
src/Vulkan/Dynamic.hs view
@@ -73,6 +73,9 @@ import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearRect) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (CoarseSampleOrderCustomNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (CoarseSampleOrderTypeNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (ColorBlendAdvancedEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (ColorBlendEquationEXT)+import {-# SOURCE #-} Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferAllocateInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBuffer (CommandBufferBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Enums.CommandBufferResetFlagBits (CommandBufferResetFlags)@@ -84,6 +87,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.CompareOp (CompareOp) import {-# SOURCE #-} Vulkan.Core10.Pipeline (ComputePipelineCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conditional_rendering (ConditionalRenderingBeginInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT) 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 (CopyAccelerationStructureModeKHR)@@ -94,6 +98,11 @@ 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_EXT_opacity_micromap (CopyMemoryToMicromapInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (CopyMicromapToMemoryInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuFunctionCreateInfoNVX) import {-# SOURCE #-} Vulkan.Extensions.Handles (CuFunctionNVX) import {-# SOURCE #-} Vulkan.Extensions.VK_NVX_binary_import (CuLaunchInfoNVX)@@ -134,6 +143,8 @@ 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_EXT_device_fault (DeviceFaultCountsEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_fault (DeviceFaultInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentCapabilitiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (DeviceGroupPresentModeFlagsKHR) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements)@@ -228,6 +239,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_INTEL_performance_query (InitializePerformanceApiInfoINTEL) import {-# SOURCE #-} Vulkan.Core10.Handles (Instance_T) import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.LogicOp (LogicOp) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange)@@ -247,10 +259,21 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryWin32HandlePropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryZirconHandlePropertiesFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_metal_surface (MetalSurfaceCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapBuildInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapBuildSizesInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.Handles (MicromapEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (MicromapVersionInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawIndexedInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_multi_draw (MultiDrawInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (MultisamplePropertiesEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.ObjectType (ObjectType)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowExecuteInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowImageFormatPropertiesNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionBindingPointNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_optical_flow (OpticalFlowSessionCreateInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.Handles (OpticalFlowSessionNV) import {-# SOURCE #-} Vulkan.Core10.FuncPointers (PFN_vkVoidFunction) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (PastPresentationTimingGOOGLE) import {-# SOURCE #-} Vulkan.Core11.Enums.PeerMemoryFeatureFlagBits (PeerMemoryFeatureFlags)@@ -294,11 +317,13 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlagBits) import {-# SOURCE #-} Vulkan.Core10.Enums.PipelineStageFlagBits (PipelineStageFlags) import {-# SOURCE #-} Vulkan.Core13.Enums.PipelineStageFlags2 (PipelineStageFlags2)+import {-# SOURCE #-} Vulkan.Core10.Enums.PolygonMode (PolygonMode) 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.Core13.Handles (PrivateDataSlot) import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_private_data (PrivateDataSlotCreateInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT) import {-# SOURCE #-} Vulkan.Core10.Enums.QueryControlFlagBits (QueryControlFlags) import {-# SOURCE #-} Vulkan.Core10.Handles (QueryPool) import {-# SOURCE #-} Vulkan.Core10.Query (QueryPoolCreateInfo)@@ -323,6 +348,7 @@ import {-# SOURCE #-} Vulkan.Core10.Enums.Result (Result) import {-# SOURCE #-} Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)+import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (SampleMask) import {-# SOURCE #-} Vulkan.Core10.Handles (Sampler) import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Handles (SamplerYcbcrConversion)@@ -369,6 +395,7 @@ import {-# SOURCE #-} Vulkan.Extensions.Handles (SurfaceKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_swapchain (SwapchainCreateInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.Handles (SwapchainKHR)+import {-# SOURCE #-} Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_tile_properties (TilePropertiesQCOM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (TimeDomainEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT)@@ -377,6 +404,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN) import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_clip_space_w_scaling (ViewportWScalingNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_xlib_surface (VisualID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_wayland_surface (WaylandSurfaceCreateInfoKHR)@@ -466,7 +494,7 @@   , pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT :: FunPtr (Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainEXT) -> IO Result)   , pVkCreateDebugUtilsMessengerEXT :: FunPtr (Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMessenger" ::: Ptr DebugUtilsMessengerEXT) -> IO Result)   , pVkDestroyDebugUtilsMessengerEXT :: FunPtr (Ptr Instance_T -> DebugUtilsMessengerEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())-  , pVkSubmitDebugUtilsMessageEXT :: FunPtr (Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr DebugUtilsMessengerCallbackDataEXT) -> IO ())+  , pVkSubmitDebugUtilsMessageEXT :: FunPtr (Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> IO ())   , pVkGetPhysicalDeviceCooperativeMatrixPropertiesNV :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixPropertiesNV) -> IO Result)   , pVkGetPhysicalDeviceSurfacePresentModes2EXT :: FunPtr (Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pPresentModeCount" ::: Ptr Word32) -> ("pPresentModes" ::: Ptr PresentModeKHR) -> IO Result)   , pVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR :: FunPtr (Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("pCounterCount" ::: Ptr Word32) -> ("pCounters" ::: Ptr PerformanceCounterKHR) -> ("pCounterDescriptions" ::: Ptr PerformanceCounterDescriptionKHR) -> IO Result)@@ -477,23 +505,102 @@   , 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)+  , pVkGetPhysicalDeviceOpticalFlowImageFormatsNV :: FunPtr (Ptr PhysicalDevice_T -> ("pOpticalFlowImageFormatInfo" ::: Ptr OpticalFlowImageFormatInfoNV) -> ("pFormatCount" ::: Ptr Word32) -> ("pImageFormatProperties" ::: Ptr OpticalFlowImageFormatPropertiesNV) -> IO Result)   }  deriving instance Eq InstanceCmds deriving instance Show InstanceCmds instance Zero InstanceCmds where   zero = InstanceCmds-    nullPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr  -- | A version of 'getInstanceProcAddr' which can be called -- with a null pointer for the instance.@@ -557,23 +664,34 @@   vkDestroyDebugReportCallbackEXT <- getInstanceProcAddr' handle (Ptr "vkDestroyDebugReportCallbackEXT"#)   vkDebugReportMessageEXT <- getInstanceProcAddr' handle (Ptr "vkDebugReportMessageEXT"#)   vkGetPhysicalDeviceExternalImageFormatPropertiesNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"#)-  vkGetPhysicalDeviceFeatures2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceFeatures2KHR"#), (Ptr "vkGetPhysicalDeviceFeatures2"#)]-  vkGetPhysicalDeviceProperties2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceProperties2KHR"#), (Ptr "vkGetPhysicalDeviceProperties2"#)]-  vkGetPhysicalDeviceFormatProperties2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceFormatProperties2KHR"#), (Ptr "vkGetPhysicalDeviceFormatProperties2"#)]-  vkGetPhysicalDeviceImageFormatProperties2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceImageFormatProperties2KHR"#), (Ptr "vkGetPhysicalDeviceImageFormatProperties2"#)]-  vkGetPhysicalDeviceQueueFamilyProperties2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceQueueFamilyProperties2KHR"#), (Ptr "vkGetPhysicalDeviceQueueFamilyProperties2"#)]-  vkGetPhysicalDeviceMemoryProperties2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceMemoryProperties2KHR"#), (Ptr "vkGetPhysicalDeviceMemoryProperties2"#)]-  vkGetPhysicalDeviceSparseImageFormatProperties2 <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"#), (Ptr "vkGetPhysicalDeviceSparseImageFormatProperties2"#)]-  vkGetPhysicalDeviceExternalBufferProperties <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceExternalBufferPropertiesKHR"#), (Ptr "vkGetPhysicalDeviceExternalBufferProperties"#)]-  vkGetPhysicalDeviceExternalSemaphoreProperties <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"#), (Ptr "vkGetPhysicalDeviceExternalSemaphoreProperties"#)]-  vkGetPhysicalDeviceExternalFenceProperties <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceExternalFencePropertiesKHR"#), (Ptr "vkGetPhysicalDeviceExternalFenceProperties"#)]+  vkGetPhysicalDeviceFeatures2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceFeatures2KHR"#)+                                                           , (Ptr "vkGetPhysicalDeviceFeatures2"#) ]+  vkGetPhysicalDeviceProperties2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceProperties2KHR"#)+                                                             , (Ptr "vkGetPhysicalDeviceProperties2"#) ]+  vkGetPhysicalDeviceFormatProperties2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceFormatProperties2KHR"#)+                                                                   , (Ptr "vkGetPhysicalDeviceFormatProperties2"#) ]+  vkGetPhysicalDeviceImageFormatProperties2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceImageFormatProperties2KHR"#)+                                                                        , (Ptr "vkGetPhysicalDeviceImageFormatProperties2"#) ]+  vkGetPhysicalDeviceQueueFamilyProperties2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceQueueFamilyProperties2KHR"#)+                                                                        , (Ptr "vkGetPhysicalDeviceQueueFamilyProperties2"#) ]+  vkGetPhysicalDeviceMemoryProperties2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceMemoryProperties2KHR"#)+                                                                   , (Ptr "vkGetPhysicalDeviceMemoryProperties2"#) ]+  vkGetPhysicalDeviceSparseImageFormatProperties2 <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"#)+                                                                              , (Ptr "vkGetPhysicalDeviceSparseImageFormatProperties2"#) ]+  vkGetPhysicalDeviceExternalBufferProperties <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceExternalBufferPropertiesKHR"#)+                                                                          , (Ptr "vkGetPhysicalDeviceExternalBufferProperties"#) ]+  vkGetPhysicalDeviceExternalSemaphoreProperties <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"#)+                                                                             , (Ptr "vkGetPhysicalDeviceExternalSemaphoreProperties"#) ]+  vkGetPhysicalDeviceExternalFenceProperties <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceExternalFencePropertiesKHR"#)+                                                                         , (Ptr "vkGetPhysicalDeviceExternalFenceProperties"#) ]   vkReleaseDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkReleaseDisplayEXT"#)   vkAcquireXlibDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireXlibDisplayEXT"#)   vkGetRandROutputDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetRandROutputDisplayEXT"#)   vkAcquireWinrtDisplayNV <- getInstanceProcAddr' handle (Ptr "vkAcquireWinrtDisplayNV"#)   vkGetWinrtDisplayNV <- getInstanceProcAddr' handle (Ptr "vkGetWinrtDisplayNV"#)   vkGetPhysicalDeviceSurfaceCapabilities2EXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceSurfaceCapabilities2EXT"#)-  vkEnumeratePhysicalDeviceGroups <- getFirstInstanceProcAddr [(Ptr "vkEnumeratePhysicalDeviceGroupsKHR"#), (Ptr "vkEnumeratePhysicalDeviceGroups"#)]+  vkEnumeratePhysicalDeviceGroups <- getFirstInstanceProcAddr [ (Ptr "vkEnumeratePhysicalDeviceGroupsKHR"#)+                                                              , (Ptr "vkEnumeratePhysicalDeviceGroups"#) ]   vkGetPhysicalDevicePresentRectanglesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDevicePresentRectanglesKHR"#)   vkCreateIOSSurfaceMVK <- getInstanceProcAddr' handle (Ptr "vkCreateIOSSurfaceMVK"#)   vkCreateMacOSSurfaceMVK <- getInstanceProcAddr' handle (Ptr "vkCreateMacOSSurfaceMVK"#)@@ -595,10 +713,12 @@   vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"#)   vkCreateHeadlessSurfaceEXT <- getInstanceProcAddr' handle (Ptr "vkCreateHeadlessSurfaceEXT"#)   vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"#)-  vkGetPhysicalDeviceToolProperties <- getFirstInstanceProcAddr [(Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#), (Ptr "vkGetPhysicalDeviceToolProperties"#)]+  vkGetPhysicalDeviceToolProperties <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceToolPropertiesEXT"#)+                                                                , (Ptr "vkGetPhysicalDeviceToolProperties"#) ]   vkGetPhysicalDeviceFragmentShadingRatesKHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceFragmentShadingRatesKHR"#)   vkAcquireDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkAcquireDrmDisplayEXT"#)   vkGetDrmDisplayEXT <- getInstanceProcAddr' handle (Ptr "vkGetDrmDisplayEXT"#)+  vkGetPhysicalDeviceOpticalFlowImageFormatsNV <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceOpticalFlowImageFormatsNV"#)   pure $ InstanceCmds handle     (castFunPtr @_ @(Ptr Instance_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyInstance)     (castFunPtr @_ @(Ptr Instance_T -> ("pPhysicalDeviceCount" ::: Ptr Word32) -> ("pPhysicalDevices" ::: Ptr (Ptr PhysicalDevice_T)) -> IO Result) vkEnumeratePhysicalDevices)@@ -676,7 +796,7 @@     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainEXT) -> IO Result) vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)     (castFunPtr @_ @(Ptr Instance_T -> ("pCreateInfo" ::: Ptr DebugUtilsMessengerCreateInfoEXT) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMessenger" ::: Ptr DebugUtilsMessengerEXT) -> IO Result) vkCreateDebugUtilsMessengerEXT)     (castFunPtr @_ @(Ptr Instance_T -> DebugUtilsMessengerEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDebugUtilsMessengerEXT)-    (castFunPtr @_ @(Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr DebugUtilsMessengerCallbackDataEXT) -> IO ()) vkSubmitDebugUtilsMessageEXT)+    (castFunPtr @_ @(Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> IO ()) vkSubmitDebugUtilsMessageEXT)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr CooperativeMatrixPropertiesNV) -> IO Result) vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pSurfaceInfo" ::: Ptr (SomeStruct PhysicalDeviceSurfaceInfo2KHR)) -> ("pPresentModeCount" ::: Ptr Word32) -> ("pPresentModes" ::: Ptr PresentModeKHR) -> IO Result) vkGetPhysicalDeviceSurfacePresentModes2EXT)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("queueFamilyIndex" ::: Word32) -> ("pCounterCount" ::: Ptr Word32) -> ("pCounters" ::: Ptr PerformanceCounterKHR) -> ("pCounterDescriptions" ::: Ptr PerformanceCounterDescriptionKHR) -> IO Result) vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)@@ -687,6 +807,7 @@     (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)+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pOpticalFlowImageFormatInfo" ::: Ptr OpticalFlowImageFormatInfoNV) -> ("pFormatCount" ::: Ptr Word32) -> ("pImageFormatProperties" ::: Ptr OpticalFlowImageFormatPropertiesNV) -> IO Result) vkGetPhysicalDeviceOpticalFlowImageFormatsNV)  data DeviceCmds = DeviceCmds   { deviceCmdsHandle :: Ptr Device_T@@ -1016,6 +1137,37 @@   , pVkCmdSetLogicOpEXT :: FunPtr (Ptr CommandBuffer_T -> LogicOp -> 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)+  , pVkCmdSetTessellationDomainOriginEXT :: FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ())+  , pVkCmdSetDepthClampEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthClampEnable" ::: Bool32) -> IO ())+  , pVkCmdSetPolygonModeEXT :: FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ())+  , pVkCmdSetRasterizationSamplesEXT :: FunPtr (Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ())+  , pVkCmdSetSampleMaskEXT :: FunPtr (Ptr CommandBuffer_T -> ("samples" ::: SampleCountFlagBits) -> ("pSampleMask" ::: Ptr SampleMask) -> IO ())+  , pVkCmdSetAlphaToCoverageEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("alphaToCoverageEnable" ::: Bool32) -> IO ())+  , pVkCmdSetAlphaToOneEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("alphaToOneEnable" ::: Bool32) -> IO ())+  , pVkCmdSetLogicOpEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("logicOpEnable" ::: Bool32) -> IO ())+  , pVkCmdSetColorBlendEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorBlendEnables" ::: Ptr Bool32) -> IO ())+  , pVkCmdSetColorBlendEquationEXT :: FunPtr (Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorBlendEquations" ::: Ptr ColorBlendEquationEXT) -> IO ())+  , pVkCmdSetColorWriteMaskEXT :: FunPtr (Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorWriteMasks" ::: Ptr ColorComponentFlags) -> IO ())+  , pVkCmdSetRasterizationStreamEXT :: FunPtr (Ptr CommandBuffer_T -> ("rasterizationStream" ::: Word32) -> IO ())+  , pVkCmdSetConservativeRasterizationModeEXT :: FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ())+  , pVkCmdSetExtraPrimitiveOverestimationSizeEXT :: FunPtr (Ptr CommandBuffer_T -> ("extraPrimitiveOverestimationSize" ::: CFloat) -> IO ())+  , pVkCmdSetDepthClipEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("depthClipEnable" ::: Bool32) -> IO ())+  , pVkCmdSetSampleLocationsEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("sampleLocationsEnable" ::: Bool32) -> IO ())+  , pVkCmdSetColorBlendAdvancedEXT :: FunPtr (Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorBlendAdvanced" ::: Ptr ColorBlendAdvancedEXT) -> IO ())+  , pVkCmdSetProvokingVertexModeEXT :: FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ())+  , pVkCmdSetLineRasterizationModeEXT :: FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ())+  , pVkCmdSetLineStippleEnableEXT :: FunPtr (Ptr CommandBuffer_T -> ("stippledLineEnable" ::: Bool32) -> IO ())+  , pVkCmdSetDepthClipNegativeOneToOneEXT :: FunPtr (Ptr CommandBuffer_T -> ("negativeOneToOne" ::: Bool32) -> IO ())+  , pVkCmdSetViewportWScalingEnableNV :: FunPtr (Ptr CommandBuffer_T -> ("viewportWScalingEnable" ::: Bool32) -> IO ())+  , pVkCmdSetViewportSwizzleNV :: FunPtr (Ptr CommandBuffer_T -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewportSwizzles" ::: Ptr ViewportSwizzleNV) -> IO ())+  , pVkCmdSetCoverageToColorEnableNV :: FunPtr (Ptr CommandBuffer_T -> ("coverageToColorEnable" ::: Bool32) -> IO ())+  , pVkCmdSetCoverageToColorLocationNV :: FunPtr (Ptr CommandBuffer_T -> ("coverageToColorLocation" ::: Word32) -> IO ())+  , pVkCmdSetCoverageModulationModeNV :: FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ())+  , pVkCmdSetCoverageModulationTableEnableNV :: FunPtr (Ptr CommandBuffer_T -> ("coverageModulationTableEnable" ::: Bool32) -> IO ())+  , pVkCmdSetCoverageModulationTableNV :: FunPtr (Ptr CommandBuffer_T -> ("coverageModulationTableCount" ::: Word32) -> ("pCoverageModulationTable" ::: Ptr CFloat) -> IO ())+  , pVkCmdSetShadingRateImageEnableNV :: FunPtr (Ptr CommandBuffer_T -> ("shadingRateImageEnable" ::: Bool32) -> IO ())+  , pVkCmdSetCoverageReductionModeNV :: FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ())+  , pVkCmdSetRepresentativeFragmentTestEnableNV :: FunPtr (Ptr CommandBuffer_T -> ("representativeFragmentTestEnable" ::: Bool32) -> IO ())   , 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 ())@@ -1054,6 +1206,20 @@   , pVkCmdEndRendering :: FunPtr (Ptr CommandBuffer_T -> IO ())   , pVkGetDescriptorSetLayoutHostMappingInfoVALVE :: FunPtr (Ptr Device_T -> ("pBindingReference" ::: Ptr DescriptorSetBindingReferenceVALVE) -> ("pHostMapping" ::: Ptr DescriptorSetLayoutHostMappingInfoVALVE) -> IO ())   , pVkGetDescriptorSetHostMappingVALVE :: FunPtr (Ptr Device_T -> DescriptorSet -> ("ppData" ::: Ptr (Ptr ())) -> IO ())+  , pVkCreateMicromapEXT :: FunPtr (Ptr Device_T -> Ptr MicromapCreateInfoEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMicromap" ::: Ptr MicromapEXT) -> IO Result)+  , pVkCmdBuildMicromapsEXT :: FunPtr (Ptr CommandBuffer_T -> ("infoCount" ::: Word32) -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ())+  , pVkBuildMicromapsEXT :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> ("infoCount" ::: Word32) -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO Result)+  , pVkDestroyMicromapEXT :: FunPtr (Ptr Device_T -> MicromapEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkCmdCopyMicromapEXT :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ())+  , pVkCopyMicromapEXT :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result)+  , pVkCmdCopyMicromapToMemoryEXT :: FunPtr (Ptr CommandBuffer_T -> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ())+  , pVkCopyMicromapToMemoryEXT :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO Result)+  , pVkCmdCopyMemoryToMicromapEXT :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ())+  , pVkCopyMemoryToMicromapEXT :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMemoryToMicromapInfoEXT -> IO Result)+  , pVkCmdWriteMicromapsPropertiesEXT :: FunPtr (Ptr CommandBuffer_T -> ("micromapCount" ::: Word32) -> ("pMicromaps" ::: Ptr MicromapEXT) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> IO ())+  , pVkWriteMicromapsPropertiesEXT :: FunPtr (Ptr Device_T -> ("micromapCount" ::: Word32) -> ("pMicromaps" ::: Ptr MicromapEXT) -> QueryType -> ("dataSize" ::: CSize) -> ("pData" ::: Ptr ()) -> ("stride" ::: CSize) -> IO Result)+  , pVkGetDeviceMicromapCompatibilityEXT :: FunPtr (Ptr Device_T -> Ptr MicromapVersionInfoEXT -> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR) -> IO ())+  , pVkGetMicromapBuildSizesEXT :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO ())   , pVkGetShaderModuleIdentifierEXT :: FunPtr (Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ())   , pVkGetShaderModuleCreateInfoIdentifierEXT :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ())   , pVkGetImageSubresourceLayout2EXT :: FunPtr (Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ())@@ -1061,59 +1227,434 @@   , pVkExportMetalObjectsEXT :: FunPtr (Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ())   , pVkGetFramebufferTilePropertiesQCOM :: FunPtr (Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result)   , pVkGetDynamicRenderingTilePropertiesQCOM :: FunPtr (Ptr Device_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result)+  , pVkCreateOpticalFlowSessionNV :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSession" ::: Ptr OpticalFlowSessionNV) -> IO Result)+  , pVkDestroyOpticalFlowSessionNV :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ())+  , pVkBindOpticalFlowSessionImageNV :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result)+  , pVkCmdOpticalFlowExecuteNV :: FunPtr (Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ())+  , pVkGetDeviceFaultInfoEXT :: FunPtr (Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result)   }  deriving instance Eq DeviceCmds deriving instance Show DeviceCmds instance Zero DeviceCmds where   zero = DeviceCmds-    nullPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr-    nullFunPtr nullFunPtr nullFunPtr nullFunPtr+    nullPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr+    nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr  foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1168,7 +1709,8 @@   vkCreateQueryPool <- getDeviceProcAddr' handle (Ptr "vkCreateQueryPool"#)   vkDestroyQueryPool <- getDeviceProcAddr' handle (Ptr "vkDestroyQueryPool"#)   vkGetQueryPoolResults <- getDeviceProcAddr' handle (Ptr "vkGetQueryPoolResults"#)-  vkResetQueryPool <- getFirstDeviceProcAddr [(Ptr "vkResetQueryPoolEXT"#), (Ptr "vkResetQueryPool"#)]+  vkResetQueryPool <- getFirstDeviceProcAddr [ (Ptr "vkResetQueryPoolEXT"#)+                                             , (Ptr "vkResetQueryPool"#) ]   vkCreateBuffer <- getDeviceProcAddr' handle (Ptr "vkCreateBuffer"#)   vkDestroyBuffer <- getDeviceProcAddr' handle (Ptr "vkDestroyBuffer"#)   vkCreateBufferView <- getDeviceProcAddr' handle (Ptr "vkCreateBufferView"#)@@ -1281,7 +1823,8 @@   vkCreateIndirectCommandsLayoutNV <- getDeviceProcAddr' handle (Ptr "vkCreateIndirectCommandsLayoutNV"#)   vkDestroyIndirectCommandsLayoutNV <- getDeviceProcAddr' handle (Ptr "vkDestroyIndirectCommandsLayoutNV"#)   vkCmdPushDescriptorSetKHR <- getDeviceProcAddr' handle (Ptr "vkCmdPushDescriptorSetKHR"#)-  vkTrimCommandPool <- getFirstDeviceProcAddr [(Ptr "vkTrimCommandPoolKHR"#), (Ptr "vkTrimCommandPool"#)]+  vkTrimCommandPool <- getFirstDeviceProcAddr [ (Ptr "vkTrimCommandPoolKHR"#)+                                              , (Ptr "vkTrimCommandPool"#) ]   vkGetMemoryWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryWin32HandleKHR"#)   vkGetMemoryWin32HandlePropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryWin32HandlePropertiesKHR"#)   vkGetMemoryFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryFdKHR"#)@@ -1303,17 +1846,25 @@   vkRegisterDeviceEventEXT <- getDeviceProcAddr' handle (Ptr "vkRegisterDeviceEventEXT"#)   vkRegisterDisplayEventEXT <- getDeviceProcAddr' handle (Ptr "vkRegisterDisplayEventEXT"#)   vkGetSwapchainCounterEXT <- getDeviceProcAddr' handle (Ptr "vkGetSwapchainCounterEXT"#)-  vkGetDeviceGroupPeerMemoryFeatures <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceGroupPeerMemoryFeaturesKHR"#), (Ptr "vkGetDeviceGroupPeerMemoryFeatures"#)]-  vkBindBufferMemory2 <- getFirstDeviceProcAddr [(Ptr "vkBindBufferMemory2KHR"#), (Ptr "vkBindBufferMemory2"#)]-  vkBindImageMemory2 <- getFirstDeviceProcAddr [(Ptr "vkBindImageMemory2KHR"#), (Ptr "vkBindImageMemory2"#)]-  vkCmdSetDeviceMask <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDeviceMaskKHR"#), (Ptr "vkCmdSetDeviceMask"#)]+  vkGetDeviceGroupPeerMemoryFeatures <- getFirstDeviceProcAddr [ (Ptr "vkGetDeviceGroupPeerMemoryFeaturesKHR"#)+                                                               , (Ptr "vkGetDeviceGroupPeerMemoryFeatures"#) ]+  vkBindBufferMemory2 <- getFirstDeviceProcAddr [ (Ptr "vkBindBufferMemory2KHR"#)+                                                , (Ptr "vkBindBufferMemory2"#) ]+  vkBindImageMemory2 <- getFirstDeviceProcAddr [ (Ptr "vkBindImageMemory2KHR"#)+                                               , (Ptr "vkBindImageMemory2"#) ]+  vkCmdSetDeviceMask <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetDeviceMaskKHR"#)+                                               , (Ptr "vkCmdSetDeviceMask"#) ]   vkGetDeviceGroupPresentCapabilitiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceGroupPresentCapabilitiesKHR"#)   vkGetDeviceGroupSurfacePresentModesKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeviceGroupSurfacePresentModesKHR"#)   vkAcquireNextImage2KHR <- getDeviceProcAddr' handle (Ptr "vkAcquireNextImage2KHR"#)-  vkCmdDispatchBase <- getFirstDeviceProcAddr [(Ptr "vkCmdDispatchBaseKHR"#), (Ptr "vkCmdDispatchBase"#)]-  vkCreateDescriptorUpdateTemplate <- getFirstDeviceProcAddr [(Ptr "vkCreateDescriptorUpdateTemplateKHR"#), (Ptr "vkCreateDescriptorUpdateTemplate"#)]-  vkDestroyDescriptorUpdateTemplate <- getFirstDeviceProcAddr [(Ptr "vkDestroyDescriptorUpdateTemplateKHR"#), (Ptr "vkDestroyDescriptorUpdateTemplate"#)]-  vkUpdateDescriptorSetWithTemplate <- getFirstDeviceProcAddr [(Ptr "vkUpdateDescriptorSetWithTemplateKHR"#), (Ptr "vkUpdateDescriptorSetWithTemplate"#)]+  vkCmdDispatchBase <- getFirstDeviceProcAddr [ (Ptr "vkCmdDispatchBaseKHR"#)+                                              , (Ptr "vkCmdDispatchBase"#) ]+  vkCreateDescriptorUpdateTemplate <- getFirstDeviceProcAddr [ (Ptr "vkCreateDescriptorUpdateTemplateKHR"#)+                                                             , (Ptr "vkCreateDescriptorUpdateTemplate"#) ]+  vkDestroyDescriptorUpdateTemplate <- getFirstDeviceProcAddr [ (Ptr "vkDestroyDescriptorUpdateTemplateKHR"#)+                                                              , (Ptr "vkDestroyDescriptorUpdateTemplate"#) ]+  vkUpdateDescriptorSetWithTemplate <- getFirstDeviceProcAddr [ (Ptr "vkUpdateDescriptorSetWithTemplateKHR"#)+                                                              , (Ptr "vkUpdateDescriptorSetWithTemplate"#) ]   vkCmdPushDescriptorSetWithTemplateKHR <- getDeviceProcAddr' handle (Ptr "vkCmdPushDescriptorSetWithTemplateKHR"#)   vkSetHdrMetadataEXT <- getDeviceProcAddr' handle (Ptr "vkSetHdrMetadataEXT"#)   vkGetSwapchainStatusKHR <- getDeviceProcAddr' handle (Ptr "vkGetSwapchainStatusKHR"#)@@ -1322,20 +1873,29 @@   vkCmdSetViewportWScalingNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewportWScalingNV"#)   vkCmdSetDiscardRectangleEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDiscardRectangleEXT"#)   vkCmdSetSampleLocationsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetSampleLocationsEXT"#)-  vkGetBufferMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetBufferMemoryRequirements2KHR"#), (Ptr "vkGetBufferMemoryRequirements2"#)]-  vkGetImageMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetImageMemoryRequirements2KHR"#), (Ptr "vkGetImageMemoryRequirements2"#)]-  vkGetImageSparseMemoryRequirements2 <- getFirstDeviceProcAddr [(Ptr "vkGetImageSparseMemoryRequirements2KHR"#), (Ptr "vkGetImageSparseMemoryRequirements2"#)]-  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"#)]+  vkGetBufferMemoryRequirements2 <- getFirstDeviceProcAddr [ (Ptr "vkGetBufferMemoryRequirements2KHR"#)+                                                           , (Ptr "vkGetBufferMemoryRequirements2"#) ]+  vkGetImageMemoryRequirements2 <- getFirstDeviceProcAddr [ (Ptr "vkGetImageMemoryRequirements2KHR"#)+                                                          , (Ptr "vkGetImageMemoryRequirements2"#) ]+  vkGetImageSparseMemoryRequirements2 <- getFirstDeviceProcAddr [ (Ptr "vkGetImageSparseMemoryRequirements2KHR"#)+                                                                , (Ptr "vkGetImageSparseMemoryRequirements2"#) ]+  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"#)   vkCreateValidationCacheEXT <- getDeviceProcAddr' handle (Ptr "vkCreateValidationCacheEXT"#)   vkDestroyValidationCacheEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyValidationCacheEXT"#)   vkGetValidationCacheDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetValidationCacheDataEXT"#)   vkMergeValidationCachesEXT <- getDeviceProcAddr' handle (Ptr "vkMergeValidationCachesEXT"#)-  vkGetDescriptorSetLayoutSupport <- getFirstDeviceProcAddr [(Ptr "vkGetDescriptorSetLayoutSupportKHR"#), (Ptr "vkGetDescriptorSetLayoutSupport"#)]+  vkGetDescriptorSetLayoutSupport <- getFirstDeviceProcAddr [ (Ptr "vkGetDescriptorSetLayoutSupportKHR"#)+                                                            , (Ptr "vkGetDescriptorSetLayoutSupport"#) ]   vkGetShaderInfoAMD <- getDeviceProcAddr' handle (Ptr "vkGetShaderInfoAMD"#)   vkSetLocalDimmingAMD <- getDeviceProcAddr' handle (Ptr "vkSetLocalDimmingAMD"#)   vkGetCalibratedTimestampsEXT <- getDeviceProcAddr' handle (Ptr "vkGetCalibratedTimestampsEXT"#)@@ -1349,17 +1909,28 @@   vkCmdInsertDebugUtilsLabelEXT <- getDeviceProcAddr' handle (Ptr "vkCmdInsertDebugUtilsLabelEXT"#)   vkGetMemoryHostPointerPropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkGetMemoryHostPointerPropertiesEXT"#)   vkCmdWriteBufferMarkerAMD <- getDeviceProcAddr' handle (Ptr "vkCmdWriteBufferMarkerAMD"#)-  vkCreateRenderPass2 <- getFirstDeviceProcAddr [(Ptr "vkCreateRenderPass2KHR"#), (Ptr "vkCreateRenderPass2"#)]-  vkCmdBeginRenderPass2 <- getFirstDeviceProcAddr [(Ptr "vkCmdBeginRenderPass2KHR"#), (Ptr "vkCmdBeginRenderPass2"#)]-  vkCmdNextSubpass2 <- getFirstDeviceProcAddr [(Ptr "vkCmdNextSubpass2KHR"#), (Ptr "vkCmdNextSubpass2"#)]-  vkCmdEndRenderPass2 <- getFirstDeviceProcAddr [(Ptr "vkCmdEndRenderPass2KHR"#), (Ptr "vkCmdEndRenderPass2"#)]-  vkGetSemaphoreCounterValue <- getFirstDeviceProcAddr [(Ptr "vkGetSemaphoreCounterValueKHR"#), (Ptr "vkGetSemaphoreCounterValue"#)]-  vkWaitSemaphores <- getFirstDeviceProcAddr [(Ptr "vkWaitSemaphoresKHR"#), (Ptr "vkWaitSemaphores"#)]-  vkSignalSemaphore <- getFirstDeviceProcAddr [(Ptr "vkSignalSemaphoreKHR"#), (Ptr "vkSignalSemaphore"#)]+  vkCreateRenderPass2 <- getFirstDeviceProcAddr [ (Ptr "vkCreateRenderPass2KHR"#)+                                                , (Ptr "vkCreateRenderPass2"#) ]+  vkCmdBeginRenderPass2 <- getFirstDeviceProcAddr [ (Ptr "vkCmdBeginRenderPass2KHR"#)+                                                  , (Ptr "vkCmdBeginRenderPass2"#) ]+  vkCmdNextSubpass2 <- getFirstDeviceProcAddr [ (Ptr "vkCmdNextSubpass2KHR"#)+                                              , (Ptr "vkCmdNextSubpass2"#) ]+  vkCmdEndRenderPass2 <- getFirstDeviceProcAddr [ (Ptr "vkCmdEndRenderPass2KHR"#)+                                                , (Ptr "vkCmdEndRenderPass2"#) ]+  vkGetSemaphoreCounterValue <- getFirstDeviceProcAddr [ (Ptr "vkGetSemaphoreCounterValueKHR"#)+                                                       , (Ptr "vkGetSemaphoreCounterValue"#) ]+  vkWaitSemaphores <- getFirstDeviceProcAddr [ (Ptr "vkWaitSemaphoresKHR"#)+                                             , (Ptr "vkWaitSemaphores"#) ]+  vkSignalSemaphore <- getFirstDeviceProcAddr [ (Ptr "vkSignalSemaphoreKHR"#)+                                              , (Ptr "vkSignalSemaphore"#) ]   vkGetAndroidHardwareBufferPropertiesANDROID <- getDeviceProcAddr' handle (Ptr "vkGetAndroidHardwareBufferPropertiesANDROID"#)   vkGetMemoryAndroidHardwareBufferANDROID <- getDeviceProcAddr' handle (Ptr "vkGetMemoryAndroidHardwareBufferANDROID"#)-  vkCmdDrawIndirectCount <- getFirstDeviceProcAddr [(Ptr "vkCmdDrawIndirectCountAMD"#), (Ptr "vkCmdDrawIndirectCountKHR"#), (Ptr "vkCmdDrawIndirectCount"#)]-  vkCmdDrawIndexedIndirectCount <- getFirstDeviceProcAddr [(Ptr "vkCmdDrawIndexedIndirectCountAMD"#), (Ptr "vkCmdDrawIndexedIndirectCountKHR"#), (Ptr "vkCmdDrawIndexedIndirectCount"#)]+  vkCmdDrawIndirectCount <- getFirstDeviceProcAddr [ (Ptr "vkCmdDrawIndirectCountAMD"#)+                                                   , (Ptr "vkCmdDrawIndirectCountKHR"#)+                                                   , (Ptr "vkCmdDrawIndirectCount"#) ]+  vkCmdDrawIndexedIndirectCount <- getFirstDeviceProcAddr [ (Ptr "vkCmdDrawIndexedIndirectCountAMD"#)+                                                          , (Ptr "vkCmdDrawIndexedIndirectCountKHR"#)+                                                          , (Ptr "vkCmdDrawIndexedIndirectCount"#) ]   vkCmdSetCheckpointNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCheckpointNV"#)   vkGetQueueCheckpointDataNV <- getDeviceProcAddr' handle (Ptr "vkGetQueueCheckpointDataNV"#)   vkCmdBindTransformFeedbackBuffersEXT <- getDeviceProcAddr' handle (Ptr "vkCmdBindTransformFeedbackBuffersEXT"#)@@ -1398,7 +1969,8 @@   vkWriteAccelerationStructuresPropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkWriteAccelerationStructuresPropertiesKHR"#)   vkCmdTraceRaysKHR <- getDeviceProcAddr' handle (Ptr "vkCmdTraceRaysKHR"#)   vkCmdTraceRaysNV <- getDeviceProcAddr' handle (Ptr "vkCmdTraceRaysNV"#)-  vkGetRayTracingShaderGroupHandlesKHR <- getFirstDeviceProcAddr [(Ptr "vkGetRayTracingShaderGroupHandlesNV"#), (Ptr "vkGetRayTracingShaderGroupHandlesKHR"#)]+  vkGetRayTracingShaderGroupHandlesKHR <- getFirstDeviceProcAddr [ (Ptr "vkGetRayTracingShaderGroupHandlesNV"#)+                                                                 , (Ptr "vkGetRayTracingShaderGroupHandlesKHR"#) ]   vkGetRayTracingCaptureReplayShaderGroupHandlesKHR <- getDeviceProcAddr' handle (Ptr "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"#)   vkGetAccelerationStructureHandleNV <- getDeviceProcAddr' handle (Ptr "vkGetAccelerationStructureHandleNV"#)   vkCreateRayTracingPipelinesNV <- getDeviceProcAddr' handle (Ptr "vkCreateRayTracingPipelinesNV"#)@@ -1416,8 +1988,11 @@   vkAcquireProfilingLockKHR <- getDeviceProcAddr' handle (Ptr "vkAcquireProfilingLockKHR"#)   vkReleaseProfilingLockKHR <- getDeviceProcAddr' handle (Ptr "vkReleaseProfilingLockKHR"#)   vkGetImageDrmFormatModifierPropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkGetImageDrmFormatModifierPropertiesEXT"#)-  vkGetBufferOpaqueCaptureAddress <- getFirstDeviceProcAddr [(Ptr "vkGetBufferOpaqueCaptureAddressKHR"#), (Ptr "vkGetBufferOpaqueCaptureAddress"#)]-  vkGetBufferDeviceAddress <- getFirstDeviceProcAddr [(Ptr "vkGetBufferDeviceAddressEXT"#), (Ptr "vkGetBufferDeviceAddressKHR"#), (Ptr "vkGetBufferDeviceAddress"#)]+  vkGetBufferOpaqueCaptureAddress <- getFirstDeviceProcAddr [ (Ptr "vkGetBufferOpaqueCaptureAddressKHR"#)+                                                            , (Ptr "vkGetBufferOpaqueCaptureAddress"#) ]+  vkGetBufferDeviceAddress <- getFirstDeviceProcAddr [ (Ptr "vkGetBufferDeviceAddressEXT"#)+                                                     , (Ptr "vkGetBufferDeviceAddressKHR"#)+                                                     , (Ptr "vkGetBufferDeviceAddress"#) ]   vkInitializePerformanceApiINTEL <- getDeviceProcAddr' handle (Ptr "vkInitializePerformanceApiINTEL"#)   vkUninitializePerformanceApiINTEL <- getDeviceProcAddr' handle (Ptr "vkUninitializePerformanceApiINTEL"#)   vkCmdSetPerformanceMarkerINTEL <- getDeviceProcAddr' handle (Ptr "vkCmdSetPerformanceMarkerINTEL"#)@@ -1427,7 +2002,8 @@   vkReleasePerformanceConfigurationINTEL <- getDeviceProcAddr' handle (Ptr "vkReleasePerformanceConfigurationINTEL"#)   vkQueueSetPerformanceConfigurationINTEL <- getDeviceProcAddr' handle (Ptr "vkQueueSetPerformanceConfigurationINTEL"#)   vkGetPerformanceParameterINTEL <- getDeviceProcAddr' handle (Ptr "vkGetPerformanceParameterINTEL"#)-  vkGetDeviceMemoryOpaqueCaptureAddress <- getFirstDeviceProcAddr [(Ptr "vkGetDeviceMemoryOpaqueCaptureAddressKHR"#), (Ptr "vkGetDeviceMemoryOpaqueCaptureAddress"#)]+  vkGetDeviceMemoryOpaqueCaptureAddress <- getFirstDeviceProcAddr [ (Ptr "vkGetDeviceMemoryOpaqueCaptureAddressKHR"#)+                                                                  , (Ptr "vkGetDeviceMemoryOpaqueCaptureAddress"#) ]   vkGetPipelineExecutablePropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetPipelineExecutablePropertiesKHR"#)   vkGetPipelineExecutableStatisticsKHR <- getDeviceProcAddr' handle (Ptr "vkGetPipelineExecutableStatisticsKHR"#)   vkGetPipelineExecutableInternalRepresentationsKHR <- getDeviceProcAddr' handle (Ptr "vkGetPipelineExecutableInternalRepresentationsKHR"#)@@ -1442,44 +2018,106 @@   vkGetDeferredOperationMaxConcurrencyKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationMaxConcurrencyKHR"#)   vkGetDeferredOperationResultKHR <- getDeviceProcAddr' handle (Ptr "vkGetDeferredOperationResultKHR"#)   vkDeferredOperationJoinKHR <- getDeviceProcAddr' handle (Ptr "vkDeferredOperationJoinKHR"#)-  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"#)]+  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"#)-  vkCmdSetRasterizerDiscardEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetRasterizerDiscardEnableEXT"#), (Ptr "vkCmdSetRasterizerDiscardEnable"#)]-  vkCmdSetDepthBiasEnable <- getFirstDeviceProcAddr [(Ptr "vkCmdSetDepthBiasEnableEXT"#), (Ptr "vkCmdSetDepthBiasEnable"#)]+  vkCmdSetRasterizerDiscardEnable <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetRasterizerDiscardEnableEXT"#)+                                                            , (Ptr "vkCmdSetRasterizerDiscardEnable"#) ]+  vkCmdSetDepthBiasEnable <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetDepthBiasEnableEXT"#)+                                                    , (Ptr "vkCmdSetDepthBiasEnable"#) ]   vkCmdSetLogicOpEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLogicOpEXT"#)-  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"#)]+  vkCmdSetPrimitiveRestartEnable <- getFirstDeviceProcAddr [ (Ptr "vkCmdSetPrimitiveRestartEnableEXT"#)+                                                           , (Ptr "vkCmdSetPrimitiveRestartEnable"#) ]+  vkCreatePrivateDataSlot <- getFirstDeviceProcAddr [ (Ptr "vkCreatePrivateDataSlotEXT"#)+                                                    , (Ptr "vkCreatePrivateDataSlot"#) ]+  vkCmdSetTessellationDomainOriginEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetTessellationDomainOriginEXT"#)+  vkCmdSetDepthClampEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthClampEnableEXT"#)+  vkCmdSetPolygonModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetPolygonModeEXT"#)+  vkCmdSetRasterizationSamplesEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetRasterizationSamplesEXT"#)+  vkCmdSetSampleMaskEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetSampleMaskEXT"#)+  vkCmdSetAlphaToCoverageEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetAlphaToCoverageEnableEXT"#)+  vkCmdSetAlphaToOneEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetAlphaToOneEnableEXT"#)+  vkCmdSetLogicOpEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLogicOpEnableEXT"#)+  vkCmdSetColorBlendEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorBlendEnableEXT"#)+  vkCmdSetColorBlendEquationEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorBlendEquationEXT"#)+  vkCmdSetColorWriteMaskEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorWriteMaskEXT"#)+  vkCmdSetRasterizationStreamEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetRasterizationStreamEXT"#)+  vkCmdSetConservativeRasterizationModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetConservativeRasterizationModeEXT"#)+  vkCmdSetExtraPrimitiveOverestimationSizeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetExtraPrimitiveOverestimationSizeEXT"#)+  vkCmdSetDepthClipEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthClipEnableEXT"#)+  vkCmdSetSampleLocationsEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetSampleLocationsEnableEXT"#)+  vkCmdSetColorBlendAdvancedEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetColorBlendAdvancedEXT"#)+  vkCmdSetProvokingVertexModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetProvokingVertexModeEXT"#)+  vkCmdSetLineRasterizationModeEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLineRasterizationModeEXT"#)+  vkCmdSetLineStippleEnableEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetLineStippleEnableEXT"#)+  vkCmdSetDepthClipNegativeOneToOneEXT <- getDeviceProcAddr' handle (Ptr "vkCmdSetDepthClipNegativeOneToOneEXT"#)+  vkCmdSetViewportWScalingEnableNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewportWScalingEnableNV"#)+  vkCmdSetViewportSwizzleNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetViewportSwizzleNV"#)+  vkCmdSetCoverageToColorEnableNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCoverageToColorEnableNV"#)+  vkCmdSetCoverageToColorLocationNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCoverageToColorLocationNV"#)+  vkCmdSetCoverageModulationModeNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCoverageModulationModeNV"#)+  vkCmdSetCoverageModulationTableEnableNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCoverageModulationTableEnableNV"#)+  vkCmdSetCoverageModulationTableNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCoverageModulationTableNV"#)+  vkCmdSetShadingRateImageEnableNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetShadingRateImageEnableNV"#)+  vkCmdSetCoverageReductionModeNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetCoverageReductionModeNV"#)+  vkCmdSetRepresentativeFragmentTestEnableNV <- getDeviceProcAddr' handle (Ptr "vkCmdSetRepresentativeFragmentTestEnableNV"#)+  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"#)-  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"#)]+  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"#)@@ -1494,10 +2132,26 @@   vkSetBufferCollectionImageConstraintsFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkSetBufferCollectionImageConstraintsFUCHSIA"#)   vkDestroyBufferCollectionFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkDestroyBufferCollectionFUCHSIA"#)   vkGetBufferCollectionPropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetBufferCollectionPropertiesFUCHSIA"#)-  vkCmdBeginRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdBeginRenderingKHR"#), (Ptr "vkCmdBeginRendering"#)]-  vkCmdEndRendering <- getFirstDeviceProcAddr [(Ptr "vkCmdEndRenderingKHR"#), (Ptr "vkCmdEndRendering"#)]+  vkCmdBeginRendering <- getFirstDeviceProcAddr [ (Ptr "vkCmdBeginRenderingKHR"#)+                                                , (Ptr "vkCmdBeginRendering"#) ]+  vkCmdEndRendering <- getFirstDeviceProcAddr [ (Ptr "vkCmdEndRenderingKHR"#)+                                              , (Ptr "vkCmdEndRendering"#) ]   vkGetDescriptorSetLayoutHostMappingInfoVALVE <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorSetLayoutHostMappingInfoVALVE"#)   vkGetDescriptorSetHostMappingVALVE <- getDeviceProcAddr' handle (Ptr "vkGetDescriptorSetHostMappingVALVE"#)+  vkCreateMicromapEXT <- getDeviceProcAddr' handle (Ptr "vkCreateMicromapEXT"#)+  vkCmdBuildMicromapsEXT <- getDeviceProcAddr' handle (Ptr "vkCmdBuildMicromapsEXT"#)+  vkBuildMicromapsEXT <- getDeviceProcAddr' handle (Ptr "vkBuildMicromapsEXT"#)+  vkDestroyMicromapEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyMicromapEXT"#)+  vkCmdCopyMicromapEXT <- getDeviceProcAddr' handle (Ptr "vkCmdCopyMicromapEXT"#)+  vkCopyMicromapEXT <- getDeviceProcAddr' handle (Ptr "vkCopyMicromapEXT"#)+  vkCmdCopyMicromapToMemoryEXT <- getDeviceProcAddr' handle (Ptr "vkCmdCopyMicromapToMemoryEXT"#)+  vkCopyMicromapToMemoryEXT <- getDeviceProcAddr' handle (Ptr "vkCopyMicromapToMemoryEXT"#)+  vkCmdCopyMemoryToMicromapEXT <- getDeviceProcAddr' handle (Ptr "vkCmdCopyMemoryToMicromapEXT"#)+  vkCopyMemoryToMicromapEXT <- getDeviceProcAddr' handle (Ptr "vkCopyMemoryToMicromapEXT"#)+  vkCmdWriteMicromapsPropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkCmdWriteMicromapsPropertiesEXT"#)+  vkWriteMicromapsPropertiesEXT <- getDeviceProcAddr' handle (Ptr "vkWriteMicromapsPropertiesEXT"#)+  vkGetDeviceMicromapCompatibilityEXT <- getDeviceProcAddr' handle (Ptr "vkGetDeviceMicromapCompatibilityEXT"#)+  vkGetMicromapBuildSizesEXT <- getDeviceProcAddr' handle (Ptr "vkGetMicromapBuildSizesEXT"#)   vkGetShaderModuleIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleIdentifierEXT"#)   vkGetShaderModuleCreateInfoIdentifierEXT <- getDeviceProcAddr' handle (Ptr "vkGetShaderModuleCreateInfoIdentifierEXT"#)   vkGetImageSubresourceLayout2EXT <- getDeviceProcAddr' handle (Ptr "vkGetImageSubresourceLayout2EXT"#)@@ -1505,6 +2159,11 @@   vkExportMetalObjectsEXT <- getDeviceProcAddr' handle (Ptr "vkExportMetalObjectsEXT"#)   vkGetFramebufferTilePropertiesQCOM <- getDeviceProcAddr' handle (Ptr "vkGetFramebufferTilePropertiesQCOM"#)   vkGetDynamicRenderingTilePropertiesQCOM <- getDeviceProcAddr' handle (Ptr "vkGetDynamicRenderingTilePropertiesQCOM"#)+  vkCreateOpticalFlowSessionNV <- getDeviceProcAddr' handle (Ptr "vkCreateOpticalFlowSessionNV"#)+  vkDestroyOpticalFlowSessionNV <- getDeviceProcAddr' handle (Ptr "vkDestroyOpticalFlowSessionNV"#)+  vkBindOpticalFlowSessionImageNV <- getDeviceProcAddr' handle (Ptr "vkBindOpticalFlowSessionImageNV"#)+  vkCmdOpticalFlowExecuteNV <- getDeviceProcAddr' handle (Ptr "vkCmdOpticalFlowExecuteNV"#)+  vkGetDeviceFaultInfoEXT <- getDeviceProcAddr' handle (Ptr "vkGetDeviceFaultInfoEXT"#)   pure $ DeviceCmds handle     (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr)     (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1832,6 +2491,37 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> LogicOp -> IO ()) vkCmdSetLogicOpEXT)     (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 CommandBuffer_T -> TessellationDomainOrigin -> IO ()) vkCmdSetTessellationDomainOriginEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthClampEnable" ::: Bool32) -> IO ()) vkCmdSetDepthClampEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> PolygonMode -> IO ()) vkCmdSetPolygonModeEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizationSamples" ::: SampleCountFlagBits) -> IO ()) vkCmdSetRasterizationSamplesEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("samples" ::: SampleCountFlagBits) -> ("pSampleMask" ::: Ptr SampleMask) -> IO ()) vkCmdSetSampleMaskEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("alphaToCoverageEnable" ::: Bool32) -> IO ()) vkCmdSetAlphaToCoverageEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("alphaToOneEnable" ::: Bool32) -> IO ()) vkCmdSetAlphaToOneEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("logicOpEnable" ::: Bool32) -> IO ()) vkCmdSetLogicOpEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorBlendEnables" ::: Ptr Bool32) -> IO ()) vkCmdSetColorBlendEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorBlendEquations" ::: Ptr ColorBlendEquationEXT) -> IO ()) vkCmdSetColorBlendEquationEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorWriteMasks" ::: Ptr ColorComponentFlags) -> IO ()) vkCmdSetColorWriteMaskEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("rasterizationStream" ::: Word32) -> IO ()) vkCmdSetRasterizationStreamEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) vkCmdSetConservativeRasterizationModeEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("extraPrimitiveOverestimationSize" ::: CFloat) -> IO ()) vkCmdSetExtraPrimitiveOverestimationSizeEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("depthClipEnable" ::: Bool32) -> IO ()) vkCmdSetDepthClipEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("sampleLocationsEnable" ::: Bool32) -> IO ()) vkCmdSetSampleLocationsEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstAttachment" ::: Word32) -> ("attachmentCount" ::: Word32) -> ("pColorBlendAdvanced" ::: Ptr ColorBlendAdvancedEXT) -> IO ()) vkCmdSetColorBlendAdvancedEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) vkCmdSetProvokingVertexModeEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) vkCmdSetLineRasterizationModeEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("stippledLineEnable" ::: Bool32) -> IO ()) vkCmdSetLineStippleEnableEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("negativeOneToOne" ::: Bool32) -> IO ()) vkCmdSetDepthClipNegativeOneToOneEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("viewportWScalingEnable" ::: Bool32) -> IO ()) vkCmdSetViewportWScalingEnableNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("firstViewport" ::: Word32) -> ("viewportCount" ::: Word32) -> ("pViewportSwizzles" ::: Ptr ViewportSwizzleNV) -> IO ()) vkCmdSetViewportSwizzleNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("coverageToColorEnable" ::: Bool32) -> IO ()) vkCmdSetCoverageToColorEnableNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("coverageToColorLocation" ::: Word32) -> IO ()) vkCmdSetCoverageToColorLocationNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) vkCmdSetCoverageModulationModeNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("coverageModulationTableEnable" ::: Bool32) -> IO ()) vkCmdSetCoverageModulationTableEnableNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("coverageModulationTableCount" ::: Word32) -> ("pCoverageModulationTable" ::: Ptr CFloat) -> IO ()) vkCmdSetCoverageModulationTableNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("shadingRateImageEnable" ::: Bool32) -> IO ()) vkCmdSetShadingRateImageEnableNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) vkCmdSetCoverageReductionModeNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("representativeFragmentTestEnable" ::: Bool32) -> IO ()) vkCmdSetRepresentativeFragmentTestEnableNV)     (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)@@ -1870,6 +2560,20 @@     (castFunPtr @_ @(Ptr CommandBuffer_T -> IO ()) vkCmdEndRendering)     (castFunPtr @_ @(Ptr Device_T -> ("pBindingReference" ::: Ptr DescriptorSetBindingReferenceVALVE) -> ("pHostMapping" ::: Ptr DescriptorSetLayoutHostMappingInfoVALVE) -> IO ()) vkGetDescriptorSetLayoutHostMappingInfoVALVE)     (castFunPtr @_ @(Ptr Device_T -> DescriptorSet -> ("ppData" ::: Ptr (Ptr ())) -> IO ()) vkGetDescriptorSetHostMappingVALVE)+    (castFunPtr @_ @(Ptr Device_T -> Ptr MicromapCreateInfoEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pMicromap" ::: Ptr MicromapEXT) -> IO Result) vkCreateMicromapEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("infoCount" ::: Word32) -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO ()) vkCmdBuildMicromapsEXT)+    (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> ("infoCount" ::: Word32) -> ("pInfos" ::: Ptr MicromapBuildInfoEXT) -> IO Result) vkBuildMicromapsEXT)+    (castFunPtr @_ @(Ptr Device_T -> MicromapEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyMicromapEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()) vkCmdCopyMicromapEXT)+    (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result) vkCopyMicromapEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO ()) vkCmdCopyMicromapToMemoryEXT)+    (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> ("pInfo" ::: Ptr CopyMicromapToMemoryInfoEXT) -> IO Result) vkCopyMicromapToMemoryEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()) vkCmdCopyMemoryToMicromapEXT)+    (castFunPtr @_ @(Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMemoryToMicromapInfoEXT -> IO Result) vkCopyMemoryToMicromapEXT)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> ("micromapCount" ::: Word32) -> ("pMicromaps" ::: Ptr MicromapEXT) -> QueryType -> QueryPool -> ("firstQuery" ::: Word32) -> IO ()) vkCmdWriteMicromapsPropertiesEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("micromapCount" ::: Word32) -> ("pMicromaps" ::: Ptr MicromapEXT) -> QueryType -> ("dataSize" ::: CSize) -> ("pData" ::: Ptr ()) -> ("stride" ::: CSize) -> IO Result) vkWriteMicromapsPropertiesEXT)+    (castFunPtr @_ @(Ptr Device_T -> Ptr MicromapVersionInfoEXT -> ("pCompatibility" ::: Ptr AccelerationStructureCompatibilityKHR) -> IO ()) vkGetDeviceMicromapCompatibilityEXT)+    (castFunPtr @_ @(Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> ("pSizeInfo" ::: Ptr MicromapBuildSizesInfoEXT) -> IO ()) vkGetMicromapBuildSizesEXT)     (castFunPtr @_ @(Ptr Device_T -> ShaderModule -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleIdentifierEXT)     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct ShaderModuleCreateInfo)) -> ("pIdentifier" ::: Ptr ShaderModuleIdentifierEXT) -> IO ()) vkGetShaderModuleCreateInfoIdentifierEXT)     (castFunPtr @_ @(Ptr Device_T -> Image -> ("pSubresource" ::: Ptr ImageSubresource2EXT) -> ("pLayout" ::: Ptr (SomeStruct SubresourceLayout2EXT)) -> IO ()) vkGetImageSubresourceLayout2EXT)@@ -1877,4 +2581,9 @@     (castFunPtr @_ @(Ptr Device_T -> ("pMetalObjectsInfo" ::: Ptr (SomeStruct ExportMetalObjectsInfoEXT)) -> IO ()) vkExportMetalObjectsEXT)     (castFunPtr @_ @(Ptr Device_T -> Framebuffer -> ("pPropertiesCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) vkGetFramebufferTilePropertiesQCOM)     (castFunPtr @_ @(Ptr Device_T -> ("pRenderingInfo" ::: Ptr (SomeStruct RenderingInfo)) -> ("pProperties" ::: Ptr TilePropertiesQCOM) -> IO Result) vkGetDynamicRenderingTilePropertiesQCOM)+    (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct OpticalFlowSessionCreateInfoNV)) -> ("pAllocator" ::: Ptr AllocationCallbacks) -> ("pSession" ::: Ptr OpticalFlowSessionNV) -> IO Result) vkCreateOpticalFlowSessionNV)+    (castFunPtr @_ @(Ptr Device_T -> OpticalFlowSessionNV -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyOpticalFlowSessionNV)+    (castFunPtr @_ @(Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) vkBindOpticalFlowSessionImageNV)+    (castFunPtr @_ @(Ptr CommandBuffer_T -> OpticalFlowSessionNV -> ("pExecuteInfo" ::: Ptr OpticalFlowExecuteInfoNV) -> IO ()) vkCmdOpticalFlowExecuteNV)+    (castFunPtr @_ @(Ptr Device_T -> ("pFaultCounts" ::: Ptr DeviceFaultCountsEXT) -> ("pFaultInfo" ::: Ptr DeviceFaultInfoEXT) -> IO Result) vkGetDeviceFaultInfoEXT) 
src/Vulkan/Extensions.hs view
@@ -47,6 +47,8 @@                           , module Vulkan.Extensions.VK_EXT_depth_clip_enable                           , module Vulkan.Extensions.VK_EXT_depth_range_unrestricted                           , module Vulkan.Extensions.VK_EXT_descriptor_indexing+                          , module Vulkan.Extensions.VK_EXT_device_address_binding_report+                          , module Vulkan.Extensions.VK_EXT_device_fault                           , module Vulkan.Extensions.VK_EXT_device_memory_report                           , module Vulkan.Extensions.VK_EXT_direct_mode_display                           , module Vulkan.Extensions.VK_EXT_directfb_surface@@ -55,6 +57,7 @@                           , module Vulkan.Extensions.VK_EXT_display_surface_counter                           , module Vulkan.Extensions.VK_EXT_extended_dynamic_state                           , module Vulkan.Extensions.VK_EXT_extended_dynamic_state2+                          , module Vulkan.Extensions.VK_EXT_extended_dynamic_state3                           , module Vulkan.Extensions.VK_EXT_external_memory_dma_buf                           , module Vulkan.Extensions.VK_EXT_external_memory_host                           , module Vulkan.Extensions.VK_EXT_filter_cubic@@ -88,12 +91,14 @@                           , module Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled                           , module Vulkan.Extensions.VK_EXT_mutable_descriptor_type                           , module Vulkan.Extensions.VK_EXT_non_seamless_cube_map+                          , module Vulkan.Extensions.VK_EXT_opacity_micromap                           , module Vulkan.Extensions.VK_EXT_pageable_device_local_memory                           , module Vulkan.Extensions.VK_EXT_pci_bus_info                           , module Vulkan.Extensions.VK_EXT_physical_device_drm                           , module Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control                           , module Vulkan.Extensions.VK_EXT_pipeline_creation_feedback                           , module Vulkan.Extensions.VK_EXT_pipeline_properties+                          , module Vulkan.Extensions.VK_EXT_pipeline_protected_access                           , module Vulkan.Extensions.VK_EXT_pipeline_robustness                           , module Vulkan.Extensions.VK_EXT_post_depth_coverage                           , module Vulkan.Extensions.VK_EXT_primitive_topology_list_restart@@ -270,6 +275,8 @@                           , module Vulkan.Extensions.VK_NV_inherited_viewport_scissor                           , module Vulkan.Extensions.VK_NV_linear_color_attachment                           , module Vulkan.Extensions.VK_NV_mesh_shader+                          , module Vulkan.Extensions.VK_NV_optical_flow+                          , module Vulkan.Extensions.VK_NV_present_barrier                           , module Vulkan.Extensions.VK_NV_ray_tracing                           , module Vulkan.Extensions.VK_NV_ray_tracing_motion_blur                           , module Vulkan.Extensions.VK_NV_representative_fragment_test@@ -341,6 +348,8 @@ import Vulkan.Extensions.VK_EXT_depth_clip_enable import Vulkan.Extensions.VK_EXT_depth_range_unrestricted import Vulkan.Extensions.VK_EXT_descriptor_indexing+import Vulkan.Extensions.VK_EXT_device_address_binding_report+import Vulkan.Extensions.VK_EXT_device_fault import Vulkan.Extensions.VK_EXT_device_memory_report import Vulkan.Extensions.VK_EXT_direct_mode_display import Vulkan.Extensions.VK_EXT_directfb_surface@@ -349,6 +358,7 @@ import Vulkan.Extensions.VK_EXT_display_surface_counter import Vulkan.Extensions.VK_EXT_extended_dynamic_state import Vulkan.Extensions.VK_EXT_extended_dynamic_state2+import Vulkan.Extensions.VK_EXT_extended_dynamic_state3 import Vulkan.Extensions.VK_EXT_external_memory_dma_buf import Vulkan.Extensions.VK_EXT_external_memory_host import Vulkan.Extensions.VK_EXT_filter_cubic@@ -382,12 +392,14 @@ import Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled import Vulkan.Extensions.VK_EXT_mutable_descriptor_type import Vulkan.Extensions.VK_EXT_non_seamless_cube_map+import Vulkan.Extensions.VK_EXT_opacity_micromap import Vulkan.Extensions.VK_EXT_pageable_device_local_memory import Vulkan.Extensions.VK_EXT_pci_bus_info import Vulkan.Extensions.VK_EXT_physical_device_drm import Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control import Vulkan.Extensions.VK_EXT_pipeline_creation_feedback import Vulkan.Extensions.VK_EXT_pipeline_properties+import Vulkan.Extensions.VK_EXT_pipeline_protected_access import Vulkan.Extensions.VK_EXT_pipeline_robustness import Vulkan.Extensions.VK_EXT_post_depth_coverage import Vulkan.Extensions.VK_EXT_primitive_topology_list_restart@@ -564,6 +576,8 @@ import Vulkan.Extensions.VK_NV_inherited_viewport_scissor import Vulkan.Extensions.VK_NV_linear_color_attachment import Vulkan.Extensions.VK_NV_mesh_shader+import Vulkan.Extensions.VK_NV_optical_flow+import Vulkan.Extensions.VK_NV_present_barrier import Vulkan.Extensions.VK_NV_ray_tracing import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur import Vulkan.Extensions.VK_NV_representative_fragment_test
src/Vulkan/Extensions/Dependencies.hs view
@@ -28,8 +28,11 @@ import Vulkan.Extensions.VK_EXT_custom_border_color (pattern EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_marker (pattern EXT_DEBUG_MARKER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_debug_report (pattern EXT_DEBUG_REPORT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_debug_utils (pattern EXT_DEBUG_UTILS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_depth_clip_control (pattern EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_descriptor_indexing (pattern EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_device_address_binding_report (pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_device_fault (pattern EXT_DEVICE_FAULT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_device_memory_report (pattern EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_directfb_surface (pattern EXT_DIRECTFB_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_direct_mode_display (pattern EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME)@@ -37,6 +40,7 @@ import Vulkan.Extensions.VK_EXT_display_control (pattern EXT_DISPLAY_CONTROL_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_display_surface_counter (pattern EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (pattern EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_extended_dynamic_state3 (pattern EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_extended_dynamic_state (pattern EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_external_memory_dma_buf (pattern EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_external_memory_host (pattern EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME)@@ -65,11 +69,13 @@ import Vulkan.Extensions.VK_EXT_metal_surface (pattern EXT_METAL_SURFACE_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled (pattern EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_mutable_descriptor_type (pattern EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_opacity_micromap (pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pageable_device_local_memory (pattern EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pci_bus_info (pattern EXT_PCI_BUS_INFO_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_physical_device_drm (pattern EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (pattern EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pipeline_properties (pattern EXT_PIPELINE_PROPERTIES_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_pipeline_protected_access (pattern EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_pipeline_robustness (pattern EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_primitives_generated_query (pattern EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_provoking_vertex (pattern EXT_PROVOKING_VERTEX_EXTENSION_NAME)@@ -208,6 +214,8 @@ import Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (pattern NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (pattern NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_mesh_shader (pattern NV_MESH_SHADER_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_optical_flow (pattern NV_OPTICAL_FLOW_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_present_barrier (pattern NV_PRESENT_BARRIER_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_ray_tracing (pattern NV_RAY_TRACING_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (pattern NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_scissor_exclusive (pattern NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME)@@ -228,16 +236,19 @@ extensionDependencies :: ("extensionName" ::: ByteString) -> [ByteString] extensionDependencies = \case   KHR_SWAPCHAIN_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_DISPLAY_EXTENSION_NAME   -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_DISPLAY_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME ->-    [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  KHR_XLIB_SURFACE_EXTENSION_NAME            -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_XCB_SURFACE_EXTENSION_NAME             -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_WAYLAND_SURFACE_EXTENSION_NAME         -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_ANDROID_SURFACE_EXTENSION_NAME         -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_WIN32_SURFACE_EXTENSION_NAME           -> [KHR_SURFACE_EXTENSION_NAME]-  EXT_DEBUG_MARKER_EXTENSION_NAME            -> [EXT_DEBUG_REPORT_EXTENSION_NAME]-  EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  KHR_XLIB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_XCB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_WAYLAND_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_ANDROID_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_WIN32_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  EXT_DEBUG_MARKER_EXTENSION_NAME -> [EXT_DEBUG_REPORT_EXTENSION_NAME]+  EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_DYNAMIC_RENDERING_EXTENSION_NAME ->     [ KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME@@ -247,24 +258,28 @@     , KHR_MAINTENANCE_2_EXTENSION_NAME     ]   GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]-  NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME       -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_MULTIVIEW_EXTENSION_NAME                 -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_EXTERNAL_MEMORY_EXTENSION_NAME            -> [NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME]+  NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_MULTIVIEW_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_EXTERNAL_MEMORY_EXTENSION_NAME -> [NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME]   NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME ->-    [NV_EXTERNAL_MEMORY_EXTENSION_NAME, NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME]+    [ NV_EXTERNAL_MEMORY_EXTENSION_NAME+    , NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME+    ]   NV_WIN32_KEYED_MUTEX_EXTENSION_NAME ->     [ NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME     , NV_EXTERNAL_MEMORY_EXTENSION_NAME     , NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME     ]-  KHR_DEVICE_GROUP_EXTENSION_NAME                 -> [KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME]-  NN_VI_SURFACE_EXTENSION_NAME                    -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_DEVICE_GROUP_EXTENSION_NAME -> [KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME]+  NN_VI_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_ASTC_DECODE_MODE_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME          -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_ASTC_DECODE_MODE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_EXTERNAL_MEMORY_EXTENSION_NAME ->-    [KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME ->     [ KHR_EXTERNAL_MEMORY_EXTENSION_NAME     , KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME@@ -283,7 +298,9 @@     ]   KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME ->-    [KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME ->     [ KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME     , KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME@@ -294,29 +311,54 @@     , KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]-  KHR_PUSH_DESCRIPTOR_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_PUSH_DESCRIPTOR_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_16BIT_STORAGE_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME]-  KHR_INCREMENTAL_PRESENT_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME -> [KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+    ]+  KHR_INCREMENTAL_PRESENT_EXTENSION_NAME ->+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME ->+    [ KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]   EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME ->-    [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME -> [KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+    [ EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME+    , KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME ->+    [ KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]   EXT_DISPLAY_CONTROL_EXTENSION_NAME ->     [ EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME     , KHR_SWAPCHAIN_EXTENSION_NAME     , KHR_DISPLAY_EXTENSION_NAME     , KHR_SURFACE_EXTENSION_NAME     ]-  GOOGLE_DISPLAY_TIMING_EXTENSION_NAME -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+  GOOGLE_DISPLAY_TIMING_EXTENSION_NAME ->+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]   NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME ->-    [KHR_MULTIVIEW_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_DISCARD_RECTANGLES_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_MULTIVIEW_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  EXT_DISCARD_RECTANGLES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME      -> [KHR_SURFACE_EXTENSION_NAME]-  EXT_HDR_METADATA_EXTENSION_NAME               -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME -> [KHR_MAINTENANCE_2_EXTENSION_NAME, KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME]+  EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  EXT_HDR_METADATA_EXTENSION_NAME ->+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME ->+    [ KHR_MAINTENANCE_2_EXTENSION_NAME+    , KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME+    ]   KHR_CREATE_RENDERPASS_2_EXTENSION_NAME ->     [ KHR_MULTIVIEW_EXTENSION_NAME     , KHR_MAINTENANCE_2_EXTENSION_NAME@@ -330,7 +372,9 @@     ]   KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_EXTERNAL_FENCE_EXTENSION_NAME ->-    [KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME ->     [ KHR_EXTERNAL_FENCE_EXTENSION_NAME     , KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME@@ -341,13 +385,18 @@     , KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]-  KHR_PERFORMANCE_QUERY_EXTENSION_NAME          -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_PERFORMANCE_QUERY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   KHR_VARIABLE_POINTERS_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME]-  KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME -> [KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  MVK_IOS_SURFACE_EXTENSION_NAME              -> [KHR_SURFACE_EXTENSION_NAME]-  MVK_MACOS_SURFACE_EXTENSION_NAME            -> [KHR_SURFACE_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+    ]+  KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME ->+    [ KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  MVK_IOS_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  MVK_MACOS_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME ->     [ KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME     , KHR_EXTERNAL_MEMORY_EXTENSION_NAME@@ -373,8 +422,10 @@     ]   EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_MAINTENANCE_1_EXTENSION_NAME]-  EXT_SAMPLE_LOCATIONS_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_MAINTENANCE_1_EXTENSION_NAME+    ]+  EXT_SAMPLE_LOCATIONS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME ->     [ EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME@@ -418,27 +469,36 @@     , KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME     ]   EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_MAINTENANCE_3_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_MAINTENANCE_3_EXTENSION_NAME+    ]   KHR_PORTABILITY_SUBSET_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_SHADING_RATE_IMAGE_EXTENSION_NAME  -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_SHADING_RATE_IMAGE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_RAY_TRACING_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+    ]   KHR_MAINTENANCE_3_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_8BIT_STORAGE_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+    ]   EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME ->     [ KHR_EXTERNAL_MEMORY_EXTENSION_NAME     , KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]-  KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_SHADER_CLOCK_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME    -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME   -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_SHADER_CLOCK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   GGP_FRAME_TOKEN_EXTENSION_NAME ->-    [KHR_SWAPCHAIN_EXTENSION_NAME, GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  KHR_DRIVER_PROPERTIES_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  KHR_DRIVER_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME ->     [ KHR_CREATE_RENDERPASS_2_EXTENSION_NAME@@ -452,26 +512,26 @@     , KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME     , KHR_SURFACE_EXTENSION_NAME     ]-  NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME    -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_MESH_SHADER_EXTENSION_NAME                   -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME   -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME        -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_MESH_SHADER_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME           -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_PCI_BUS_INFO_EXTENSION_NAME                 -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_PCI_BUS_INFO_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME ->     [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME     , KHR_SWAPCHAIN_EXTENSION_NAME     , KHR_SURFACE_EXTENSION_NAME     ]-  FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME       -> [KHR_SURFACE_EXTENSION_NAME]+  FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_METAL_SURFACE_EXTENSION_NAME               -> [KHR_SURFACE_EXTENSION_NAME]-  EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME        -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_METAL_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME ->     [ KHR_CREATE_RENDERPASS_2_EXTENSION_NAME     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME@@ -479,16 +539,24 @@     , KHR_MAINTENANCE_2_EXTENSION_NAME     ]   AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME ->-    [AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SPIRV_1_4_EXTENSION_NAME ->-    [KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_MEMORY_BUDGET_EXTENSION_NAME   -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  EXT_MEMORY_BUDGET_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_MEMORY_PRIORITY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME ->-    [KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+    [ KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]   NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME ->-    [KHR_DEDICATED_ALLOCATION_EXTENSION_NAME, KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME]+    [ KHR_DEDICATED_ALLOCATION_EXTENSION_NAME+    , KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+    ]   KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME ->     [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     , KHR_CREATE_RENDERPASS_2_EXTENSION_NAME@@ -497,9 +565,12 @@     ]   EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_PRESENT_WAIT_EXTENSION_NAME ->-    [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_PRESENT_ID_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  NV_COOPERATIVE_MATRIX_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME    -> [NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME]+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_PRESENT_ID_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  NV_COOPERATIVE_MATRIX_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME -> [NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME]   EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME ->     [ KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME@@ -509,37 +580,58 @@     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]   KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_PROVOKING_VERTEX_EXTENSION_NAME               -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_PROVOKING_VERTEX_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME ->     [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     , KHR_SURFACE_EXTENSION_NAME     , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME     , KHR_SWAPCHAIN_EXTENSION_NAME     ]-  EXT_HEADLESS_SURFACE_EXTENSION_NAME               -> [KHR_SURFACE_EXTENSION_NAME]-  KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME          -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_LINE_RASTERIZATION_EXTENSION_NAME             -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME            -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_HOST_QUERY_RESET_EXTENSION_NAME               -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_HEADLESS_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_LINE_RASTERIZATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_HOST_QUERY_RESET_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME ->-    [EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME ->-    [KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME     -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME       -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME ->+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME ->-    [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  KHR_PRESENT_ID_EXTENSION_NAME               -> [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+    [ EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME+    , KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  NV_PRESENT_BARRIER_EXTENSION_NAME ->+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    , KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME+    , KHR_SWAPCHAIN_EXTENSION_NAME+    ]+  KHR_PRESENT_ID_EXTENSION_NAME ->+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]   NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_SYNCHRONIZATION_2_EXTENSION_NAME        -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_SYNCHRONIZATION_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, KHR_PIPELINE_LIBRARY_EXTENSION_NAME]-  KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_PIPELINE_LIBRARY_EXTENSION_NAME+    ]+  KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME ->     [ KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME@@ -572,13 +664,19 @@     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]   EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME ->-    [EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME ->-    [KHR_SWAPCHAIN_EXTENSION_NAME, KHR_COPY_COMMANDS_2_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]-  EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME                      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME       -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_4444_FORMATS_EXTENSION_NAME                          -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_SWAPCHAIN_EXTENSION_NAME+    , KHR_COPY_COMMANDS_2_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]+  EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_4444_FORMATS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_DEVICE_FAULT_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_RGBA10X6_FORMATS_EXTENSION_NAME ->     [ KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME@@ -588,14 +686,23 @@     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]   NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME ->-    [EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME, KHR_DISPLAY_EXTENSION_NAME, KHR_SURFACE_EXTENSION_NAME]+    [ EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME+    , KHR_DISPLAY_EXTENSION_NAME+    , KHR_SURFACE_EXTENSION_NAME+    ]   EXT_DIRECTFB_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME ->-    [KHR_MAINTENANCE_3_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_MAINTENANCE_3_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME        -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME         -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME     -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME ->+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , EXT_DEBUG_UTILS_EXTENSION_NAME+    ]+  EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   FUCHSIA_EXTERNAL_MEMORY_EXTENSION_NAME ->     [ KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME     , KHR_EXTERNAL_MEMORY_EXTENSION_NAME@@ -649,10 +756,12 @@     , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME     ]   EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  QNX_SCREEN_SURFACE_EXTENSION_NAME           -> [KHR_SURFACE_EXTENSION_NAME]-  EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME       -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  QNX_SCREEN_SURFACE_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]+  EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME ->-    [EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME ->     [ KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME     , EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME@@ -662,27 +771,57 @@     , KHR_MAINTENANCE_3_EXTENSION_NAME     ]   EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME ->-    [EXT_GLOBAL_PRIORITY_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ EXT_GLOBAL_PRIORITY_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME ->-    [KHR_MAINTENANCE_1_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_MAINTENANCE_1_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  EXT_OPACITY_MICROMAP_EXTENSION_NAME ->+    [ KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+    , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+    , EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+    , KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+    , KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_MAINTENANCE_3_EXTENSION_NAME+    ]   EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME -> [EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME]   EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME ->-    [EXT_MEMORY_PRIORITY_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ EXT_MEMORY_PRIORITY_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME]-  GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME                -> [KHR_SURFACE_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME+    ]+  GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME -> [KHR_SURFACE_EXTENSION_NAME]   EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME -> [EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME]   QCOM_IMAGE_PROCESSING_EXTENSION_NAME ->-    [KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]+  EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME ->-    [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME]+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME+    ]   EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  EXT_LEGACY_DITHERING_EXTENSION_NAME                      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  QCOM_TILE_PROPERTIES_EXTENSION_NAME                      -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]-  SEC_AMIGO_PROFILING_EXTENSION_NAME                       -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  NV_OPTICAL_FLOW_EXTENSION_NAME ->+    [ KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    , KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+    , KHR_SYNCHRONIZATION_2_EXTENSION_NAME+    ]+  EXT_LEGACY_DITHERING_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  QCOM_TILE_PROPERTIES_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+  SEC_AMIGO_PROFILING_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]   EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME ->-    [KHR_MAINTENANCE_3_EXTENSION_NAME, KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]+    [ KHR_MAINTENANCE_3_EXTENSION_NAME+    , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+    ]   _ -> []  -- | The minimum required API version to use this extension@@ -701,5 +840,4 @@   KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0   KHR_MAINTENANCE_4_EXTENSION_NAME -> MAKE_API_VERSION 1 1 0-  _                            -> API_VERSION_1_0-+  _ -> API_VERSION_1_0
src/Vulkan/Extensions/Handles.hs view
@@ -9,6 +9,8 @@                                   , DeferredOperationKHR(..)                                   , CuModuleNVX(..)                                   , CuFunctionNVX(..)+                                  , OpticalFlowSessionNV(..)+                                  , MicromapEXT(..)                                   , DisplayKHR(..)                                   , DisplayModeKHR(..)                                   , SurfaceKHR(..)@@ -62,6 +64,8 @@ import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_DISPLAY_KHR)) 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_MICROMAP_EXT))+import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SURFACE_KHR)) import Vulkan.Core10.Enums.ObjectType (ObjectType(OBJECT_TYPE_SWAPCHAIN_KHR))@@ -107,7 +111,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType IndirectCommandsLayoutNV where-  objectTypeAndHandle (IndirectCommandsLayoutNV h) = (OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV, h)+  objectTypeAndHandle (IndirectCommandsLayoutNV h) = ( OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV+                                                     , h ) instance Show IndirectCommandsLayoutNV where   showsPrec p (IndirectCommandsLayoutNV x) = showParen (p >= 11) (showString "IndirectCommandsLayoutNV 0x" . showHex x) @@ -126,7 +131,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType ValidationCacheEXT where-  objectTypeAndHandle (ValidationCacheEXT h) = (OBJECT_TYPE_VALIDATION_CACHE_EXT, h)+  objectTypeAndHandle (ValidationCacheEXT h) = ( OBJECT_TYPE_VALIDATION_CACHE_EXT+                                               , h ) instance Show ValidationCacheEXT where   showsPrec p (ValidationCacheEXT x) = showParen (p >= 11) (showString "ValidationCacheEXT 0x" . showHex x) @@ -151,7 +157,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType AccelerationStructureKHR where-  objectTypeAndHandle (AccelerationStructureKHR h) = (OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR, h)+  objectTypeAndHandle (AccelerationStructureKHR h) = ( OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR+                                                     , h ) instance Show AccelerationStructureKHR where   showsPrec p (AccelerationStructureKHR x) = showParen (p >= 11) (showString "AccelerationStructureKHR 0x" . showHex x) @@ -175,7 +182,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType AccelerationStructureNV where-  objectTypeAndHandle (AccelerationStructureNV h) = (OBJECT_TYPE_ACCELERATION_STRUCTURE_NV, h)+  objectTypeAndHandle (AccelerationStructureNV h) = ( OBJECT_TYPE_ACCELERATION_STRUCTURE_NV+                                                    , h ) instance Show AccelerationStructureNV where   showsPrec p (AccelerationStructureNV x) = showParen (p >= 11) (showString "AccelerationStructureNV 0x" . showHex x) @@ -193,7 +201,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType PerformanceConfigurationINTEL where-  objectTypeAndHandle (PerformanceConfigurationINTEL h) = (OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL, h)+  objectTypeAndHandle (PerformanceConfigurationINTEL h) = ( OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL+                                                          , h ) instance Show PerformanceConfigurationINTEL where   showsPrec p (PerformanceConfigurationINTEL x) = showParen (p >= 11) (showString "PerformanceConfigurationINTEL 0x" . showHex x) @@ -215,7 +224,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType BufferCollectionFUCHSIA where-  objectTypeAndHandle (BufferCollectionFUCHSIA h) = (OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA, h)+  objectTypeAndHandle (BufferCollectionFUCHSIA h) = ( OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA+                                                    , h ) instance Show BufferCollectionFUCHSIA where   showsPrec p (BufferCollectionFUCHSIA x) = showParen (p >= 11) (showString "BufferCollectionFUCHSIA 0x" . showHex x) @@ -231,9 +241,13 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_deferred_host_operations VK_KHR_deferred_host_operations>, -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.buildAccelerationStructuresKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.buildMicromapsEXT', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyAccelerationStructureToMemoryKHR', -- 'Vulkan.Extensions.VK_KHR_acceleration_structure.copyMemoryToAccelerationStructureKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMemoryToMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.copyMicromapToMemoryEXT', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.createDeferredOperationKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.createRayTracingPipelinesKHR', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.deferredOperationJoinKHR',@@ -244,7 +258,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType DeferredOperationKHR where-  objectTypeAndHandle (DeferredOperationKHR h) = (OBJECT_TYPE_DEFERRED_OPERATION_KHR, h)+  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) @@ -283,6 +298,48 @@   showsPrec p (CuFunctionNVX x) = showParen (p >= 11) (showString "CuFunctionNVX 0x" . showHex x)  +-- | VkOpticalFlowSessionNV - Opaque handle to an optical flow session object+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Extensions.VK_NV_optical_flow.bindOpticalFlowSessionImageNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.cmdOpticalFlowExecuteNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.createOpticalFlowSessionNV',+-- 'Vulkan.Extensions.VK_NV_optical_flow.destroyOpticalFlowSessionNV'+newtype OpticalFlowSessionNV = OpticalFlowSessionNV Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType OpticalFlowSessionNV where+  objectTypeAndHandle (OpticalFlowSessionNV h) = ( OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV+                                                 , h )+instance Show OpticalFlowSessionNV where+  showsPrec p (OpticalFlowSessionNV x) = showParen (p >= 11) (showString "OpticalFlowSessionNV 0x" . showHex x)+++-- | VkMicromapEXT - Opaque handle to a micromap object+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMemoryToMicromapInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.CopyMicromapToMemoryInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.MicromapBuildInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.cmdWriteMicromapsPropertiesEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.createMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.destroyMicromapEXT',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.writeMicromapsPropertiesEXT'+newtype MicromapEXT = MicromapEXT Word64+  deriving newtype (Eq, Ord, Storable, Zero)+  deriving anyclass (IsHandle)+instance HasObjectType MicromapEXT where+  objectTypeAndHandle (MicromapEXT h) = (OBJECT_TYPE_MICROMAP_EXT, h)+instance Show MicromapEXT where+  showsPrec p (MicromapEXT x) = showParen (p >= 11) (showString "MicromapEXT 0x" . showHex x)++ -- | VkDisplayKHR - Opaque handle to a display object -- -- = See Also@@ -479,7 +536,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType DebugReportCallbackEXT where-  objectTypeAndHandle (DebugReportCallbackEXT h) = (OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT, h)+  objectTypeAndHandle (DebugReportCallbackEXT h) = ( OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT+                                                   , h ) instance Show DebugReportCallbackEXT where   showsPrec p (DebugReportCallbackEXT x) = showParen (p >= 11) (showString "DebugReportCallbackEXT 0x" . showHex x) @@ -505,7 +563,8 @@   deriving newtype (Eq, Ord, Storable, Zero)   deriving anyclass (IsHandle) instance HasObjectType DebugUtilsMessengerEXT where-  objectTypeAndHandle (DebugUtilsMessengerEXT h) = (OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT, h)+  objectTypeAndHandle (DebugUtilsMessengerEXT h) = ( OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT+                                                   , h ) instance Show DebugUtilsMessengerEXT where   showsPrec p (DebugUtilsMessengerEXT x) = showParen (p >= 11) (showString "DebugUtilsMessengerEXT 0x" . showHex x) 
src/Vulkan/Extensions/Handles.hs-boot view
@@ -11,6 +11,8 @@                                   , DisplayKHR                                   , DisplayModeKHR                                   , IndirectCommandsLayoutNV+                                  , MicromapEXT+                                  , OpticalFlowSessionNV                                   , PerformanceConfigurationINTEL                                   , SurfaceKHR                                   , SwapchainKHR@@ -50,6 +52,12 @@   data IndirectCommandsLayoutNV+++data MicromapEXT+++data OpticalFlowSessionNV   data PerformanceConfigurationINTEL
src/Vulkan/Extensions/VK_AMD_buffer_marker.hs view
@@ -303,12 +303,21 @@                         -> -- | @marker@ is the 32-bit value of the marker.                            ("marker" ::: Word32)                         -> io ()-cmdWriteBufferMarkerAMD commandBuffer pipelineStage dstBuffer dstOffset marker = liftIO $ do+cmdWriteBufferMarkerAMD commandBuffer+                          pipelineStage+                          dstBuffer+                          dstOffset+                          marker = liftIO $ do   let vkCmdWriteBufferMarkerAMDPtr = pVkCmdWriteBufferMarkerAMD (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdWriteBufferMarkerAMDPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteBufferMarkerAMD is null" Nothing Nothing   let vkCmdWriteBufferMarkerAMD' = mkVkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMDPtr-  traceAroundEvent "vkCmdWriteBufferMarkerAMD" (vkCmdWriteBufferMarkerAMD' (commandBufferHandle (commandBuffer)) (pipelineStage) (dstBuffer) (dstOffset) (marker))+  traceAroundEvent "vkCmdWriteBufferMarkerAMD" (vkCmdWriteBufferMarkerAMD'+                                                  (commandBufferHandle (commandBuffer))+                                                  (pipelineStage)+                                                  (dstBuffer)+                                                  (dstOffset)+                                                  (marker))   pure $ ()  
src/Vulkan/Extensions/VK_AMD_display_native_hdr.hs view
@@ -228,7 +228,10 @@   unless (vkSetLocalDimmingAMDPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetLocalDimmingAMD is null" Nothing Nothing   let vkSetLocalDimmingAMD' = mkVkSetLocalDimmingAMD vkSetLocalDimmingAMDPtr-  traceAroundEvent "vkSetLocalDimmingAMD" (vkSetLocalDimmingAMD' (deviceHandle (device)) (swapChain) (boolToBool32 (localDimmingEnable)))+  traceAroundEvent "vkSetLocalDimmingAMD" (vkSetLocalDimmingAMD'+                                             (deviceHandle (device))+                                             (swapChain)+                                             (boolToBool32 (localDimmingEnable)))   pure $ ()  
src/Vulkan/Extensions/VK_AMD_memory_overallocation_behavior.hs view
@@ -195,10 +195,12 @@  -- | 'MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD' lets the implementation -- decide if overallocation is allowed.-pattern MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD    = MemoryOverallocationBehaviorAMD 0+pattern MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = MemoryOverallocationBehaviorAMD 0+ -- | 'MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD' specifies overallocation is -- allowed if platform permits.-pattern MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD    = MemoryOverallocationBehaviorAMD 1+pattern MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = MemoryOverallocationBehaviorAMD 1+ -- | 'MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD' specifies the -- application is not allowed to allocate device memory beyond the heap -- sizes reported by@@ -206,10 +208,14 @@ -- Allocations that are not explicitly made by the application within the -- scope of the Vulkan instance are not accounted for. pattern MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = MemoryOverallocationBehaviorAMD 2-{-# complete MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD,-             MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD,-             MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD :: MemoryOverallocationBehaviorAMD #-} +{-# COMPLETE+  MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD+  , MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD+  , MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD ::+    MemoryOverallocationBehaviorAMD+  #-}+ conNameMemoryOverallocationBehaviorAMD :: String conNameMemoryOverallocationBehaviorAMD = "MemoryOverallocationBehaviorAMD" @@ -218,24 +224,36 @@  showTableMemoryOverallocationBehaviorAMD :: [(MemoryOverallocationBehaviorAMD, String)] showTableMemoryOverallocationBehaviorAMD =-  [ (MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD   , "DEFAULT_AMD")-  , (MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD   , "ALLOWED_AMD")-  , (MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD, "DISALLOWED_AMD")+  [+    ( MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD+    , "DEFAULT_AMD"+    )+  ,+    ( MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD+    , "ALLOWED_AMD"+    )+  ,+    ( MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD+    , "DISALLOWED_AMD"+    )   ]  instance Show MemoryOverallocationBehaviorAMD where-  showsPrec = enumShowsPrec enumPrefixMemoryOverallocationBehaviorAMD-                            showTableMemoryOverallocationBehaviorAMD-                            conNameMemoryOverallocationBehaviorAMD-                            (\(MemoryOverallocationBehaviorAMD x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixMemoryOverallocationBehaviorAMD+      showTableMemoryOverallocationBehaviorAMD+      conNameMemoryOverallocationBehaviorAMD+      (\(MemoryOverallocationBehaviorAMD x) -> x)+      (showsPrec 11)  instance Read MemoryOverallocationBehaviorAMD where-  readPrec = enumReadPrec enumPrefixMemoryOverallocationBehaviorAMD-                          showTableMemoryOverallocationBehaviorAMD-                          conNameMemoryOverallocationBehaviorAMD-                          MemoryOverallocationBehaviorAMD-+  readPrec =+    enumReadPrec+      enumPrefixMemoryOverallocationBehaviorAMD+      showTableMemoryOverallocationBehaviorAMD+      conNameMemoryOverallocationBehaviorAMD+      MemoryOverallocationBehaviorAMD  type AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_AMD_pipeline_compiler_control.hs view
@@ -206,8 +206,6 @@ newtype PipelineCompilerControlFlagBitsAMD = PipelineCompilerControlFlagBitsAMD Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineCompilerControlFlagBitsAMD :: String conNamePipelineCompilerControlFlagBitsAMD = "PipelineCompilerControlFlagBitsAMD" @@ -218,18 +216,21 @@ showTablePipelineCompilerControlFlagBitsAMD = []  instance Show PipelineCompilerControlFlagBitsAMD where-  showsPrec = enumShowsPrec enumPrefixPipelineCompilerControlFlagBitsAMD-                            showTablePipelineCompilerControlFlagBitsAMD-                            conNamePipelineCompilerControlFlagBitsAMD-                            (\(PipelineCompilerControlFlagBitsAMD x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCompilerControlFlagBitsAMD+      showTablePipelineCompilerControlFlagBitsAMD+      conNamePipelineCompilerControlFlagBitsAMD+      (\(PipelineCompilerControlFlagBitsAMD x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCompilerControlFlagBitsAMD where-  readPrec = enumReadPrec enumPrefixPipelineCompilerControlFlagBitsAMD-                          showTablePipelineCompilerControlFlagBitsAMD-                          conNamePipelineCompilerControlFlagBitsAMD-                          PipelineCompilerControlFlagBitsAMD-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCompilerControlFlagBitsAMD+      showTablePipelineCompilerControlFlagBitsAMD+      conNamePipelineCompilerControlFlagBitsAMD+      PipelineCompilerControlFlagBitsAMD  type AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_AMD_rasterization_order.hs view
@@ -275,14 +275,19 @@ -- | 'RASTERIZATION_ORDER_STRICT_AMD' specifies that operations for each -- primitive in a subpass /must/ occur in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-order primitive order>.-pattern RASTERIZATION_ORDER_STRICT_AMD  = RasterizationOrderAMD 0+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://registry.khronos.org/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 #-} +{-# COMPLETE+  RASTERIZATION_ORDER_STRICT_AMD+  , RASTERIZATION_ORDER_RELAXED_AMD ::+    RasterizationOrderAMD+  #-}+ conNameRasterizationOrderAMD :: String conNameRasterizationOrderAMD = "RasterizationOrderAMD" @@ -291,21 +296,32 @@  showTableRasterizationOrderAMD :: [(RasterizationOrderAMD, String)] showTableRasterizationOrderAMD =-  [(RASTERIZATION_ORDER_STRICT_AMD, "STRICT_AMD"), (RASTERIZATION_ORDER_RELAXED_AMD, "RELAXED_AMD")]+  [+    ( RASTERIZATION_ORDER_STRICT_AMD+    , "STRICT_AMD"+    )+  ,+    ( RASTERIZATION_ORDER_RELAXED_AMD+    , "RELAXED_AMD"+    )+  ]  instance Show RasterizationOrderAMD where-  showsPrec = enumShowsPrec enumPrefixRasterizationOrderAMD-                            showTableRasterizationOrderAMD-                            conNameRasterizationOrderAMD-                            (\(RasterizationOrderAMD x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixRasterizationOrderAMD+      showTableRasterizationOrderAMD+      conNameRasterizationOrderAMD+      (\(RasterizationOrderAMD x) -> x)+      (showsPrec 11)  instance Read RasterizationOrderAMD where-  readPrec = enumReadPrec enumPrefixRasterizationOrderAMD-                          showTableRasterizationOrderAMD-                          conNameRasterizationOrderAMD-                          RasterizationOrderAMD-+  readPrec =+    enumReadPrec+      enumPrefixRasterizationOrderAMD+      showTableRasterizationOrderAMD+      conNameRasterizationOrderAMD+      RasterizationOrderAMD  type AMD_RASTERIZATION_ORDER_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_AMD_shader_core_properties.hs view
@@ -319,7 +319,20 @@     maxVgprAllocation <- peek @Word32 ((p `plusPtr` 64 :: Ptr Word32))     vgprAllocationGranularity <- peek @Word32 ((p `plusPtr` 68 :: Ptr Word32))     pure $ PhysicalDeviceShaderCorePropertiesAMD-             shaderEngineCount shaderArraysPerEngineCount computeUnitsPerShaderArray simdPerComputeUnit wavefrontsPerSimd wavefrontSize sgprsPerSimd minSgprAllocation maxSgprAllocation sgprAllocationGranularity vgprsPerSimd minVgprAllocation maxVgprAllocation vgprAllocationGranularity+             shaderEngineCount+             shaderArraysPerEngineCount+             computeUnitsPerShaderArray+             simdPerComputeUnit+             wavefrontsPerSimd+             wavefrontSize+             sgprsPerSimd+             minSgprAllocation+             maxSgprAllocation+             sgprAllocationGranularity+             vgprsPerSimd+             minVgprAllocation+             maxVgprAllocation+             vgprAllocationGranularity  instance Storable PhysicalDeviceShaderCorePropertiesAMD where   sizeOf ~_ = 72
src/Vulkan/Extensions/VK_AMD_shader_core_properties2.hs view
@@ -219,8 +219,6 @@ newtype ShaderCorePropertiesFlagBitsAMD = ShaderCorePropertiesFlagBitsAMD Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameShaderCorePropertiesFlagBitsAMD :: String conNameShaderCorePropertiesFlagBitsAMD = "ShaderCorePropertiesFlagBitsAMD" @@ -231,18 +229,21 @@ showTableShaderCorePropertiesFlagBitsAMD = []  instance Show ShaderCorePropertiesFlagBitsAMD where-  showsPrec = enumShowsPrec enumPrefixShaderCorePropertiesFlagBitsAMD-                            showTableShaderCorePropertiesFlagBitsAMD-                            conNameShaderCorePropertiesFlagBitsAMD-                            (\(ShaderCorePropertiesFlagBitsAMD x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixShaderCorePropertiesFlagBitsAMD+      showTableShaderCorePropertiesFlagBitsAMD+      conNameShaderCorePropertiesFlagBitsAMD+      (\(ShaderCorePropertiesFlagBitsAMD x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ShaderCorePropertiesFlagBitsAMD where-  readPrec = enumReadPrec enumPrefixShaderCorePropertiesFlagBitsAMD-                          showTableShaderCorePropertiesFlagBitsAMD-                          conNameShaderCorePropertiesFlagBitsAMD-                          ShaderCorePropertiesFlagBitsAMD-+  readPrec =+    enumReadPrec+      enumPrefixShaderCorePropertiesFlagBitsAMD+      showTableShaderCorePropertiesFlagBitsAMD+      conNameShaderCorePropertiesFlagBitsAMD+      ShaderCorePropertiesFlagBitsAMD  type AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_AMD_shader_info.hs view
@@ -347,14 +347,27 @@   let vkGetShaderInfoAMD' = mkVkGetShaderInfoAMD vkGetShaderInfoAMDPtr   let device' = deviceHandle (device)   pPInfoSize <- ContT $ bracket (callocBytes @CSize 8) free-  r <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD'+                                                       device'+                                                       (pipeline)+                                                       (shaderStage)+                                                       (infoType)+                                                       (pPInfoSize)+                                                       (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pInfoSize <- lift $ peek @CSize pPInfoSize   pPInfo <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pInfoSize)))) free-  r' <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD' device' (pipeline) (shaderStage) (infoType) (pPInfoSize) (pPInfo))+  r' <- lift $ traceAroundEvent "vkGetShaderInfoAMD" (vkGetShaderInfoAMD'+                                                        device'+                                                        (pipeline)+                                                        (shaderStage)+                                                        (infoType)+                                                        (pPInfoSize)+                                                        (pPInfo))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pInfoSize'' <- lift $ peek @CSize pPInfoSize-  pInfo' <- lift $ packCStringLen  (castPtr @() @CChar pPInfo, (fromIntegral ((coerce @CSize @Word64 pInfoSize''))))+  pInfo' <- lift $ packCStringLen  ( castPtr @() @CChar pPInfo+                                   , (fromIntegral ((coerce @CSize @Word64 pInfoSize''))) )   pure $ ((r'), pInfo')  @@ -415,7 +428,11 @@     ldsUsageSizeInBytes <- peek @CSize ((p `plusPtr` 16 :: Ptr CSize))     scratchMemUsageInBytes <- peek @CSize ((p `plusPtr` 24 :: Ptr CSize))     pure $ ShaderResourceUsageAMD-             numUsedVgprs numUsedSgprs ldsSizePerLocalWorkGroup (coerce @CSize @Word64 ldsUsageSizeInBytes) (coerce @CSize @Word64 scratchMemUsageInBytes)+             numUsedVgprs+             numUsedSgprs+             ldsSizePerLocalWorkGroup+             (coerce @CSize @Word64 ldsUsageSizeInBytes)+             (coerce @CSize @Word64 scratchMemUsageInBytes)  instance Storable ShaderResourceUsageAMD where   sizeOf ~_ = 32@@ -530,7 +547,15 @@     computeWorkGroupSize1 <- peek @Word32 ((pcomputeWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))     computeWorkGroupSize2 <- peek @Word32 ((pcomputeWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))     pure $ ShaderStatisticsInfoAMD-             shaderStageMask resourceUsage numPhysicalVgprs numPhysicalSgprs numAvailableVgprs numAvailableSgprs ((computeWorkGroupSize0, computeWorkGroupSize1, computeWorkGroupSize2))+             shaderStageMask+             resourceUsage+             numPhysicalVgprs+             numPhysicalSgprs+             numAvailableVgprs+             numAvailableSgprs+             (( computeWorkGroupSize0+              , computeWorkGroupSize1+              , computeWorkGroupSize2 ))  instance Storable ShaderStatisticsInfoAMD where   sizeOf ~_ = 72@@ -561,17 +586,23 @@  -- | 'SHADER_INFO_TYPE_STATISTICS_AMD' specifies that device resources used -- by a shader will be queried.-pattern SHADER_INFO_TYPE_STATISTICS_AMD  = ShaderInfoTypeAMD 0+pattern SHADER_INFO_TYPE_STATISTICS_AMD = ShaderInfoTypeAMD 0+ -- | 'SHADER_INFO_TYPE_BINARY_AMD' specifies that implementation-specific -- information will be queried.-pattern SHADER_INFO_TYPE_BINARY_AMD      = ShaderInfoTypeAMD 1+pattern SHADER_INFO_TYPE_BINARY_AMD = ShaderInfoTypeAMD 1+ -- | 'SHADER_INFO_TYPE_DISASSEMBLY_AMD' specifies that human-readable -- disassembly of a shader. pattern SHADER_INFO_TYPE_DISASSEMBLY_AMD = ShaderInfoTypeAMD 2-{-# complete SHADER_INFO_TYPE_STATISTICS_AMD,-             SHADER_INFO_TYPE_BINARY_AMD,-             SHADER_INFO_TYPE_DISASSEMBLY_AMD :: ShaderInfoTypeAMD #-} +{-# COMPLETE+  SHADER_INFO_TYPE_STATISTICS_AMD+  , SHADER_INFO_TYPE_BINARY_AMD+  , SHADER_INFO_TYPE_DISASSEMBLY_AMD ::+    ShaderInfoTypeAMD+  #-}+ conNameShaderInfoTypeAMD :: String conNameShaderInfoTypeAMD = "ShaderInfoTypeAMD" @@ -580,22 +611,33 @@  showTableShaderInfoTypeAMD :: [(ShaderInfoTypeAMD, String)] showTableShaderInfoTypeAMD =-  [ (SHADER_INFO_TYPE_STATISTICS_AMD , "STATISTICS_AMD")-  , (SHADER_INFO_TYPE_BINARY_AMD     , "BINARY_AMD")-  , (SHADER_INFO_TYPE_DISASSEMBLY_AMD, "DISASSEMBLY_AMD")+  [+    ( SHADER_INFO_TYPE_STATISTICS_AMD+    , "STATISTICS_AMD"+    )+  , (SHADER_INFO_TYPE_BINARY_AMD, "BINARY_AMD")+  ,+    ( SHADER_INFO_TYPE_DISASSEMBLY_AMD+    , "DISASSEMBLY_AMD"+    )   ]  instance Show ShaderInfoTypeAMD where-  showsPrec = enumShowsPrec enumPrefixShaderInfoTypeAMD-                            showTableShaderInfoTypeAMD-                            conNameShaderInfoTypeAMD-                            (\(ShaderInfoTypeAMD x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixShaderInfoTypeAMD+      showTableShaderInfoTypeAMD+      conNameShaderInfoTypeAMD+      (\(ShaderInfoTypeAMD x) -> x)+      (showsPrec 11)  instance Read ShaderInfoTypeAMD where   readPrec =-    enumReadPrec enumPrefixShaderInfoTypeAMD showTableShaderInfoTypeAMD conNameShaderInfoTypeAMD ShaderInfoTypeAMD-+    enumReadPrec+      enumPrefixShaderInfoTypeAMD+      showTableShaderInfoTypeAMD+      conNameShaderInfoTypeAMD+      ShaderInfoTypeAMD  type AMD_SHADER_INFO_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs view
@@ -401,7 +401,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ANDROID_external_memory_android_hardware_buffer VK_ANDROID_external_memory_android_hardware_buffer>, -- 'AndroidHardwareBufferPropertiesANDROID', 'Vulkan.Core10.Handles.Device' getAndroidHardwareBufferPropertiesANDROID :: forall a io-                                           . (Extendss AndroidHardwareBufferPropertiesANDROID a, PokeChain a, PeekChain a, MonadIO io)+                                           . ( Extendss AndroidHardwareBufferPropertiesANDROID a+                                             , PokeChain a+                                             , PeekChain a+                                             , MonadIO io )                                           => -- | @device@ is the logical device that will be importing @buffer@.                                              --                                              -- #VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter#@@ -418,13 +421,17 @@                                              -- @buffer@ /must/ be a valid pointer to a valid 'AHardwareBuffer' value                                              (Ptr AHardwareBuffer)                                           -> io (AndroidHardwareBufferPropertiesANDROID a)-getAndroidHardwareBufferPropertiesANDROID device buffer = liftIO . evalContT $ do+getAndroidHardwareBufferPropertiesANDROID device+                                            buffer = liftIO . evalContT $ do   let vkGetAndroidHardwareBufferPropertiesANDROIDPtr = pVkGetAndroidHardwareBufferPropertiesANDROID (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetAndroidHardwareBufferPropertiesANDROIDPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAndroidHardwareBufferPropertiesANDROID is null" Nothing Nothing   let vkGetAndroidHardwareBufferPropertiesANDROID' = mkVkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROIDPtr   pPProperties <- ContT (withZeroCStruct @(AndroidHardwareBufferPropertiesANDROID _))-  r <- lift $ traceAroundEvent "vkGetAndroidHardwareBufferPropertiesANDROID" (vkGetAndroidHardwareBufferPropertiesANDROID' (deviceHandle (device)) (buffer) (forgetExtensions (pPProperties)))+  r <- lift $ traceAroundEvent "vkGetAndroidHardwareBufferPropertiesANDROID" (vkGetAndroidHardwareBufferPropertiesANDROID'+                                                                                (deviceHandle (device))+                                                                                (buffer)+                                                                                (forgetExtensions (pPProperties)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pProperties <- lift $ peekCStruct @(AndroidHardwareBufferPropertiesANDROID _) pPProperties   pure $ (pProperties)@@ -494,7 +501,10 @@   let vkGetMemoryAndroidHardwareBufferANDROID' = mkVkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROIDPtr   pInfo <- ContT $ withCStruct (info)   pPBuffer <- ContT $ bracket (callocBytes @(Ptr AHardwareBuffer) 8) free-  r <- lift $ traceAroundEvent "vkGetMemoryAndroidHardwareBufferANDROID" (vkGetMemoryAndroidHardwareBufferANDROID' (deviceHandle (device)) pInfo (pPBuffer))+  r <- lift $ traceAroundEvent "vkGetMemoryAndroidHardwareBufferANDROID" (vkGetMemoryAndroidHardwareBufferANDROID'+                                                                            (deviceHandle (device))+                                                                            pInfo+                                                                            (pPBuffer))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pBuffer <- lift $ peek @(Ptr AHardwareBuffer) pPBuffer   pure $ (pBuffer)@@ -703,7 +713,8 @@     | Just Refl <- eqT @e @AndroidHardwareBufferFormatPropertiesANDROID = Just f     | otherwise = Nothing -instance (Extendss AndroidHardwareBufferPropertiesANDROID es, PokeChain es) => ToCStruct (AndroidHardwareBufferPropertiesANDROID es) where+instance ( Extendss AndroidHardwareBufferPropertiesANDROID es+         , PokeChain es ) => ToCStruct (AndroidHardwareBufferPropertiesANDROID es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)   pokeCStruct p AndroidHardwareBufferPropertiesANDROID{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID)@@ -722,7 +733,8 @@     lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)     lift $ f -instance (Extendss AndroidHardwareBufferPropertiesANDROID es, PeekChain es) => FromCStruct (AndroidHardwareBufferPropertiesANDROID es) where+instance ( Extendss AndroidHardwareBufferPropertiesANDROID es+         , PeekChain es ) => FromCStruct (AndroidHardwareBufferPropertiesANDROID es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -990,7 +1002,14 @@     suggestedXChromaOffset <- peek @ChromaLocation ((p `plusPtr` 60 :: Ptr ChromaLocation))     suggestedYChromaOffset <- peek @ChromaLocation ((p `plusPtr` 64 :: Ptr ChromaLocation))     pure $ AndroidHardwareBufferFormatPropertiesANDROID-             format externalFormat formatFeatures samplerYcbcrConversionComponents suggestedYcbcrModel suggestedYcbcrRange suggestedXChromaOffset suggestedYChromaOffset+             format+             externalFormat+             formatFeatures+             samplerYcbcrConversionComponents+             suggestedYcbcrModel+             suggestedYcbcrRange+             suggestedXChromaOffset+             suggestedYChromaOffset  instance Storable AndroidHardwareBufferFormatPropertiesANDROID where   sizeOf ~_ = 72@@ -1168,7 +1187,14 @@     suggestedXChromaOffset <- peek @ChromaLocation ((p `plusPtr` 64 :: Ptr ChromaLocation))     suggestedYChromaOffset <- peek @ChromaLocation ((p `plusPtr` 68 :: Ptr ChromaLocation))     pure $ AndroidHardwareBufferFormatProperties2ANDROID-             format externalFormat formatFeatures samplerYcbcrConversionComponents suggestedYcbcrModel suggestedYcbcrRange suggestedXChromaOffset suggestedYChromaOffset+             format+             externalFormat+             formatFeatures+             samplerYcbcrConversionComponents+             suggestedYcbcrModel+             suggestedYcbcrRange+             suggestedXChromaOffset+             suggestedYChromaOffset  instance Storable AndroidHardwareBufferFormatProperties2ANDROID where   sizeOf ~_ = 72
src/Vulkan/Extensions/VK_ANDROID_external_memory_android_hardware_buffer.hs-boot view
@@ -319,10 +319,12 @@ type role AndroidHardwareBufferPropertiesANDROID nominal data AndroidHardwareBufferPropertiesANDROID (es :: [Type]) -instance (Extendss AndroidHardwareBufferPropertiesANDROID es, PokeChain es) => ToCStruct (AndroidHardwareBufferPropertiesANDROID es)+instance ( Extendss AndroidHardwareBufferPropertiesANDROID es+         , PokeChain es ) => ToCStruct (AndroidHardwareBufferPropertiesANDROID es) instance Show (Chain es) => Show (AndroidHardwareBufferPropertiesANDROID es) -instance (Extendss AndroidHardwareBufferPropertiesANDROID es, PeekChain es) => FromCStruct (AndroidHardwareBufferPropertiesANDROID es)+instance ( Extendss AndroidHardwareBufferPropertiesANDROID es+         , PeekChain es ) => FromCStruct (AndroidHardwareBufferPropertiesANDROID es)   data AndroidHardwareBufferUsageANDROID
src/Vulkan/Extensions/VK_EXT_acquire_drm_display.hs view
@@ -184,7 +184,10 @@   unless (vkAcquireDrmDisplayEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireDrmDisplayEXT is null" Nothing Nothing   let vkAcquireDrmDisplayEXT' = mkVkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXTPtr-  r <- traceAroundEvent "vkAcquireDrmDisplayEXT" (vkAcquireDrmDisplayEXT' (physicalDeviceHandle (physicalDevice)) (drmFd) (display))+  r <- traceAroundEvent "vkAcquireDrmDisplayEXT" (vkAcquireDrmDisplayEXT'+                                                    (physicalDeviceHandle (physicalDevice))+                                                    (drmFd)+                                                    (display))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -248,7 +251,11 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDrmDisplayEXT is null" Nothing Nothing   let vkGetDrmDisplayEXT' = mkVkGetDrmDisplayEXT vkGetDrmDisplayEXTPtr   pDisplay <- ContT $ bracket (callocBytes @DisplayKHR 8) free-  r <- lift $ traceAroundEvent "vkGetDrmDisplayEXT" (vkGetDrmDisplayEXT' (physicalDeviceHandle (physicalDevice)) (drmFd) (connectorId) (pDisplay))+  r <- lift $ traceAroundEvent "vkGetDrmDisplayEXT" (vkGetDrmDisplayEXT'+                                                       (physicalDeviceHandle (physicalDevice))+                                                       (drmFd)+                                                       (connectorId)+                                                       (pDisplay))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   display <- lift $ peek @DisplayKHR pDisplay   pure $ (display)
src/Vulkan/Extensions/VK_EXT_acquire_xlib_display.hs view
@@ -230,7 +230,10 @@   unless (vkAcquireXlibDisplayEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireXlibDisplayEXT is null" Nothing Nothing   let vkAcquireXlibDisplayEXT' = mkVkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXTPtr-  r <- traceAroundEvent "vkAcquireXlibDisplayEXT" (vkAcquireXlibDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (display))+  r <- traceAroundEvent "vkAcquireXlibDisplayEXT" (vkAcquireXlibDisplayEXT'+                                                     (physicalDeviceHandle (physicalDevice))+                                                     (dpy)+                                                     (display))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -287,7 +290,11 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRandROutputDisplayEXT is null" Nothing Nothing   let vkGetRandROutputDisplayEXT' = mkVkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXTPtr   pPDisplay <- ContT $ bracket (callocBytes @DisplayKHR 8) free-  r <- lift $ traceAroundEvent "vkGetRandROutputDisplayEXT" (vkGetRandROutputDisplayEXT' (physicalDeviceHandle (physicalDevice)) (dpy) (rrOutput) (pPDisplay))+  r <- lift $ traceAroundEvent "vkGetRandROutputDisplayEXT" (vkGetRandROutputDisplayEXT'+                                                               (physicalDeviceHandle (physicalDevice))+                                                               (dpy)+                                                               (rrOutput)+                                                               (pPDisplay))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDisplay <- lift $ peek @DisplayKHR pPDisplay   pure $ (pDisplay)
src/Vulkan/Extensions/VK_EXT_blend_operation_advanced.hs view
@@ -505,7 +505,12 @@     advancedBlendCorrelatedOverlap <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))     advancedBlendAllOperations <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))     pure $ PhysicalDeviceBlendOperationAdvancedPropertiesEXT-             advancedBlendMaxColorAttachments (bool32ToBool advancedBlendIndependentBlend) (bool32ToBool advancedBlendNonPremultipliedSrcColor) (bool32ToBool advancedBlendNonPremultipliedDstColor) (bool32ToBool advancedBlendCorrelatedOverlap) (bool32ToBool advancedBlendAllOperations)+             advancedBlendMaxColorAttachments+             (bool32ToBool advancedBlendIndependentBlend)+             (bool32ToBool advancedBlendNonPremultipliedSrcColor)+             (bool32ToBool advancedBlendNonPremultipliedDstColor)+             (bool32ToBool advancedBlendCorrelatedOverlap)+             (bool32ToBool advancedBlendAllOperations)  instance Storable PhysicalDeviceBlendOperationAdvancedPropertiesEXT where   sizeOf ~_ = 40@@ -609,7 +614,9 @@     dstPremultiplied <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     blendOverlap <- peek @BlendOverlapEXT ((p `plusPtr` 24 :: Ptr BlendOverlapEXT))     pure $ PipelineColorBlendAdvancedStateCreateInfoEXT-             (bool32ToBool srcPremultiplied) (bool32ToBool dstPremultiplied) blendOverlap+             (bool32ToBool srcPremultiplied)+             (bool32ToBool dstPremultiplied)+             blendOverlap  instance Storable PipelineColorBlendAdvancedStateCreateInfoEXT where   sizeOf ~_ = 32@@ -657,6 +664,7 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_blend_operation_advanced VK_EXT_blend_operation_advanced>,+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.ColorBlendAdvancedEXT', -- 'PipelineColorBlendAdvancedStateCreateInfoEXT' newtype BlendOverlapEXT = BlendOverlapEXT Int32   deriving newtype (Eq, Ord, Storable, Zero)@@ -664,16 +672,22 @@ -- | 'BLEND_OVERLAP_UNCORRELATED_EXT' specifies that there is no correlation -- between the source and destination coverage. pattern BLEND_OVERLAP_UNCORRELATED_EXT = BlendOverlapEXT 0+ -- | 'BLEND_OVERLAP_DISJOINT_EXT' specifies that the source and destination -- coverage are considered to have minimal overlap.-pattern BLEND_OVERLAP_DISJOINT_EXT     = BlendOverlapEXT 1+pattern BLEND_OVERLAP_DISJOINT_EXT = BlendOverlapEXT 1+ -- | 'BLEND_OVERLAP_CONJOINT_EXT' specifies that the source and destination -- coverage are considered to have maximal overlap.-pattern BLEND_OVERLAP_CONJOINT_EXT     = BlendOverlapEXT 2-{-# complete BLEND_OVERLAP_UNCORRELATED_EXT,-             BLEND_OVERLAP_DISJOINT_EXT,-             BLEND_OVERLAP_CONJOINT_EXT :: BlendOverlapEXT #-}+pattern BLEND_OVERLAP_CONJOINT_EXT = BlendOverlapEXT 2 +{-# COMPLETE+  BLEND_OVERLAP_UNCORRELATED_EXT+  , BLEND_OVERLAP_DISJOINT_EXT+  , BLEND_OVERLAP_CONJOINT_EXT ::+    BlendOverlapEXT+  #-}+ conNameBlendOverlapEXT :: String conNameBlendOverlapEXT = "BlendOverlapEXT" @@ -682,21 +696,30 @@  showTableBlendOverlapEXT :: [(BlendOverlapEXT, String)] showTableBlendOverlapEXT =-  [ (BLEND_OVERLAP_UNCORRELATED_EXT, "UNCORRELATED_EXT")-  , (BLEND_OVERLAP_DISJOINT_EXT    , "DISJOINT_EXT")-  , (BLEND_OVERLAP_CONJOINT_EXT    , "CONJOINT_EXT")+  [+    ( BLEND_OVERLAP_UNCORRELATED_EXT+    , "UNCORRELATED_EXT"+    )+  , (BLEND_OVERLAP_DISJOINT_EXT, "DISJOINT_EXT")+  , (BLEND_OVERLAP_CONJOINT_EXT, "CONJOINT_EXT")   ]  instance Show BlendOverlapEXT where-  showsPrec = enumShowsPrec enumPrefixBlendOverlapEXT-                            showTableBlendOverlapEXT-                            conNameBlendOverlapEXT-                            (\(BlendOverlapEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixBlendOverlapEXT+      showTableBlendOverlapEXT+      conNameBlendOverlapEXT+      (\(BlendOverlapEXT x) -> x)+      (showsPrec 11)  instance Read BlendOverlapEXT where-  readPrec = enumReadPrec enumPrefixBlendOverlapEXT showTableBlendOverlapEXT conNameBlendOverlapEXT BlendOverlapEXT-+  readPrec =+    enumReadPrec+      enumPrefixBlendOverlapEXT+      showTableBlendOverlapEXT+      conNameBlendOverlapEXT+      BlendOverlapEXT  type EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_EXT_border_color_swizzle.hs view
@@ -316,7 +316,8 @@     borderColorSwizzle <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     borderColorSwizzleFromImage <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceBorderColorSwizzleFeaturesEXT-             (bool32ToBool borderColorSwizzle) (bool32ToBool borderColorSwizzleFromImage)+             (bool32ToBool borderColorSwizzle)+             (bool32ToBool borderColorSwizzleFromImage)  instance Storable PhysicalDeviceBorderColorSwizzleFeaturesEXT where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_EXT_buffer_device_address.hs view
@@ -328,7 +328,9 @@     bufferDeviceAddressCaptureReplay <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     bufferDeviceAddressMultiDevice <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceBufferDeviceAddressFeaturesEXT-             (bool32ToBool bufferDeviceAddress) (bool32ToBool bufferDeviceAddressCaptureReplay) (bool32ToBool bufferDeviceAddressMultiDevice)+             (bool32ToBool bufferDeviceAddress)+             (bool32ToBool bufferDeviceAddressCaptureReplay)+             (bool32ToBool bufferDeviceAddressMultiDevice)  instance Storable PhysicalDeviceBufferDeviceAddressFeaturesEXT where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -325,11 +325,17 @@   let vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' = mkVkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPTimeDomainCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' physicalDevice' (pPTimeDomainCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT'+                                                                                   physicalDevice'+                                                                                   (pPTimeDomainCount)+                                                                                   (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pTimeDomainCount <- lift $ peek @Word32 pPTimeDomainCount   pPTimeDomains <- ContT $ bracket (callocBytes @TimeDomainEXT ((fromIntegral (pTimeDomainCount)) * 4)) free-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' physicalDevice' (pPTimeDomainCount) (pPTimeDomains))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" (vkGetPhysicalDeviceCalibrateableTimeDomainsEXT'+                                                                                    physicalDevice'+                                                                                    (pPTimeDomainCount)+                                                                                    (pPTimeDomains))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pTimeDomainCount' <- lift $ peek @Word32 pPTimeDomainCount   pTimeDomains' <- lift $ generateM (fromIntegral (pTimeDomainCount')) (\i -> peek @TimeDomainEXT ((pPTimeDomains `advancePtrBytes` (4 * (i)) :: Ptr TimeDomainEXT)))@@ -405,7 +411,12 @@   lift $ Data.Vector.imapM_ (\i e -> poke (pPTimestampInfos `plusPtr` (24 * (i)) :: Ptr CalibratedTimestampInfoEXT) (e)) (timestampInfos)   pPTimestamps <- ContT $ bracket (callocBytes @Word64 ((fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) * 8)) free   pPMaxDeviation <- ContT $ bracket (callocBytes @Word64 8) free-  r <- lift $ traceAroundEvent "vkGetCalibratedTimestampsEXT" (vkGetCalibratedTimestampsEXT' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32)) (pPTimestampInfos) (pPTimestamps) (pPMaxDeviation))+  r <- lift $ traceAroundEvent "vkGetCalibratedTimestampsEXT" (vkGetCalibratedTimestampsEXT'+                                                                 (deviceHandle (device))+                                                                 ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))+                                                                 (pPTimestampInfos)+                                                                 (pPTimestamps)+                                                                 (pPMaxDeviation))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pTimestamps <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (timestampInfos)) :: Word32))) (\i -> peek @Word64 ((pPTimestamps `advancePtrBytes` (8 * (i)) :: Ptr Word64)))   pMaxDeviation <- lift $ peek @Word64 pPMaxDeviation@@ -513,30 +524,37 @@ -- and are defined to be incrementing according to the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-timestampPeriod timestampPeriod> -- of the device.-pattern TIME_DOMAIN_DEVICE_EXT                    = TimeDomainEXT 0+pattern TIME_DOMAIN_DEVICE_EXT = TimeDomainEXT 0+ -- | 'TIME_DOMAIN_CLOCK_MONOTONIC_EXT' specifies the CLOCK_MONOTONIC time -- domain available on POSIX platforms. Timestamp values in this time -- domain are in units of nanoseconds and are comparable with platform -- timestamp values captured using the POSIX clock_gettime API as computed -- by this example:-pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT           = TimeDomainEXT 1+pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT = TimeDomainEXT 1+ -- | 'TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT' specifies the CLOCK_MONOTONIC_RAW -- time domain available on POSIX platforms. Timestamp values in this time -- domain are in units of nanoseconds and are comparable with platform -- timestamp values captured using the POSIX clock_gettime API as computed -- by this example:-pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT       = TimeDomainEXT 2+pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = TimeDomainEXT 2+ -- | 'TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT' specifies the performance -- counter (QPC) time domain available on Windows. Timestamp values in this -- time domain are in the same units as those provided by the Windows -- QueryPerformanceCounter API and are comparable with platform timestamp -- values captured using that API as computed by this example: pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = TimeDomainEXT 3-{-# complete TIME_DOMAIN_DEVICE_EXT,-             TIME_DOMAIN_CLOCK_MONOTONIC_EXT,-             TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT,-             TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT :: TimeDomainEXT #-} +{-# COMPLETE+  TIME_DOMAIN_DEVICE_EXT+  , TIME_DOMAIN_CLOCK_MONOTONIC_EXT+  , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT+  , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT ::+    TimeDomainEXT+  #-}+ conNameTimeDomainEXT :: String conNameTimeDomainEXT = "TimeDomainEXT" @@ -545,22 +563,37 @@  showTableTimeDomainEXT :: [(TimeDomainEXT, String)] showTableTimeDomainEXT =-  [ (TIME_DOMAIN_DEVICE_EXT                   , "DEVICE_EXT")-  , (TIME_DOMAIN_CLOCK_MONOTONIC_EXT          , "CLOCK_MONOTONIC_EXT")-  , (TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT      , "CLOCK_MONOTONIC_RAW_EXT")-  , (TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, "QUERY_PERFORMANCE_COUNTER_EXT")+  [ (TIME_DOMAIN_DEVICE_EXT, "DEVICE_EXT")+  ,+    ( TIME_DOMAIN_CLOCK_MONOTONIC_EXT+    , "CLOCK_MONOTONIC_EXT"+    )+  ,+    ( TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT+    , "CLOCK_MONOTONIC_RAW_EXT"+    )+  ,+    ( TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT+    , "QUERY_PERFORMANCE_COUNTER_EXT"+    )   ]  instance Show TimeDomainEXT where-  showsPrec = enumShowsPrec enumPrefixTimeDomainEXT-                            showTableTimeDomainEXT-                            conNameTimeDomainEXT-                            (\(TimeDomainEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixTimeDomainEXT+      showTableTimeDomainEXT+      conNameTimeDomainEXT+      (\(TimeDomainEXT x) -> x)+      (showsPrec 11)  instance Read TimeDomainEXT where-  readPrec = enumReadPrec enumPrefixTimeDomainEXT showTableTimeDomainEXT conNameTimeDomainEXT TimeDomainEXT-+  readPrec =+    enumReadPrec+      enumPrefixTimeDomainEXT+      showTableTimeDomainEXT+      conNameTimeDomainEXT+      TimeDomainEXT  type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_EXT_color_write_enable.hs view
@@ -258,14 +258,18 @@                              -- attachment.                              ("colorWriteEnables" ::: Vector Bool)                           -> io ()-cmdSetColorWriteEnableEXT commandBuffer colorWriteEnables = liftIO . evalContT $ do+cmdSetColorWriteEnableEXT commandBuffer+                            colorWriteEnables = liftIO . evalContT $ do   let vkCmdSetColorWriteEnableEXTPtr = pVkCmdSetColorWriteEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetColorWriteEnableEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorWriteEnableEXT is null" Nothing Nothing   let vkCmdSetColorWriteEnableEXT' = mkVkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXTPtr   pPColorWriteEnables <- ContT $ allocaBytes @Bool32 ((Data.Vector.length (colorWriteEnables)) * 4)   lift $ Data.Vector.imapM_ (\i e -> poke (pPColorWriteEnables `plusPtr` (4 * (i)) :: Ptr Bool32) (boolToBool32 (e))) (colorWriteEnables)-  lift $ traceAroundEvent "vkCmdSetColorWriteEnableEXT" (vkCmdSetColorWriteEnableEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (colorWriteEnables)) :: Word32)) (pPColorWriteEnables))+  lift $ traceAroundEvent "vkCmdSetColorWriteEnableEXT" (vkCmdSetColorWriteEnableEXT'+                                                           (commandBufferHandle (commandBuffer))+                                                           ((fromIntegral (Data.Vector.length $ (colorWriteEnables)) :: Word32))+                                                           (pPColorWriteEnables))   pure $ ()  
src/Vulkan/Extensions/VK_EXT_conditional_rendering.hs view
@@ -300,13 +300,16 @@                                    -- conditional rendering.                                    ConditionalRenderingBeginInfoEXT                                 -> io ()-cmdBeginConditionalRenderingEXT commandBuffer conditionalRenderingBegin = liftIO . evalContT $ do+cmdBeginConditionalRenderingEXT commandBuffer+                                  conditionalRenderingBegin = liftIO . evalContT $ do   let vkCmdBeginConditionalRenderingEXTPtr = pVkCmdBeginConditionalRenderingEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBeginConditionalRenderingEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginConditionalRenderingEXT is null" Nothing Nothing   let vkCmdBeginConditionalRenderingEXT' = mkVkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXTPtr   pConditionalRenderingBegin <- ContT $ withCStruct (conditionalRenderingBegin)-  lift $ traceAroundEvent "vkCmdBeginConditionalRenderingEXT" (vkCmdBeginConditionalRenderingEXT' (commandBufferHandle (commandBuffer)) pConditionalRenderingBegin)+  lift $ traceAroundEvent "vkCmdBeginConditionalRenderingEXT" (vkCmdBeginConditionalRenderingEXT'+                                                                 (commandBufferHandle (commandBuffer))+                                                                 pConditionalRenderingBegin)   pure $ ()  -- | This function will call the supplied action between calls to@@ -316,7 +319,8 @@ -- exception is thrown by the inner action. cmdUseConditionalRenderingEXT :: forall io r . MonadIO io => CommandBuffer -> ConditionalRenderingBeginInfoEXT -> io r -> io r cmdUseConditionalRenderingEXT commandBuffer pConditionalRenderingBegin a =-  (cmdBeginConditionalRenderingEXT commandBuffer pConditionalRenderingBegin) *> a <* (cmdEndConditionalRenderingEXT commandBuffer)+  (cmdBeginConditionalRenderingEXT commandBuffer+                                     pConditionalRenderingBegin) *> a <* (cmdEndConditionalRenderingEXT commandBuffer)   foreign import ccall@@ -400,7 +404,8 @@   unless (vkCmdEndConditionalRenderingEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndConditionalRenderingEXT is null" Nothing Nothing   let vkCmdEndConditionalRenderingEXT' = mkVkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXTPtr-  traceAroundEvent "vkCmdEndConditionalRenderingEXT" (vkCmdEndConditionalRenderingEXT' (commandBufferHandle (commandBuffer)))+  traceAroundEvent "vkCmdEndConditionalRenderingEXT" (vkCmdEndConditionalRenderingEXT'+                                                        (commandBufferHandle (commandBuffer)))   pure $ ()  @@ -650,7 +655,8 @@     conditionalRendering <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     inheritedConditionalRendering <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceConditionalRenderingFeaturesEXT-             (bool32ToBool conditionalRendering) (bool32ToBool inheritedConditionalRendering)+             (bool32ToBool conditionalRendering)+             (bool32ToBool inheritedConditionalRendering)  instance Storable PhysicalDeviceConditionalRenderingFeaturesEXT where   sizeOf ~_ = 24@@ -690,21 +696,29 @@ enumPrefixConditionalRenderingFlagBitsEXT = "CONDITIONAL_RENDERING_INVERTED_BIT_EXT"  showTableConditionalRenderingFlagBitsEXT :: [(ConditionalRenderingFlagBitsEXT, String)]-showTableConditionalRenderingFlagBitsEXT = [(CONDITIONAL_RENDERING_INVERTED_BIT_EXT, "")]+showTableConditionalRenderingFlagBitsEXT =+  [+    ( CONDITIONAL_RENDERING_INVERTED_BIT_EXT+    , ""+    )+  ]  instance Show ConditionalRenderingFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixConditionalRenderingFlagBitsEXT-                            showTableConditionalRenderingFlagBitsEXT-                            conNameConditionalRenderingFlagBitsEXT-                            (\(ConditionalRenderingFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixConditionalRenderingFlagBitsEXT+      showTableConditionalRenderingFlagBitsEXT+      conNameConditionalRenderingFlagBitsEXT+      (\(ConditionalRenderingFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ConditionalRenderingFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixConditionalRenderingFlagBitsEXT-                          showTableConditionalRenderingFlagBitsEXT-                          conNameConditionalRenderingFlagBitsEXT-                          ConditionalRenderingFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixConditionalRenderingFlagBitsEXT+      showTableConditionalRenderingFlagBitsEXT+      conNameConditionalRenderingFlagBitsEXT+      ConditionalRenderingFlagBitsEXT  type EXT_CONDITIONAL_RENDERING_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs view
@@ -350,7 +350,15 @@     fullyCoveredFragmentShaderInputVariable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))     conservativeRasterizationPostDepthCoverage <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))     pure $ PhysicalDeviceConservativeRasterizationPropertiesEXT-             (coerce @CFloat @Float primitiveOverestimationSize) (coerce @CFloat @Float maxExtraPrimitiveOverestimationSize) (coerce @CFloat @Float extraPrimitiveOverestimationSizeGranularity) (bool32ToBool primitiveUnderestimation) (bool32ToBool conservativePointAndLineRasterization) (bool32ToBool degenerateTrianglesRasterized) (bool32ToBool degenerateLinesRasterized) (bool32ToBool fullyCoveredFragmentShaderInputVariable) (bool32ToBool conservativeRasterizationPostDepthCoverage)+             (coerce @CFloat @Float primitiveOverestimationSize)+             (coerce @CFloat @Float maxExtraPrimitiveOverestimationSize)+             (coerce @CFloat @Float extraPrimitiveOverestimationSizeGranularity)+             (bool32ToBool primitiveUnderestimation)+             (bool32ToBool conservativePointAndLineRasterization)+             (bool32ToBool degenerateTrianglesRasterized)+             (bool32ToBool degenerateLinesRasterized)+             (bool32ToBool fullyCoveredFragmentShaderInputVariable)+             (bool32ToBool conservativeRasterizationPostDepthCoverage)  instance Storable PhysicalDeviceConservativeRasterizationPropertiesEXT where   sizeOf ~_ = 56@@ -460,7 +468,9 @@     conservativeRasterizationMode <- peek @ConservativeRasterizationModeEXT ((p `plusPtr` 20 :: Ptr ConservativeRasterizationModeEXT))     extraPrimitiveOverestimationSize <- peek @CFloat ((p `plusPtr` 24 :: Ptr CFloat))     pure $ PipelineRasterizationConservativeStateCreateInfoEXT-             flags conservativeRasterizationMode (coerce @CFloat @Float extraPrimitiveOverestimationSize)+             flags+             conservativeRasterizationMode+             (coerce @CFloat @Float extraPrimitiveOverestimationSize)  instance Storable PipelineRasterizationConservativeStateCreateInfoEXT where   sizeOf ~_ = 32@@ -490,31 +500,31 @@ newtype PipelineRasterizationConservativeStateCreateFlagsEXT = PipelineRasterizationConservativeStateCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineRasterizationConservativeStateCreateFlagsEXT :: String conNamePipelineRasterizationConservativeStateCreateFlagsEXT = "PipelineRasterizationConservativeStateCreateFlagsEXT"  enumPrefixPipelineRasterizationConservativeStateCreateFlagsEXT :: String enumPrefixPipelineRasterizationConservativeStateCreateFlagsEXT = "" -showTablePipelineRasterizationConservativeStateCreateFlagsEXT-  :: [(PipelineRasterizationConservativeStateCreateFlagsEXT, String)]+showTablePipelineRasterizationConservativeStateCreateFlagsEXT :: [(PipelineRasterizationConservativeStateCreateFlagsEXT, String)] showTablePipelineRasterizationConservativeStateCreateFlagsEXT = []  instance Show PipelineRasterizationConservativeStateCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineRasterizationConservativeStateCreateFlagsEXT-                            showTablePipelineRasterizationConservativeStateCreateFlagsEXT-                            conNamePipelineRasterizationConservativeStateCreateFlagsEXT-                            (\(PipelineRasterizationConservativeStateCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineRasterizationConservativeStateCreateFlagsEXT+      showTablePipelineRasterizationConservativeStateCreateFlagsEXT+      conNamePipelineRasterizationConservativeStateCreateFlagsEXT+      (\(PipelineRasterizationConservativeStateCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineRasterizationConservativeStateCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixPipelineRasterizationConservativeStateCreateFlagsEXT-                          showTablePipelineRasterizationConservativeStateCreateFlagsEXT-                          conNamePipelineRasterizationConservativeStateCreateFlagsEXT-                          PipelineRasterizationConservativeStateCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixPipelineRasterizationConservativeStateCreateFlagsEXT+      showTablePipelineRasterizationConservativeStateCreateFlagsEXT+      conNamePipelineRasterizationConservativeStateCreateFlagsEXT+      PipelineRasterizationConservativeStateCreateFlagsEXT  -- | VkConservativeRasterizationModeEXT - Specify the conservative -- rasterization mode@@ -522,24 +532,31 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_conservative_rasterization VK_EXT_conservative_rasterization>,--- 'PipelineRasterizationConservativeStateCreateInfoEXT'+-- 'PipelineRasterizationConservativeStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT' newtype ConservativeRasterizationModeEXT = ConservativeRasterizationModeEXT Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT' specifies that -- conservative rasterization is disabled and rasterization proceeds as -- normal.-pattern CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT      = ConservativeRasterizationModeEXT 0+pattern CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = ConservativeRasterizationModeEXT 0+ -- | 'CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT' specifies that -- conservative rasterization is enabled in overestimation mode.-pattern CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT  = ConservativeRasterizationModeEXT 1+pattern CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = ConservativeRasterizationModeEXT 1+ -- | 'CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT' specifies that -- conservative rasterization is enabled in underestimation mode. pattern CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = ConservativeRasterizationModeEXT 2-{-# complete CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT,-             CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT,-             CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT :: ConservativeRasterizationModeEXT #-} +{-# COMPLETE+  CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT+  , CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT+  , CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT ::+    ConservativeRasterizationModeEXT+  #-}+ conNameConservativeRasterizationModeEXT :: String conNameConservativeRasterizationModeEXT = "ConservativeRasterizationModeEXT" @@ -548,24 +565,36 @@  showTableConservativeRasterizationModeEXT :: [(ConservativeRasterizationModeEXT, String)] showTableConservativeRasterizationModeEXT =-  [ (CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT     , "DISABLED_EXT")-  , (CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT , "OVERESTIMATE_EXT")-  , (CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT, "UNDERESTIMATE_EXT")+  [+    ( CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT+    , "DISABLED_EXT"+    )+  ,+    ( CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT+    , "OVERESTIMATE_EXT"+    )+  ,+    ( CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT+    , "UNDERESTIMATE_EXT"+    )   ]  instance Show ConservativeRasterizationModeEXT where-  showsPrec = enumShowsPrec enumPrefixConservativeRasterizationModeEXT-                            showTableConservativeRasterizationModeEXT-                            conNameConservativeRasterizationModeEXT-                            (\(ConservativeRasterizationModeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixConservativeRasterizationModeEXT+      showTableConservativeRasterizationModeEXT+      conNameConservativeRasterizationModeEXT+      (\(ConservativeRasterizationModeEXT x) -> x)+      (showsPrec 11)  instance Read ConservativeRasterizationModeEXT where-  readPrec = enumReadPrec enumPrefixConservativeRasterizationModeEXT-                          showTableConservativeRasterizationModeEXT-                          conNameConservativeRasterizationModeEXT-                          ConservativeRasterizationModeEXT-+  readPrec =+    enumReadPrec+      enumPrefixConservativeRasterizationModeEXT+      showTableConservativeRasterizationModeEXT+      conNameConservativeRasterizationModeEXT+      ConservativeRasterizationModeEXT  type EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_conservative_rasterization.hs-boot view
@@ -154,6 +154,7 @@ -- the generator scripts, not directly. module Vulkan.Extensions.VK_EXT_conservative_rasterization  ( PhysicalDeviceConservativeRasterizationPropertiesEXT                                                             , PipelineRasterizationConservativeStateCreateInfoEXT+                                                            , ConservativeRasterizationModeEXT                                                             ) where  import Vulkan.CStruct (FromCStruct)@@ -174,4 +175,7 @@ instance Show PipelineRasterizationConservativeStateCreateInfoEXT  instance FromCStruct PipelineRasterizationConservativeStateCreateInfoEXT+++data ConservativeRasterizationModeEXT 
src/Vulkan/Extensions/VK_EXT_custom_border_color.hs view
@@ -508,7 +508,8 @@     customBorderColors <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     customBorderColorWithoutFormat <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceCustomBorderColorFeaturesEXT-             (bool32ToBool customBorderColors) (bool32ToBool customBorderColorWithoutFormat)+             (bool32ToBool customBorderColors)+             (bool32ToBool customBorderColorWithoutFormat)  instance Storable PhysicalDeviceCustomBorderColorFeaturesEXT where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_EXT_debug_marker.hs view
@@ -408,7 +408,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDebugMarkerSetObjectNameEXT is null" Nothing Nothing   let vkDebugMarkerSetObjectNameEXT' = mkVkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXTPtr   pNameInfo <- ContT $ withCStruct (nameInfo)-  r <- lift $ traceAroundEvent "vkDebugMarkerSetObjectNameEXT" (vkDebugMarkerSetObjectNameEXT' (deviceHandle (device)) pNameInfo)+  r <- lift $ traceAroundEvent "vkDebugMarkerSetObjectNameEXT" (vkDebugMarkerSetObjectNameEXT'+                                                                  (deviceHandle (device))+                                                                  pNameInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -464,7 +466,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDebugMarkerSetObjectTagEXT is null" Nothing Nothing   let vkDebugMarkerSetObjectTagEXT' = mkVkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXTPtr   pTagInfo <- ContT $ withCStruct (tagInfo)-  r <- lift $ traceAroundEvent "vkDebugMarkerSetObjectTagEXT" (vkDebugMarkerSetObjectTagEXT' (deviceHandle (device)) pTagInfo)+  r <- lift $ traceAroundEvent "vkDebugMarkerSetObjectTagEXT" (vkDebugMarkerSetObjectTagEXT'+                                                                 (deviceHandle (device))+                                                                 pTagInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -535,7 +539,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDebugMarkerBeginEXT is null" Nothing Nothing   let vkCmdDebugMarkerBeginEXT' = mkVkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXTPtr   pMarkerInfo <- ContT $ withCStruct (markerInfo)-  lift $ traceAroundEvent "vkCmdDebugMarkerBeginEXT" (vkCmdDebugMarkerBeginEXT' (commandBufferHandle (commandBuffer)) pMarkerInfo)+  lift $ traceAroundEvent "vkCmdDebugMarkerBeginEXT" (vkCmdDebugMarkerBeginEXT'+                                                        (commandBufferHandle (commandBuffer))+                                                        pMarkerInfo)   pure $ ()  @@ -619,7 +625,8 @@   unless (vkCmdDebugMarkerEndEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDebugMarkerEndEXT is null" Nothing Nothing   let vkCmdDebugMarkerEndEXT' = mkVkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXTPtr-  traceAroundEvent "vkCmdDebugMarkerEndEXT" (vkCmdDebugMarkerEndEXT' (commandBufferHandle (commandBuffer)))+  traceAroundEvent "vkCmdDebugMarkerEndEXT" (vkCmdDebugMarkerEndEXT'+                                               (commandBufferHandle (commandBuffer)))   pure $ ()  @@ -690,7 +697,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDebugMarkerInsertEXT is null" Nothing Nothing   let vkCmdDebugMarkerInsertEXT' = mkVkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXTPtr   pMarkerInfo <- ContT $ withCStruct (markerInfo)-  lift $ traceAroundEvent "vkCmdDebugMarkerInsertEXT" (vkCmdDebugMarkerInsertEXT' (commandBufferHandle (commandBuffer)) pMarkerInfo)+  lift $ traceAroundEvent "vkCmdDebugMarkerInsertEXT" (vkCmdDebugMarkerInsertEXT'+                                                         (commandBufferHandle (commandBuffer))+                                                         pMarkerInfo)   pure $ ()  @@ -958,7 +967,11 @@     color2 <- peek @CFloat ((pcolor `advancePtrBytes` 8 :: Ptr CFloat))     color3 <- peek @CFloat ((pcolor `advancePtrBytes` 12 :: Ptr CFloat))     pure $ DebugMarkerMarkerInfoEXT-             pMarkerName (((coerce @CFloat @Float color0), (coerce @CFloat @Float color1), (coerce @CFloat @Float color2), (coerce @CFloat @Float color3)))+             pMarkerName+             (( (coerce @CFloat @Float color0)+              , (coerce @CFloat @Float color1)+              , (coerce @CFloat @Float color2)+              , (coerce @CFloat @Float color3) ))  instance Zero DebugMarkerMarkerInfoEXT where   zero = DebugMarkerMarkerInfoEXT
src/Vulkan/Extensions/VK_EXT_debug_report.hs view
@@ -521,7 +521,9 @@                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (DebugReportCallbackEXT)-createDebugReportCallbackEXT instance' createInfo allocator = liftIO . evalContT $ do+createDebugReportCallbackEXT instance'+                               createInfo+                               allocator = liftIO . evalContT $ do   let vkCreateDebugReportCallbackEXTPtr = pVkCreateDebugReportCallbackEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateDebugReportCallbackEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDebugReportCallbackEXT is null" Nothing Nothing@@ -531,7 +533,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPCallback <- ContT $ bracket (callocBytes @DebugReportCallbackEXT 8) free-  r <- lift $ traceAroundEvent "vkCreateDebugReportCallbackEXT" (vkCreateDebugReportCallbackEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPCallback))+  r <- lift $ traceAroundEvent "vkCreateDebugReportCallbackEXT" (vkCreateDebugReportCallbackEXT'+                                                                   (instanceHandle (instance'))+                                                                   pCreateInfo+                                                                   pAllocator+                                                                   (pPCallback))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCallback <- lift $ peek @DebugReportCallbackEXT pPCallback   pure $ (pCallback)@@ -614,7 +620,9 @@                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io ()-destroyDebugReportCallbackEXT instance' callback allocator = liftIO . evalContT $ do+destroyDebugReportCallbackEXT instance'+                                callback+                                allocator = liftIO . evalContT $ do   let vkDestroyDebugReportCallbackEXTPtr = pVkDestroyDebugReportCallbackEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkDestroyDebugReportCallbackEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyDebugReportCallbackEXT is null" Nothing Nothing@@ -622,7 +630,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDebugReportCallbackEXT" (vkDestroyDebugReportCallbackEXT' (instanceHandle (instance')) (callback) pAllocator)+  lift $ traceAroundEvent "vkDestroyDebugReportCallbackEXT" (vkDestroyDebugReportCallbackEXT'+                                                               (instanceHandle (instance'))+                                                               (callback)+                                                               pAllocator)   pure $ ()  @@ -703,14 +714,29 @@                       -> -- | @pMessage@ is a null-terminated string detailing the trigger conditions.                          ("message" ::: ByteString)                       -> io ()-debugReportMessageEXT instance' flags objectType object location messageCode layerPrefix message = liftIO . evalContT $ do+debugReportMessageEXT instance'+                        flags+                        objectType+                        object+                        location+                        messageCode+                        layerPrefix+                        message = liftIO . evalContT $ do   let vkDebugReportMessageEXTPtr = pVkDebugReportMessageEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkDebugReportMessageEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDebugReportMessageEXT is null" Nothing Nothing   let vkDebugReportMessageEXT' = mkVkDebugReportMessageEXT vkDebugReportMessageEXTPtr   pLayerPrefix <- ContT $ useAsCString (layerPrefix)   pMessage <- ContT $ useAsCString (message)-  lift $ traceAroundEvent "vkDebugReportMessageEXT" (vkDebugReportMessageEXT' (instanceHandle (instance')) (flags) (objectType) (object) (CSize (location)) (messageCode) pLayerPrefix pMessage)+  lift $ traceAroundEvent "vkDebugReportMessageEXT" (vkDebugReportMessageEXT'+                                                       (instanceHandle (instance'))+                                                       (flags)+                                                       (objectType)+                                                       (object)+                                                       (CSize (location))+                                                       (messageCode)+                                                       pLayerPrefix+                                                       pMessage)   pure $ ()  @@ -833,7 +859,8 @@ -- | 'DEBUG_REPORT_INFORMATION_BIT_EXT' specifies an informational message -- such as resource details that may be handy when debugging an -- application.-pattern DEBUG_REPORT_INFORMATION_BIT_EXT         = DebugReportFlagBitsEXT 0x00000001+pattern DEBUG_REPORT_INFORMATION_BIT_EXT = DebugReportFlagBitsEXT 0x00000001+ -- | 'DEBUG_REPORT_WARNING_BIT_EXT' specifies use of Vulkan that /may/ expose -- an app bug. Such cases may not be immediately harmful, such as a -- fragment shader outputting to a location with no attachment. Other cases@@ -841,7 +868,8 @@ -- such as using an image whose memory has not been filled. In general if -- you see a warning but you know that the behavior is intended\/desired, -- then simply ignore the warning.-pattern DEBUG_REPORT_WARNING_BIT_EXT             = DebugReportFlagBitsEXT 0x00000002+pattern DEBUG_REPORT_WARNING_BIT_EXT = DebugReportFlagBitsEXT 0x00000002+ -- | 'DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT' specifies a potentially -- non-optimal use of Vulkan, e.g. using -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage' when setting@@ -849,12 +877,14 @@ -- 'Vulkan.Core10.Enums.AttachmentLoadOp.ATTACHMENT_LOAD_OP_CLEAR' would -- have worked. pattern DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = DebugReportFlagBitsEXT 0x00000004+ -- | 'DEBUG_REPORT_ERROR_BIT_EXT' specifies that the application has violated -- a valid usage condition of the specification.-pattern DEBUG_REPORT_ERROR_BIT_EXT               = DebugReportFlagBitsEXT 0x00000008+pattern DEBUG_REPORT_ERROR_BIT_EXT = DebugReportFlagBitsEXT 0x00000008+ -- | 'DEBUG_REPORT_DEBUG_BIT_EXT' specifies diagnostic information from the -- implementation and layers.-pattern DEBUG_REPORT_DEBUG_BIT_EXT               = DebugReportFlagBitsEXT 0x00000010+pattern DEBUG_REPORT_DEBUG_BIT_EXT = DebugReportFlagBitsEXT 0x00000010  conNameDebugReportFlagBitsEXT :: String conNameDebugReportFlagBitsEXT = "DebugReportFlagBitsEXT"@@ -864,26 +894,44 @@  showTableDebugReportFlagBitsEXT :: [(DebugReportFlagBitsEXT, String)] showTableDebugReportFlagBitsEXT =-  [ (DEBUG_REPORT_INFORMATION_BIT_EXT        , "INFORMATION_BIT_EXT")-  , (DEBUG_REPORT_WARNING_BIT_EXT            , "WARNING_BIT_EXT")-  , (DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT, "PERFORMANCE_WARNING_BIT_EXT")-  , (DEBUG_REPORT_ERROR_BIT_EXT              , "ERROR_BIT_EXT")-  , (DEBUG_REPORT_DEBUG_BIT_EXT              , "DEBUG_BIT_EXT")+  [+    ( DEBUG_REPORT_INFORMATION_BIT_EXT+    , "INFORMATION_BIT_EXT"+    )+  ,+    ( DEBUG_REPORT_WARNING_BIT_EXT+    , "WARNING_BIT_EXT"+    )+  ,+    ( DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT+    , "PERFORMANCE_WARNING_BIT_EXT"+    )+  ,+    ( DEBUG_REPORT_ERROR_BIT_EXT+    , "ERROR_BIT_EXT"+    )+  ,+    ( DEBUG_REPORT_DEBUG_BIT_EXT+    , "DEBUG_BIT_EXT"+    )   ]  instance Show DebugReportFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixDebugReportFlagBitsEXT-                            showTableDebugReportFlagBitsEXT-                            conNameDebugReportFlagBitsEXT-                            (\(DebugReportFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDebugReportFlagBitsEXT+      showTableDebugReportFlagBitsEXT+      conNameDebugReportFlagBitsEXT+      (\(DebugReportFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DebugReportFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixDebugReportFlagBitsEXT-                          showTableDebugReportFlagBitsEXT-                          conNameDebugReportFlagBitsEXT-                          DebugReportFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDebugReportFlagBitsEXT+      showTableDebugReportFlagBitsEXT+      conNameDebugReportFlagBitsEXT+      DebugReportFlagBitsEXT  -- | VkDebugReportObjectTypeEXT - Specify the type of an object handle --@@ -979,123 +1027,165 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                    = DebugReportObjectTypeEXT 0+pattern DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = DebugReportObjectTypeEXT 0+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                   = DebugReportObjectTypeEXT 1+pattern DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = DebugReportObjectTypeEXT 1+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT            = DebugReportObjectTypeEXT 2+pattern DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = DebugReportObjectTypeEXT 2+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                     = DebugReportObjectTypeEXT 3+pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = DebugReportObjectTypeEXT 3+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                      = DebugReportObjectTypeEXT 4+pattern DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = DebugReportObjectTypeEXT 4+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                  = DebugReportObjectTypeEXT 5+pattern DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = DebugReportObjectTypeEXT 5+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT             = DebugReportObjectTypeEXT 6+pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = DebugReportObjectTypeEXT 6+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                      = DebugReportObjectTypeEXT 7+pattern DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = DebugReportObjectTypeEXT 7+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT              = DebugReportObjectTypeEXT 8+pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = DebugReportObjectTypeEXT 8+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                     = DebugReportObjectTypeEXT 9+pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = DebugReportObjectTypeEXT 9+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                      = DebugReportObjectTypeEXT 10+pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = DebugReportObjectTypeEXT 10+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                      = DebugReportObjectTypeEXT 11+pattern DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = DebugReportObjectTypeEXT 11+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                 = DebugReportObjectTypeEXT 12+pattern DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = DebugReportObjectTypeEXT 12+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT                = DebugReportObjectTypeEXT 13+pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = DebugReportObjectTypeEXT 13+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                 = DebugReportObjectTypeEXT 14+pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = DebugReportObjectTypeEXT 14+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT              = DebugReportObjectTypeEXT 15+pattern DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = DebugReportObjectTypeEXT 15+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT             = DebugReportObjectTypeEXT 16+pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = DebugReportObjectTypeEXT 16+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT            = DebugReportObjectTypeEXT 17+pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = DebugReportObjectTypeEXT 17+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT                = DebugReportObjectTypeEXT 18+pattern DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = DebugReportObjectTypeEXT 18+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                   = DebugReportObjectTypeEXT 19+pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = DebugReportObjectTypeEXT 19+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT      = DebugReportObjectTypeEXT 20+pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = DebugReportObjectTypeEXT 20+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                    = DebugReportObjectTypeEXT 21+pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = DebugReportObjectTypeEXT 21+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT            = DebugReportObjectTypeEXT 22+pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = DebugReportObjectTypeEXT 22+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT             = DebugReportObjectTypeEXT 23+pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = DebugReportObjectTypeEXT 23+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT                = DebugReportObjectTypeEXT 24+pattern DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = DebugReportObjectTypeEXT 24+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT               = DebugReportObjectTypeEXT 25+pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = DebugReportObjectTypeEXT 25+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT                = DebugReportObjectTypeEXT 26+pattern DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = DebugReportObjectTypeEXT 26+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT              = DebugReportObjectTypeEXT 27+pattern DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = DebugReportObjectTypeEXT 27+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT  = DebugReportObjectTypeEXT 28+pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = DebugReportObjectTypeEXT 28+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT                = DebugReportObjectTypeEXT 29+pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = DebugReportObjectTypeEXT 29+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT           = DebugReportObjectTypeEXT 30+pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = DebugReportObjectTypeEXT 30+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT       = DebugReportObjectTypeEXT 33+pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = DebugReportObjectTypeEXT 33+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT  = DebugReportObjectTypeEXT 1000366000+pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = DebugReportObjectTypeEXT 1000366000+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT  = DebugReportObjectTypeEXT 1000165000+pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = DebugReportObjectTypeEXT 1000165000+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT   = DebugReportObjectTypeEXT 1000156000+pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = DebugReportObjectTypeEXT 1000156000+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = DebugReportObjectTypeEXT 1000150000+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT            = DebugReportObjectTypeEXT 1000029001+pattern DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = DebugReportObjectTypeEXT 1000029001+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT"-pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT              = DebugReportObjectTypeEXT 1000029000+pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = DebugReportObjectTypeEXT 1000029000+ -- No documentation found for Nested "VkDebugReportObjectTypeEXT" "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT" pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = DebugReportObjectTypeEXT 1000085000-{-# complete DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT,-             DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT,-             DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT,-             DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,-             DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT,-             DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT,-             DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,-             DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT,-             DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT,-             DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT,-             DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT,-             DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT,-             DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT,-             DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT,-             DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT,-             DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT,-             DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,-             DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT,-             DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT,-             DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,-             DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT,-             DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT,-             DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT,-             DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT #-} +{-# COMPLETE+  DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT+  , DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT+  , DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT+  , DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT+  , DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT+  , DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT+  , DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT+  , DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT+  , DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT+  , DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT+  , DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT+  , DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT+  , DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT+  , DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT+  , DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT+  , DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT+  , DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT+  , DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT+  , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT+  , DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT+  , DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT+  , DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT+  , DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT+  , DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT ::+    DebugReportObjectTypeEXT+  #-}+ conNameDebugReportObjectTypeEXT :: String conNameDebugReportObjectTypeEXT = "DebugReportObjectTypeEXT" @@ -1104,60 +1194,180 @@  showTableDebugReportObjectTypeEXT :: [(DebugReportObjectTypeEXT, String)] showTableDebugReportObjectTypeEXT =-  [ (DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT                   , "UNKNOWN_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT                  , "INSTANCE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT           , "PHYSICAL_DEVICE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT                    , "DEVICE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT                     , "QUEUE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT                 , "SEMAPHORE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT            , "COMMAND_BUFFER_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT                     , "FENCE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT             , "DEVICE_MEMORY_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT                    , "BUFFER_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT                     , "IMAGE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT                     , "EVENT_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT                , "QUERY_POOL_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT               , "BUFFER_VIEW_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT                , "IMAGE_VIEW_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT             , "SHADER_MODULE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT            , "PIPELINE_CACHE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT           , "PIPELINE_LAYOUT_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT               , "RENDER_PASS_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT                  , "PIPELINE_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT     , "DESCRIPTOR_SET_LAYOUT_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT                   , "SAMPLER_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT           , "DESCRIPTOR_POOL_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT            , "DESCRIPTOR_SET_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT               , "FRAMEBUFFER_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT              , "COMMAND_POOL_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT               , "SURFACE_KHR_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT             , "SWAPCHAIN_KHR_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT , "DEBUG_REPORT_CALLBACK_EXT_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT               , "DISPLAY_KHR_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT          , "DISPLAY_MODE_KHR_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT      , "VALIDATION_CACHE_EXT_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT , "BUFFER_COLLECTION_FUCHSIA_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT , "ACCELERATION_STRUCTURE_NV_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT  , "SAMPLER_YCBCR_CONVERSION_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, "ACCELERATION_STRUCTURE_KHR_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT           , "CU_FUNCTION_NVX_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT             , "CU_MODULE_NVX_EXT")-  , (DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, "DESCRIPTOR_UPDATE_TEMPLATE_EXT")+  [+    ( DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT+    , "UNKNOWN_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT+    , "INSTANCE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT+    , "PHYSICAL_DEVICE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT+    , "DEVICE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT+    , "QUEUE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT+    , "SEMAPHORE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT+    , "COMMAND_BUFFER_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT+    , "FENCE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT+    , "DEVICE_MEMORY_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT+    , "BUFFER_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT+    , "IMAGE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT+    , "EVENT_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT+    , "QUERY_POOL_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT+    , "BUFFER_VIEW_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT+    , "IMAGE_VIEW_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT+    , "SHADER_MODULE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT+    , "PIPELINE_CACHE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT+    , "PIPELINE_LAYOUT_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT+    , "RENDER_PASS_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT+    , "PIPELINE_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT+    , "DESCRIPTOR_SET_LAYOUT_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT+    , "SAMPLER_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT+    , "DESCRIPTOR_POOL_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT+    , "DESCRIPTOR_SET_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT+    , "FRAMEBUFFER_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT+    , "COMMAND_POOL_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT+    , "SURFACE_KHR_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT+    , "SWAPCHAIN_KHR_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT+    , "DEBUG_REPORT_CALLBACK_EXT_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT+    , "DISPLAY_KHR_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT+    , "DISPLAY_MODE_KHR_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT+    , "VALIDATION_CACHE_EXT_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT+    , "BUFFER_COLLECTION_FUCHSIA_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT+    , "ACCELERATION_STRUCTURE_NV_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT+    , "SAMPLER_YCBCR_CONVERSION_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT+    , "ACCELERATION_STRUCTURE_KHR_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT+    , "CU_FUNCTION_NVX_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT+    , "CU_MODULE_NVX_EXT"+    )+  ,+    ( DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT+    , "DESCRIPTOR_UPDATE_TEMPLATE_EXT"+    )   ]  instance Show DebugReportObjectTypeEXT where-  showsPrec = enumShowsPrec enumPrefixDebugReportObjectTypeEXT-                            showTableDebugReportObjectTypeEXT-                            conNameDebugReportObjectTypeEXT-                            (\(DebugReportObjectTypeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDebugReportObjectTypeEXT+      showTableDebugReportObjectTypeEXT+      conNameDebugReportObjectTypeEXT+      (\(DebugReportObjectTypeEXT x) -> x)+      (showsPrec 11)  instance Read DebugReportObjectTypeEXT where-  readPrec = enumReadPrec enumPrefixDebugReportObjectTypeEXT-                          showTableDebugReportObjectTypeEXT-                          conNameDebugReportObjectTypeEXT-                          DebugReportObjectTypeEXT-+  readPrec =+    enumReadPrec+      enumPrefixDebugReportObjectTypeEXT+      showTableDebugReportObjectTypeEXT+      conNameDebugReportObjectTypeEXT+      DebugReportObjectTypeEXT  type FN_vkDebugReportCallbackEXT = DebugReportFlagsEXT -> DebugReportObjectTypeEXT -> ("object" ::: Word64) -> ("location" ::: CSize) -> ("messageCode" ::: Int32) -> ("pLayerPrefix" ::: Ptr CChar) -> ("pMessage" ::: Ptr CChar) -> ("pUserData" ::: Ptr ()) -> IO Bool32 -- | PFN_vkDebugReportCallbackEXT - Application-defined debug report callback
src/Vulkan/Extensions/VK_EXT_debug_utils.hs view
@@ -516,6 +516,7 @@                                              , DebugUtilsMessageTypeFlagBitsEXT( DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT                                                                                , DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT                                                                                , DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT+                                                                               , DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT                                                                                , ..                                                                                )                                              , PFN_vkDebugUtilsMessengerCallbackEXT@@ -534,12 +535,14 @@ import Control.Exception.Base (bracket) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) import Foreign.Marshal.Alloc (callocBytes) import Foreign.Marshal.Alloc (free) import Foreign.Marshal.Utils (maybePeek) import GHC.Base (when) import GHC.IO (throwIO)+import GHC.Ptr (castPtr) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr)@@ -563,6 +566,7 @@ import Data.Bits (Bits) import Data.Bits (FiniteBits) import Data.String (IsString)+import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable) import Foreign.C.Types (CChar) import Foreign.C.Types (CFloat)@@ -590,10 +594,12 @@ 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.NamedType ((:::)) import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (CommandBuffer) import Vulkan.Core10.Handles (CommandBuffer(..)) import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))@@ -603,6 +609,7 @@ import Vulkan.Core10.Handles (Device) import Vulkan.Core10.Handles (Device(..)) import Vulkan.Core10.Handles (Device(Device))+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_device_address_binding_report (DeviceAddressBindingCallbackDataEXT) import Vulkan.Dynamic (DeviceCmds(pVkCmdBeginDebugUtilsLabelEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdEndDebugUtilsLabelEXT)) import Vulkan.Dynamic (DeviceCmds(pVkCmdInsertDebugUtilsLabelEXT))@@ -612,6 +619,9 @@ import Vulkan.Dynamic (DeviceCmds(pVkSetDebugUtilsObjectNameEXT)) import Vulkan.Dynamic (DeviceCmds(pVkSetDebugUtilsObjectTagEXT)) import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..)) import Vulkan.Core10.FundamentalTypes (Flags) import Vulkan.Core10.Handles (Instance) import Vulkan.Core10.Handles (Instance(..))@@ -621,12 +631,17 @@ import Vulkan.Dynamic (InstanceCmds(pVkSubmitDebugUtilsMessageEXT)) import Vulkan.Core10.Handles (Instance_T) import Vulkan.Core10.Enums.ObjectType (ObjectType)+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..)) 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 Vulkan.CStruct.Extends (SomeStruct) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT))@@ -699,7 +714,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetDebugUtilsObjectNameEXT is null" Nothing Nothing   let vkSetDebugUtilsObjectNameEXT' = mkVkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXTPtr   pNameInfo <- ContT $ withCStruct (nameInfo)-  r <- lift $ traceAroundEvent "vkSetDebugUtilsObjectNameEXT" (vkSetDebugUtilsObjectNameEXT' (deviceHandle (device)) pNameInfo)+  r <- lift $ traceAroundEvent "vkSetDebugUtilsObjectNameEXT" (vkSetDebugUtilsObjectNameEXT'+                                                                 (deviceHandle (device))+                                                                 pNameInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -756,7 +773,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetDebugUtilsObjectTagEXT is null" Nothing Nothing   let vkSetDebugUtilsObjectTagEXT' = mkVkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXTPtr   pTagInfo <- ContT $ withCStruct (tagInfo)-  r <- lift $ traceAroundEvent "vkSetDebugUtilsObjectTagEXT" (vkSetDebugUtilsObjectTagEXT' (deviceHandle (device)) pTagInfo)+  r <- lift $ traceAroundEvent "vkSetDebugUtilsObjectTagEXT" (vkSetDebugUtilsObjectTagEXT'+                                                                (deviceHandle (device))+                                                                pTagInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -802,7 +821,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueBeginDebugUtilsLabelEXT is null" Nothing Nothing   let vkQueueBeginDebugUtilsLabelEXT' = mkVkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXTPtr   pLabelInfo <- ContT $ withCStruct (labelInfo)-  lift $ traceAroundEvent "vkQueueBeginDebugUtilsLabelEXT" (vkQueueBeginDebugUtilsLabelEXT' (queueHandle (queue)) pLabelInfo)+  lift $ traceAroundEvent "vkQueueBeginDebugUtilsLabelEXT" (vkQueueBeginDebugUtilsLabelEXT'+                                                              (queueHandle (queue))+                                                              pLabelInfo)   pure $ ()  @@ -854,7 +875,8 @@   unless (vkQueueEndDebugUtilsLabelEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueEndDebugUtilsLabelEXT is null" Nothing Nothing   let vkQueueEndDebugUtilsLabelEXT' = mkVkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXTPtr-  traceAroundEvent "vkQueueEndDebugUtilsLabelEXT" (vkQueueEndDebugUtilsLabelEXT' (queueHandle (queue)))+  traceAroundEvent "vkQueueEndDebugUtilsLabelEXT" (vkQueueEndDebugUtilsLabelEXT'+                                                     (queueHandle (queue)))   pure $ ()  @@ -900,7 +922,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueInsertDebugUtilsLabelEXT is null" Nothing Nothing   let vkQueueInsertDebugUtilsLabelEXT' = mkVkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXTPtr   pLabelInfo <- ContT $ withCStruct (labelInfo)-  lift $ traceAroundEvent "vkQueueInsertDebugUtilsLabelEXT" (vkQueueInsertDebugUtilsLabelEXT' (queueHandle (queue)) pLabelInfo)+  lift $ traceAroundEvent "vkQueueInsertDebugUtilsLabelEXT" (vkQueueInsertDebugUtilsLabelEXT'+                                                               (queueHandle (queue))+                                                               pLabelInfo)   pure $ ()  @@ -971,7 +995,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginDebugUtilsLabelEXT is null" Nothing Nothing   let vkCmdBeginDebugUtilsLabelEXT' = mkVkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXTPtr   pLabelInfo <- ContT $ withCStruct (labelInfo)-  lift $ traceAroundEvent "vkCmdBeginDebugUtilsLabelEXT" (vkCmdBeginDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)) pLabelInfo)+  lift $ traceAroundEvent "vkCmdBeginDebugUtilsLabelEXT" (vkCmdBeginDebugUtilsLabelEXT'+                                                            (commandBufferHandle (commandBuffer))+                                                            pLabelInfo)   pure $ ()  -- | This function will call the supplied action between calls to@@ -981,7 +1007,8 @@ -- thrown by the inner action. cmdUseDebugUtilsLabelEXT :: forall io r . MonadIO io => CommandBuffer -> DebugUtilsLabelEXT -> io r -> io r cmdUseDebugUtilsLabelEXT commandBuffer pLabelInfo a =-  (cmdBeginDebugUtilsLabelEXT commandBuffer pLabelInfo) *> a <* (cmdEndDebugUtilsLabelEXT commandBuffer)+  (cmdBeginDebugUtilsLabelEXT commandBuffer+                                pLabelInfo) *> a <* (cmdEndDebugUtilsLabelEXT commandBuffer)   foreign import ccall@@ -1076,7 +1103,8 @@   unless (vkCmdEndDebugUtilsLabelEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndDebugUtilsLabelEXT is null" Nothing Nothing   let vkCmdEndDebugUtilsLabelEXT' = mkVkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXTPtr-  traceAroundEvent "vkCmdEndDebugUtilsLabelEXT" (vkCmdEndDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)))+  traceAroundEvent "vkCmdEndDebugUtilsLabelEXT" (vkCmdEndDebugUtilsLabelEXT'+                                                   (commandBufferHandle (commandBuffer)))   pure $ ()  @@ -1146,7 +1174,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdInsertDebugUtilsLabelEXT is null" Nothing Nothing   let vkCmdInsertDebugUtilsLabelEXT' = mkVkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXTPtr   pLabelInfo <- ContT $ withCStruct (labelInfo)-  lift $ traceAroundEvent "vkCmdInsertDebugUtilsLabelEXT" (vkCmdInsertDebugUtilsLabelEXT' (commandBufferHandle (commandBuffer)) pLabelInfo)+  lift $ traceAroundEvent "vkCmdInsertDebugUtilsLabelEXT" (vkCmdInsertDebugUtilsLabelEXT'+                                                             (commandBufferHandle (commandBuffer))+                                                             pLabelInfo)   pure $ ()  @@ -1211,7 +1241,9 @@                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (DebugUtilsMessengerEXT)-createDebugUtilsMessengerEXT instance' createInfo allocator = liftIO . evalContT $ do+createDebugUtilsMessengerEXT instance'+                               createInfo+                               allocator = liftIO . evalContT $ do   let vkCreateDebugUtilsMessengerEXTPtr = pVkCreateDebugUtilsMessengerEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateDebugUtilsMessengerEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDebugUtilsMessengerEXT is null" Nothing Nothing@@ -1221,7 +1253,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPMessenger <- ContT $ bracket (callocBytes @DebugUtilsMessengerEXT 8) free-  r <- lift $ traceAroundEvent "vkCreateDebugUtilsMessengerEXT" (vkCreateDebugUtilsMessengerEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPMessenger))+  r <- lift $ traceAroundEvent "vkCreateDebugUtilsMessengerEXT" (vkCreateDebugUtilsMessengerEXT'+                                                                   (instanceHandle (instance'))+                                                                   pCreateInfo+                                                                   pAllocator+                                                                   (pPMessenger))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMessenger <- lift $ peek @DebugUtilsMessengerEXT pPMessenger   pure $ (pMessenger)@@ -1308,7 +1344,9 @@                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io ()-destroyDebugUtilsMessengerEXT instance' messenger allocator = liftIO . evalContT $ do+destroyDebugUtilsMessengerEXT instance'+                                messenger+                                allocator = liftIO . evalContT $ do   let vkDestroyDebugUtilsMessengerEXTPtr = pVkDestroyDebugUtilsMessengerEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkDestroyDebugUtilsMessengerEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyDebugUtilsMessengerEXT is null" Nothing Nothing@@ -1316,7 +1354,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDebugUtilsMessengerEXT" (vkDestroyDebugUtilsMessengerEXT' (instanceHandle (instance')) (messenger) pAllocator)+  lift $ traceAroundEvent "vkDestroyDebugUtilsMessengerEXT" (vkDestroyDebugUtilsMessengerEXT'+                                                               (instanceHandle (instance'))+                                                               (messenger)+                                                               pAllocator)   pure $ ()  @@ -1325,7 +1366,7 @@   unsafe #endif   "dynamic" mkVkSubmitDebugUtilsMessageEXT-  :: FunPtr (Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> DebugUtilsMessageTypeFlagsEXT -> Ptr DebugUtilsMessengerCallbackDataEXT -> IO ()) -> Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> DebugUtilsMessageTypeFlagsEXT -> Ptr DebugUtilsMessengerCallbackDataEXT -> IO ()+  :: FunPtr (Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> DebugUtilsMessageTypeFlagsEXT -> Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT) -> IO ()) -> Ptr Instance_T -> DebugUtilsMessageSeverityFlagBitsEXT -> DebugUtilsMessageTypeFlagsEXT -> Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT) -> IO ()  -- | vkSubmitDebugUtilsMessageEXT - Inject a message into a debug stream --@@ -1367,8 +1408,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_debug_utils VK_EXT_debug_utils>, -- 'DebugUtilsMessageSeverityFlagBitsEXT', 'DebugUtilsMessageTypeFlagsEXT', -- 'DebugUtilsMessengerCallbackDataEXT', 'Vulkan.Core10.Handles.Instance'-submitDebugUtilsMessageEXT :: forall io-                            . (MonadIO io)+submitDebugUtilsMessageEXT :: forall a io+                            . ( Extendss DebugUtilsMessengerCallbackDataEXT a+                              , PokeChain a+                              , MonadIO io )                            => -- | @instance@ is the debug stream’s 'Vulkan.Core10.Handles.Instance'.                               Instance                            -> -- | @messageSeverity@ is a 'DebugUtilsMessageSeverityFlagBitsEXT' value@@ -1379,15 +1422,22 @@                               ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT)                            -> -- | @pCallbackData@ contains all the callback related data in the                               -- 'DebugUtilsMessengerCallbackDataEXT' structure.-                              DebugUtilsMessengerCallbackDataEXT+                              (DebugUtilsMessengerCallbackDataEXT a)                            -> io ()-submitDebugUtilsMessageEXT instance' messageSeverity messageTypes callbackData = liftIO . evalContT $ do+submitDebugUtilsMessageEXT instance'+                             messageSeverity+                             messageTypes+                             callbackData = liftIO . evalContT $ do   let vkSubmitDebugUtilsMessageEXTPtr = pVkSubmitDebugUtilsMessageEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkSubmitDebugUtilsMessageEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSubmitDebugUtilsMessageEXT is null" Nothing Nothing   let vkSubmitDebugUtilsMessageEXT' = mkVkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXTPtr   pCallbackData <- ContT $ withCStruct (callbackData)-  lift $ traceAroundEvent "vkSubmitDebugUtilsMessageEXT" (vkSubmitDebugUtilsMessageEXT' (instanceHandle (instance')) (messageSeverity) (messageTypes) pCallbackData)+  lift $ traceAroundEvent "vkSubmitDebugUtilsMessageEXT" (vkSubmitDebugUtilsMessageEXT'+                                                            (instanceHandle (instance'))+                                                            (messageSeverity)+                                                            (messageTypes)+                                                            (forgetExtensions pCallbackData))   pure $ ()  @@ -1584,7 +1634,11 @@     tagSize <- peek @CSize ((p `plusPtr` 40 :: Ptr CSize))     pTag <- peek @(Ptr ()) ((p `plusPtr` 48 :: Ptr (Ptr ())))     pure $ DebugUtilsObjectTagInfoEXT-             objectType objectHandle tagName (coerce @CSize @Word64 tagSize) pTag+             objectType+             objectHandle+             tagName+             (coerce @CSize @Word64 tagSize)+             pTag  instance Storable DebugUtilsObjectTagInfoEXT where   sizeOf ~_ = 56@@ -1671,7 +1725,11 @@     color2 <- peek @CFloat ((pcolor `advancePtrBytes` 8 :: Ptr CFloat))     color3 <- peek @CFloat ((pcolor `advancePtrBytes` 12 :: Ptr CFloat))     pure $ DebugUtilsLabelEXT-             pLabelName (((coerce @CFloat @Float color0), (coerce @CFloat @Float color1), (coerce @CFloat @Float color2), (coerce @CFloat @Float color3)))+             pLabelName+             (( (coerce @CFloat @Float color0)+              , (coerce @CFloat @Float color1)+              , (coerce @CFloat @Float color2)+              , (coerce @CFloat @Float color3) ))  instance Zero DebugUtilsLabelEXT where   zero = DebugUtilsLabelEXT@@ -1863,8 +1921,12 @@ --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT' -- -- -   #VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext# @pNext@---     /must/ be @NULL@+--     /must/ be @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_EXT_device_address_binding_report.DeviceAddressBindingCallbackDataEXT' --+-- -   #VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-unique# The @sType@+--     value of each struct in the @pNext@ chain /must/ be unique+-- -- -   #VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask# --     @flags@ /must/ be @0@ --@@ -1897,8 +1959,10 @@ -- 'DebugUtilsObjectNameInfoEXT', -- 'Vulkan.Core10.Enums.StructureType.StructureType', -- 'submitDebugUtilsMessageEXT'-data DebugUtilsMessengerCallbackDataEXT = DebugUtilsMessengerCallbackDataEXT-  { -- | @flags@ is @0@ and is reserved for future use.+data DebugUtilsMessengerCallbackDataEXT (es :: [Type]) = DebugUtilsMessengerCallbackDataEXT+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @flags@ is @0@ and is reserved for future use.     flags :: DebugUtilsMessengerCallbackDataFlagsEXT   , -- | @pMessageIdName@ is a null-terminated string that identifies the     -- particular message ID that is associated with the provided message. If@@ -1934,15 +1998,26 @@   }   deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (DebugUtilsMessengerCallbackDataEXT)+deriving instance Generic (DebugUtilsMessengerCallbackDataEXT (es :: [Type])) #endif-deriving instance Show DebugUtilsMessengerCallbackDataEXT+deriving instance Show (Chain es) => Show (DebugUtilsMessengerCallbackDataEXT es) -instance ToCStruct DebugUtilsMessengerCallbackDataEXT where+instance Extensible DebugUtilsMessengerCallbackDataEXT where+  extensibleTypeName = "DebugUtilsMessengerCallbackDataEXT"+  setNext DebugUtilsMessengerCallbackDataEXT{..} next' = DebugUtilsMessengerCallbackDataEXT{next = next', ..}+  getNext DebugUtilsMessengerCallbackDataEXT{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends DebugUtilsMessengerCallbackDataEXT e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @DeviceAddressBindingCallbackDataEXT = Just f+    | otherwise = Nothing++instance ( Extendss DebugUtilsMessengerCallbackDataEXT es+         , PokeChain es ) => ToCStruct (DebugUtilsMessengerCallbackDataEXT es) where   withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)   pokeCStruct p DebugUtilsMessengerCallbackDataEXT{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''     lift $ poke ((p `plusPtr` 16 :: Ptr DebugUtilsMessengerCallbackDataFlagsEXT)) (flags)     pMessageIdName'' <- case (messageIdName) of       Nothing -> pure nullPtr@@ -1968,14 +2043,18 @@   cStructAlignment = 8   pokeZeroCStruct p f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ poke ((p `plusPtr` 32 :: Ptr Int32)) (zero)     pMessage'' <- ContT $ useAsCString (mempty)     lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CChar))) pMessage''     lift $ f -instance FromCStruct DebugUtilsMessengerCallbackDataEXT where+instance ( Extendss DebugUtilsMessengerCallbackDataEXT es+         , PeekChain es ) => FromCStruct (DebugUtilsMessengerCallbackDataEXT es) where   peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)     flags <- peek @DebugUtilsMessengerCallbackDataFlagsEXT ((p `plusPtr` 16 :: Ptr DebugUtilsMessengerCallbackDataFlagsEXT))     pMessageIdName <- peek @(Ptr CChar) ((p `plusPtr` 24 :: Ptr (Ptr CChar)))     pMessageIdName' <- maybePeek (\j -> packCString (j)) pMessageIdName@@ -1991,10 +2070,18 @@     pObjects <- peek @(Ptr DebugUtilsObjectNameInfoEXT) ((p `plusPtr` 88 :: Ptr (Ptr DebugUtilsObjectNameInfoEXT)))     pObjects' <- generateM (fromIntegral objectCount) (\i -> peekCStruct @DebugUtilsObjectNameInfoEXT ((pObjects `advancePtrBytes` (40 * (i)) :: Ptr DebugUtilsObjectNameInfoEXT)))     pure $ DebugUtilsMessengerCallbackDataEXT-             flags pMessageIdName' messageIdNumber pMessage pQueueLabels' pCmdBufLabels' pObjects'+             next+             flags+             pMessageIdName'+             messageIdNumber+             pMessage+             pQueueLabels'+             pCmdBufLabels'+             pObjects' -instance Zero DebugUtilsMessengerCallbackDataEXT where+instance es ~ '[] => Zero (DebugUtilsMessengerCallbackDataEXT es) where   zero = DebugUtilsMessengerCallbackDataEXT+           ()            zero            Nothing            zero@@ -2018,8 +2105,6 @@ newtype DebugUtilsMessengerCreateFlagsEXT = DebugUtilsMessengerCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDebugUtilsMessengerCreateFlagsEXT :: String conNameDebugUtilsMessengerCreateFlagsEXT = "DebugUtilsMessengerCreateFlagsEXT" @@ -2030,18 +2115,21 @@ showTableDebugUtilsMessengerCreateFlagsEXT = []  instance Show DebugUtilsMessengerCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixDebugUtilsMessengerCreateFlagsEXT-                            showTableDebugUtilsMessengerCreateFlagsEXT-                            conNameDebugUtilsMessengerCreateFlagsEXT-                            (\(DebugUtilsMessengerCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDebugUtilsMessengerCreateFlagsEXT+      showTableDebugUtilsMessengerCreateFlagsEXT+      conNameDebugUtilsMessengerCreateFlagsEXT+      (\(DebugUtilsMessengerCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DebugUtilsMessengerCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixDebugUtilsMessengerCreateFlagsEXT-                          showTableDebugUtilsMessengerCreateFlagsEXT-                          conNameDebugUtilsMessengerCreateFlagsEXT-                          DebugUtilsMessengerCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDebugUtilsMessengerCreateFlagsEXT+      showTableDebugUtilsMessengerCreateFlagsEXT+      conNameDebugUtilsMessengerCreateFlagsEXT+      DebugUtilsMessengerCreateFlagsEXT  -- | VkDebugUtilsMessengerCallbackDataFlagsEXT - Reserved for future use --@@ -2057,8 +2145,6 @@ newtype DebugUtilsMessengerCallbackDataFlagsEXT = DebugUtilsMessengerCallbackDataFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDebugUtilsMessengerCallbackDataFlagsEXT :: String conNameDebugUtilsMessengerCallbackDataFlagsEXT = "DebugUtilsMessengerCallbackDataFlagsEXT" @@ -2069,18 +2155,21 @@ showTableDebugUtilsMessengerCallbackDataFlagsEXT = []  instance Show DebugUtilsMessengerCallbackDataFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixDebugUtilsMessengerCallbackDataFlagsEXT-                            showTableDebugUtilsMessengerCallbackDataFlagsEXT-                            conNameDebugUtilsMessengerCallbackDataFlagsEXT-                            (\(DebugUtilsMessengerCallbackDataFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDebugUtilsMessengerCallbackDataFlagsEXT+      showTableDebugUtilsMessengerCallbackDataFlagsEXT+      conNameDebugUtilsMessengerCallbackDataFlagsEXT+      (\(DebugUtilsMessengerCallbackDataFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DebugUtilsMessengerCallbackDataFlagsEXT where-  readPrec = enumReadPrec enumPrefixDebugUtilsMessengerCallbackDataFlagsEXT-                          showTableDebugUtilsMessengerCallbackDataFlagsEXT-                          conNameDebugUtilsMessengerCallbackDataFlagsEXT-                          DebugUtilsMessengerCallbackDataFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDebugUtilsMessengerCallbackDataFlagsEXT+      showTableDebugUtilsMessengerCallbackDataFlagsEXT+      conNameDebugUtilsMessengerCallbackDataFlagsEXT+      DebugUtilsMessengerCallbackDataFlagsEXT  type DebugUtilsMessageSeverityFlagsEXT = DebugUtilsMessageSeverityFlagBitsEXT @@ -2116,10 +2205,12 @@ -- verbose output indicating all diagnostic messages from the Vulkan -- loader, layers, and drivers should be captured. pattern DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = DebugUtilsMessageSeverityFlagBitsEXT 0x00000001+ -- | 'DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT' specifies an informational -- message such as resource details that may be handy when debugging an -- application.-pattern DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT    = DebugUtilsMessageSeverityFlagBitsEXT 0x00000010+pattern DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = DebugUtilsMessageSeverityFlagBitsEXT 0x00000010+ -- | 'DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT' specifies use of Vulkan -- that /may/ expose an app bug. Such cases may not be immediately harmful, -- such as a fragment shader outputting to a location with no attachment.@@ -2128,9 +2219,10 @@ -- general if you see a warning but you know that the behavior is -- intended\/desired, then simply ignore the warning. pattern DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = DebugUtilsMessageSeverityFlagBitsEXT 0x00000100+ -- | 'DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT' specifies that the -- application has violated a valid usage condition of the specification.-pattern DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT   = DebugUtilsMessageSeverityFlagBitsEXT 0x00001000+pattern DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = DebugUtilsMessageSeverityFlagBitsEXT 0x00001000  conNameDebugUtilsMessageSeverityFlagBitsEXT :: String conNameDebugUtilsMessageSeverityFlagBitsEXT = "DebugUtilsMessageSeverityFlagBitsEXT"@@ -2140,25 +2232,40 @@  showTableDebugUtilsMessageSeverityFlagBitsEXT :: [(DebugUtilsMessageSeverityFlagBitsEXT, String)] showTableDebugUtilsMessageSeverityFlagBitsEXT =-  [ (DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT, "VERBOSE_BIT_EXT")-  , (DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT   , "INFO_BIT_EXT")-  , (DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, "WARNING_BIT_EXT")-  , (DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT  , "ERROR_BIT_EXT")+  [+    ( DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT+    , "VERBOSE_BIT_EXT"+    )+  ,+    ( DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT+    , "INFO_BIT_EXT"+    )+  ,+    ( DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT+    , "WARNING_BIT_EXT"+    )+  ,+    ( DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT+    , "ERROR_BIT_EXT"+    )   ]  instance Show DebugUtilsMessageSeverityFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixDebugUtilsMessageSeverityFlagBitsEXT-                            showTableDebugUtilsMessageSeverityFlagBitsEXT-                            conNameDebugUtilsMessageSeverityFlagBitsEXT-                            (\(DebugUtilsMessageSeverityFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDebugUtilsMessageSeverityFlagBitsEXT+      showTableDebugUtilsMessageSeverityFlagBitsEXT+      conNameDebugUtilsMessageSeverityFlagBitsEXT+      (\(DebugUtilsMessageSeverityFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DebugUtilsMessageSeverityFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixDebugUtilsMessageSeverityFlagBitsEXT-                          showTableDebugUtilsMessageSeverityFlagBitsEXT-                          conNameDebugUtilsMessageSeverityFlagBitsEXT-                          DebugUtilsMessageSeverityFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDebugUtilsMessageSeverityFlagBitsEXT+      showTableDebugUtilsMessageSeverityFlagBitsEXT+      conNameDebugUtilsMessageSeverityFlagBitsEXT+      DebugUtilsMessageSeverityFlagBitsEXT  type DebugUtilsMessageTypeFlagsEXT = DebugUtilsMessageTypeFlagBitsEXT @@ -2175,11 +2282,13 @@ -- | 'DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT' specifies that some general -- event has occurred. This is typically a non-specification, -- non-performance event.-pattern DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT     = DebugUtilsMessageTypeFlagBitsEXT 0x00000001+pattern DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = DebugUtilsMessageTypeFlagBitsEXT 0x00000001+ -- | 'DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT' specifies that something -- has occurred during validation against the Vulkan specification that may -- indicate invalid behavior.-pattern DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT  = DebugUtilsMessageTypeFlagBitsEXT 0x00000002+pattern DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = DebugUtilsMessageTypeFlagBitsEXT 0x00000002+ -- | 'DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT' specifies a potentially -- non-optimal use of Vulkan, e.g. using -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage' when setting@@ -2188,6 +2297,11 @@ -- have worked. pattern DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = DebugUtilsMessageTypeFlagBitsEXT 0x00000004 +-- | 'DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT' specifies that+-- the implementation has modified the set of GPU-visible virtual addresses+-- associated with a Vulkan object.+pattern DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = DebugUtilsMessageTypeFlagBitsEXT 0x00000008+ conNameDebugUtilsMessageTypeFlagBitsEXT :: String conNameDebugUtilsMessageTypeFlagBitsEXT = "DebugUtilsMessageTypeFlagBitsEXT" @@ -2196,26 +2310,42 @@  showTableDebugUtilsMessageTypeFlagBitsEXT :: [(DebugUtilsMessageTypeFlagBitsEXT, String)] showTableDebugUtilsMessageTypeFlagBitsEXT =-  [ (DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT    , "GENERAL_BIT_EXT")-  , (DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT , "VALIDATION_BIT_EXT")-  , (DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT, "PERFORMANCE_BIT_EXT")+  [+    ( DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT+    , "GENERAL_BIT_EXT"+    )+  ,+    ( DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT+    , "VALIDATION_BIT_EXT"+    )+  ,+    ( DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT+    , "PERFORMANCE_BIT_EXT"+    )+  ,+    ( DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT+    , "DEVICE_ADDRESS_BINDING_BIT_EXT"+    )   ]  instance Show DebugUtilsMessageTypeFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixDebugUtilsMessageTypeFlagBitsEXT-                            showTableDebugUtilsMessageTypeFlagBitsEXT-                            conNameDebugUtilsMessageTypeFlagBitsEXT-                            (\(DebugUtilsMessageTypeFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDebugUtilsMessageTypeFlagBitsEXT+      showTableDebugUtilsMessageTypeFlagBitsEXT+      conNameDebugUtilsMessageTypeFlagBitsEXT+      (\(DebugUtilsMessageTypeFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DebugUtilsMessageTypeFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixDebugUtilsMessageTypeFlagBitsEXT-                          showTableDebugUtilsMessageTypeFlagBitsEXT-                          conNameDebugUtilsMessageTypeFlagBitsEXT-                          DebugUtilsMessageTypeFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDebugUtilsMessageTypeFlagBitsEXT+      showTableDebugUtilsMessageTypeFlagBitsEXT+      conNameDebugUtilsMessageTypeFlagBitsEXT+      DebugUtilsMessageTypeFlagBitsEXT -type FN_vkDebugUtilsMessengerCallbackEXT = DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr DebugUtilsMessengerCallbackDataEXT) -> ("pUserData" ::: Ptr ()) -> IO Bool32+type FN_vkDebugUtilsMessengerCallbackEXT = DebugUtilsMessageSeverityFlagBitsEXT -> ("messageTypes" ::: DebugUtilsMessageTypeFlagsEXT) -> ("pCallbackData" ::: Ptr (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> ("pUserData" ::: Ptr ()) -> IO Bool32 -- | PFN_vkDebugUtilsMessengerCallbackEXT - Application-defined debug -- messenger callback function --
src/Vulkan/Extensions/VK_EXT_debug_utils.hs-boot view
@@ -499,7 +499,10 @@ 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 DebugUtilsLabelEXT  instance ToCStruct DebugUtilsLabelEXT@@ -508,12 +511,15 @@ instance FromCStruct DebugUtilsLabelEXT  -data DebugUtilsMessengerCallbackDataEXT+type role DebugUtilsMessengerCallbackDataEXT nominal+data DebugUtilsMessengerCallbackDataEXT (es :: [Type]) -instance ToCStruct DebugUtilsMessengerCallbackDataEXT-instance Show DebugUtilsMessengerCallbackDataEXT+instance ( Extendss DebugUtilsMessengerCallbackDataEXT es+         , PokeChain es ) => ToCStruct (DebugUtilsMessengerCallbackDataEXT es)+instance Show (Chain es) => Show (DebugUtilsMessengerCallbackDataEXT es) -instance FromCStruct DebugUtilsMessengerCallbackDataEXT+instance ( Extendss DebugUtilsMessengerCallbackDataEXT es+         , PeekChain es ) => FromCStruct (DebugUtilsMessengerCallbackDataEXT es)   data DebugUtilsMessengerCreateInfoEXT
src/Vulkan/Extensions/VK_EXT_depth_clip_enable.hs view
@@ -299,31 +299,31 @@ newtype PipelineRasterizationDepthClipStateCreateFlagsEXT = PipelineRasterizationDepthClipStateCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineRasterizationDepthClipStateCreateFlagsEXT :: String conNamePipelineRasterizationDepthClipStateCreateFlagsEXT = "PipelineRasterizationDepthClipStateCreateFlagsEXT"  enumPrefixPipelineRasterizationDepthClipStateCreateFlagsEXT :: String enumPrefixPipelineRasterizationDepthClipStateCreateFlagsEXT = "" -showTablePipelineRasterizationDepthClipStateCreateFlagsEXT-  :: [(PipelineRasterizationDepthClipStateCreateFlagsEXT, String)]+showTablePipelineRasterizationDepthClipStateCreateFlagsEXT :: [(PipelineRasterizationDepthClipStateCreateFlagsEXT, String)] showTablePipelineRasterizationDepthClipStateCreateFlagsEXT = []  instance Show PipelineRasterizationDepthClipStateCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineRasterizationDepthClipStateCreateFlagsEXT-                            showTablePipelineRasterizationDepthClipStateCreateFlagsEXT-                            conNamePipelineRasterizationDepthClipStateCreateFlagsEXT-                            (\(PipelineRasterizationDepthClipStateCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineRasterizationDepthClipStateCreateFlagsEXT+      showTablePipelineRasterizationDepthClipStateCreateFlagsEXT+      conNamePipelineRasterizationDepthClipStateCreateFlagsEXT+      (\(PipelineRasterizationDepthClipStateCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineRasterizationDepthClipStateCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixPipelineRasterizationDepthClipStateCreateFlagsEXT-                          showTablePipelineRasterizationDepthClipStateCreateFlagsEXT-                          conNamePipelineRasterizationDepthClipStateCreateFlagsEXT-                          PipelineRasterizationDepthClipStateCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixPipelineRasterizationDepthClipStateCreateFlagsEXT+      showTablePipelineRasterizationDepthClipStateCreateFlagsEXT+      conNamePipelineRasterizationDepthClipStateCreateFlagsEXT+      PipelineRasterizationDepthClipStateCreateFlagsEXT  type EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION = 1 
+ src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs view
@@ -0,0 +1,591 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_device_address_binding_report - device extension+--+-- == VK_EXT_device_address_binding_report+--+-- [__Name String__]+--     @VK_EXT_device_address_binding_report@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     355+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_EXT_debug_utils@ to be enabled for any device-level+--         functionality+--+-- [__Special Uses__]+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>+--+-- [__Contact__]+--+--     -   Ralph Potter <<data:image/png;base64, GitLab>>r_potter+--+-- == Other Extension Metadata+--+-- [Last Modified Date]+--     2020-11-23+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires @VK_EXT_debug_utils@+--+-- [Contributors]+--+--     -   Ralph Potter, Samsung+--+--     -   Spencer Fricke, Samsung+--+--     -   Jan-Harald Fredriksen, ARM+--+--     -   Andrew Ellem, Google+--+--     -   Alex Walters, IMG+--+--     -   Jeff Bolz, NVIDIA+--+-- == Description+--+-- This extension enables applications to track the binding of regions of+-- the GPU virtual address space, and to associate those regions with+-- Vulkan objects. This extension is primarily intended to aid in crash+-- postmortem, where applications may wish to map a faulting GPU address to+-- a Vulkan object.+--+-- For example, a page fault triggered by accessing an address located+-- within a region of the GPU virtual address space that was previously+-- reported as bound and then unbound may indicate a use-after-free error.+-- Similarly, faults generated by accessing virtual addresses outside the+-- limits of a bound region of GPU virtual address space may indicate+-- indexing beyond the bounds of a resource.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT':+--+--     -   'DeviceAddressBindingCallbackDataEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceAddressBindingReportFeaturesEXT'+--+-- == New Enums+--+-- -   'DeviceAddressBindingFlagBitsEXT'+--+-- -   'DeviceAddressBindingTypeEXT'+--+-- == New Bitmasks+--+-- -   'DeviceAddressBindingFlagsEXT'+--+-- == New Enum Constants+--+-- -   'EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME'+--+-- -   'EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessageTypeFlagBitsEXT':+--+--     -   'Vulkan.Extensions.VK_EXT_debug_utils.DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT'+--+-- == Issues+--+-- 1.) Should this extend VK_EXT_debug_utils or+-- VK_EXT_device_memory_report?+--+-- __RESOLVED__: Extend VK_EXT_debug_utils. VK_EXT_device_memory_report+-- focuses on memory allocations and would not normally trigger callbacks+-- in all of the situations where VK_EXT_device_address_binding_report is+-- expected to.+--+-- 2.) Should this extension cover all Vulkan object types, or only+-- resources such as buffers and images?+--+-- __RESOLVED__: The extension covers all Vulkan objects, and is not+-- restricted to objects backed by VkDeviceMemory objects.+--+-- 3.) Should reallocation be identified explicitly, or as a unbind\/bind+-- pair?+--+-- __RESOLVED__: Reallocation should be represented as an unbind\/bind+-- pair.+--+-- 4.) Can multiple Vulkan objects share an overlapping virtual address+-- range?+--+-- __RESOLVED__: Yes. This can be expected to occur due to resources+-- aliasing.+--+-- 5.) Can a single Vulkan object be associated with multiple virtual+-- address ranges concurrently?+--+-- __RESOLVED__: Yes. These should be reported via multiple calls to the+-- reporting callback.+--+-- 6.) Should the virtual address ranges associated with internal+-- allocations such as memory pools be reported?+--+-- __RESOLVED__: Virtual address ranges associated with internal+-- allocations should only be reported when they become associated with a+-- specific Vulkan object. In the case of internal pool allocations, a bind+-- event should be reported when resources from the pool are assigned to a+-- Vulkan object, and an unbind event should be reported when those+-- resources are returned to the pool. Implementations should not report+-- the binding or unbinding of virtual address ranges for which there are+-- no related API objects visible to the application developer.+--+-- 7.) Can an implementation report binding a virtual address range at+-- VkImage or VkImageView creation, rather than in response to+-- vkBindImageMemory?+--+-- __RESOLVED__: Yes. Virtual address range binding should be reported at+-- the appropriate point at which it occurs within the implementation. This+-- extension does not mandate when that should occur, and applications+-- should anticipate receiving callback events at any point after+-- registering callbacks.+--+-- 8.) Can reporting of binding\/unbinding be deferred until a resource is+-- referenced by an executing command buffer?+--+-- __RESOLVED__: Changes to the virtual address ranges associated with a+-- Vulkan object should be reported as close as possible to where they+-- occur within the implementation. If virtual address binding is deferred,+-- then the the callback should also be deferred to match.+--+-- 9.) Do bind\/unbind callbacks have to form matched pairs? Can a large+-- region be bound, and then subregions unbound, resulting in+-- fragmentation?+--+-- __RESOLVED__: Splitting of virtual address regions, and unmatched+-- bind\/unbind callbacks may occur. Developers should anticipate that+-- sparse memory may exhibit this behaviour.+--+-- 10.) The specification mandates that a callback /must/ be triggered+-- whenever a GPU virtual address range associated with any Vulkan object+-- is bound or unbound. Do we need queries or properties indicating which+-- Vulkan objects will report binding modifications?+--+-- __RESOLVED__: No. This extension is not intended to mandate how and when+-- implementations bind virtual ranges to objects. Adding queries or+-- properties would constrain implementations, which might otherwise vary+-- how virtual address bindings occur based on usage.+--+-- 11.) Should vkAllocateMemory and vkFreeMemory trigger reporting+-- callbacks?+--+-- __RESOLVED__: If an implementation binds a GPU virtual address range+-- when vkAllocateMemory is called, then the callbacks must be triggered+-- associating the virtual address range with the VkDeviceMemory object. If+-- the device memory is subsequently bound to a buffer or image via+-- vkBind*Memory, the callbacks should be triggered a second time,+-- reporting the association between virtual address range and the+-- buffer\/image.+--+-- == Version History+--+-- -   Revision 1, 2020-09-23 (Ralph Potter)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'DeviceAddressBindingCallbackDataEXT',+-- 'DeviceAddressBindingFlagBitsEXT', 'DeviceAddressBindingFlagsEXT',+-- 'DeviceAddressBindingTypeEXT',+-- 'PhysicalDeviceAddressBindingReportFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_address_binding_report 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_device_address_binding_report  ( PhysicalDeviceAddressBindingReportFeaturesEXT(..)+                                                               , DeviceAddressBindingCallbackDataEXT(..)+                                                               , DeviceAddressBindingFlagsEXT+                                                               , DeviceAddressBindingFlagBitsEXT( DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT+                                                                                                , ..+                                                                                                )+                                                               , DeviceAddressBindingTypeEXT( DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT+                                                                                            , DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT+                                                                                            , ..+                                                                                            )+                                                               , EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION+                                                               , pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION+                                                               , EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME+                                                               , pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME+                                                               , DebugUtilsMessageTypeFlagBitsEXT(..)+                                                               , DebugUtilsMessageTypeFlagsEXT+                                                               ) 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 GHC.Show (showsPrec)+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 Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (DeviceAddress)+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT))+import Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsMessageTypeFlagBitsEXT(..))+import Vulkan.Extensions.VK_EXT_debug_utils (DebugUtilsMessageTypeFlagsEXT)+-- | VkPhysicalDeviceAddressBindingReportFeaturesEXT - Structure describing+-- the virtual allocation reporting feature supported by an implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceAddressBindingReportFeaturesEXT' 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. 'PhysicalDeviceAddressBindingReportFeaturesEXT' /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_device_address_binding_report VK_EXT_device_address_binding_report>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceAddressBindingReportFeaturesEXT = PhysicalDeviceAddressBindingReportFeaturesEXT+  { -- | #features-reportAddressBinding# @reportAddressBinding@ indicates whether+    -- this implementation supports reporting the binding of GPU virtual+    -- address ranges to Vulkan objects.+    reportAddressBinding :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceAddressBindingReportFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceAddressBindingReportFeaturesEXT++instance ToCStruct PhysicalDeviceAddressBindingReportFeaturesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceAddressBindingReportFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (reportAddressBinding))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceAddressBindingReportFeaturesEXT where+  peekCStruct p = do+    reportAddressBinding <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceAddressBindingReportFeaturesEXT+             (bool32ToBool reportAddressBinding)++instance Storable PhysicalDeviceAddressBindingReportFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceAddressBindingReportFeaturesEXT where+  zero = PhysicalDeviceAddressBindingReportFeaturesEXT+           zero+++-- | VkDeviceAddressBindingCallbackDataEXT - Structure specifying parameters+-- returned to the callback+--+-- = Description+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-reportAddressBinding reportAddressBinding>+-- feature is enabled and the implementation binds or unbinds a region of+-- virtual address space associated with a Vulkan object, the+-- implementation /must/ submit a debug message with the following+-- properties:+--+-- These debug messages /must/ be emitted both for GPU virtual address+-- space regions that are explicitly bound to a Vulkan object via the+-- @vkBind@*Memory\/@vkBind@*Memory2 functions, and for those that are+-- implicitly generated via memory allocation or importing external memory.+--+-- An implementation /may/ report binding events associated with a Vulkan+-- object via 'Vulkan.Extensions.Handles.DebugUtilsMessengerEXT' prior to+-- the object becoming visible to an application via other Vulkan commands.+-- For example, object creation functions /may/ report binding events that+-- occur during an objects creation. In such cases,+-- 'DeviceAddressBindingCallbackDataEXT'::@flags@ /must/ include+-- 'DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT'.+--+-- Object handles reported in this manner are not+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#fundamentals-validusage-handles valid object handles>,+-- and /must/ not be used as an input parameter to any Vulkan command.+--+-- Any valid object handle returned by an object creation function /must/+-- match the handle specified via any previously reported binding events+-- associated with the object’s creation.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report VK_EXT_device_address_binding_report>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',+-- 'DeviceAddressBindingFlagsEXT', 'DeviceAddressBindingTypeEXT',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data DeviceAddressBindingCallbackDataEXT = DeviceAddressBindingCallbackDataEXT+  { -- | @flags@ is a bitmask of 'DeviceAddressBindingFlagBitsEXT' specifying+    -- additional information about the binding event that caused the callback+    -- to be called.+    --+    -- #VUID-VkDeviceAddressBindingCallbackDataEXT-flags-parameter# @flags@+    -- /must/ be a valid combination of 'DeviceAddressBindingFlagBitsEXT'+    -- values+    flags :: DeviceAddressBindingFlagsEXT+  , -- | @baseAddress@ is a GPU-accessible virtual address identifying the start+    -- of a region of the virtual address space associated with a Vulkan+    -- object, as identified by the @pObjects@ member of+    -- 'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT'.+    baseAddress :: DeviceAddress+  , -- | @size@ is the size in bytes of a region of GPU-accessible virtual+    -- address space.+    size :: DeviceSize+  , -- | @bindingType@ is a 'DeviceAddressBindingTypeEXT' specifying the type of+    -- binding event that caused the callback to be called.+    --+    -- #VUID-VkDeviceAddressBindingCallbackDataEXT-bindingType-parameter#+    -- @bindingType@ /must/ be a valid 'DeviceAddressBindingTypeEXT' value+    bindingType :: DeviceAddressBindingTypeEXT+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceAddressBindingCallbackDataEXT)+#endif+deriving instance Show DeviceAddressBindingCallbackDataEXT++instance ToCStruct DeviceAddressBindingCallbackDataEXT where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceAddressBindingCallbackDataEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceAddressBindingFlagsEXT)) (flags)+    poke ((p `plusPtr` 24 :: Ptr DeviceAddress)) (baseAddress)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (size)+    poke ((p `plusPtr` 40 :: Ptr DeviceAddressBindingTypeEXT)) (bindingType)+    f+  cStructSize = 48+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 24 :: Ptr DeviceAddress)) (zero)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 40 :: Ptr DeviceAddressBindingTypeEXT)) (zero)+    f++instance FromCStruct DeviceAddressBindingCallbackDataEXT where+  peekCStruct p = do+    flags <- peek @DeviceAddressBindingFlagsEXT ((p `plusPtr` 16 :: Ptr DeviceAddressBindingFlagsEXT))+    baseAddress <- peek @DeviceAddress ((p `plusPtr` 24 :: Ptr DeviceAddress))+    size <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+    bindingType <- peek @DeviceAddressBindingTypeEXT ((p `plusPtr` 40 :: Ptr DeviceAddressBindingTypeEXT))+    pure $ DeviceAddressBindingCallbackDataEXT+             flags baseAddress size bindingType++instance Storable DeviceAddressBindingCallbackDataEXT where+  sizeOf ~_ = 48+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceAddressBindingCallbackDataEXT where+  zero = DeviceAddressBindingCallbackDataEXT+           zero+           zero+           zero+           zero+++type DeviceAddressBindingFlagsEXT = DeviceAddressBindingFlagBitsEXT++-- | VkDeviceAddressBindingFlagBitsEXT - Bitmask specifying the additional+-- information about a binding event+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report VK_EXT_device_address_binding_report>,+-- 'DeviceAddressBindingFlagsEXT'+newtype DeviceAddressBindingFlagBitsEXT = DeviceAddressBindingFlagBitsEXT Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT' specifies that+-- 'DeviceAddressBindingCallbackDataEXT' describes a Vulkan object that has+-- not been made visible to the application via a Vulkan command.+pattern DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = DeviceAddressBindingFlagBitsEXT 0x00000001++conNameDeviceAddressBindingFlagBitsEXT :: String+conNameDeviceAddressBindingFlagBitsEXT = "DeviceAddressBindingFlagBitsEXT"++enumPrefixDeviceAddressBindingFlagBitsEXT :: String+enumPrefixDeviceAddressBindingFlagBitsEXT = "DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT"++showTableDeviceAddressBindingFlagBitsEXT :: [(DeviceAddressBindingFlagBitsEXT, String)]+showTableDeviceAddressBindingFlagBitsEXT =+  [+    ( DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT+    , ""+    )+  ]++instance Show DeviceAddressBindingFlagBitsEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceAddressBindingFlagBitsEXT+      showTableDeviceAddressBindingFlagBitsEXT+      conNameDeviceAddressBindingFlagBitsEXT+      (\(DeviceAddressBindingFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read DeviceAddressBindingFlagBitsEXT where+  readPrec =+    enumReadPrec+      enumPrefixDeviceAddressBindingFlagBitsEXT+      showTableDeviceAddressBindingFlagBitsEXT+      conNameDeviceAddressBindingFlagBitsEXT+      DeviceAddressBindingFlagBitsEXT++-- | VkDeviceAddressBindingTypeEXT - Enum describing a change in device+-- address bindings+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_address_binding_report VK_EXT_device_address_binding_report>,+-- 'DeviceAddressBindingCallbackDataEXT'+newtype DeviceAddressBindingTypeEXT = DeviceAddressBindingTypeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT' specifies that a new+-- GPU-accessible virtual address range has been bound.+pattern DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = DeviceAddressBindingTypeEXT 0++-- | 'DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT' specifies that a GPU-accessible+-- virtual address range has been unbound.+pattern DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = DeviceAddressBindingTypeEXT 1++{-# COMPLETE+  DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT+  , DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT ::+    DeviceAddressBindingTypeEXT+  #-}++conNameDeviceAddressBindingTypeEXT :: String+conNameDeviceAddressBindingTypeEXT = "DeviceAddressBindingTypeEXT"++enumPrefixDeviceAddressBindingTypeEXT :: String+enumPrefixDeviceAddressBindingTypeEXT = "DEVICE_ADDRESS_BINDING_TYPE_"++showTableDeviceAddressBindingTypeEXT :: [(DeviceAddressBindingTypeEXT, String)]+showTableDeviceAddressBindingTypeEXT =+  [+    ( DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT+    , "BIND_EXT"+    )+  ,+    ( DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT+    , "UNBIND_EXT"+    )+  ]++instance Show DeviceAddressBindingTypeEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceAddressBindingTypeEXT+      showTableDeviceAddressBindingTypeEXT+      conNameDeviceAddressBindingTypeEXT+      (\(DeviceAddressBindingTypeEXT x) -> x)+      (showsPrec 11)++instance Read DeviceAddressBindingTypeEXT where+  readPrec =+    enumReadPrec+      enumPrefixDeviceAddressBindingTypeEXT+      showTableDeviceAddressBindingTypeEXT+      conNameDeviceAddressBindingTypeEXT+      DeviceAddressBindingTypeEXT++type EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION"+pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION = 1+++type EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report"++-- No documentation found for TopLevel "VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME"+pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME = "VK_EXT_device_address_binding_report"+
+ src/Vulkan/Extensions/VK_EXT_device_address_binding_report.hs-boot view
@@ -0,0 +1,253 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_device_address_binding_report - device extension+--+-- == VK_EXT_device_address_binding_report+--+-- [__Name String__]+--     @VK_EXT_device_address_binding_report@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     355+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_EXT_debug_utils@ to be enabled for any device-level+--         functionality+--+-- [__Special Uses__]+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>+--+--     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Developer tools>+--+-- [__Contact__]+--+--     -   Ralph Potter <<data:image/png;base64, GitLab>>r_potter+--+-- == Other Extension Metadata+--+-- [Last Modified Date]+--     2020-11-23+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires @VK_EXT_debug_utils@+--+-- [Contributors]+--+--     -   Ralph Potter, Samsung+--+--     -   Spencer Fricke, Samsung+--+--     -   Jan-Harald Fredriksen, ARM+--+--     -   Andrew Ellem, Google+--+--     -   Alex Walters, IMG+--+--     -   Jeff Bolz, NVIDIA+--+-- == Description+--+-- This extension enables applications to track the binding of regions of+-- the GPU virtual address space, and to associate those regions with+-- Vulkan objects. This extension is primarily intended to aid in crash+-- postmortem, where applications may wish to map a faulting GPU address to+-- a Vulkan object.+--+-- For example, a page fault triggered by accessing an address located+-- within a region of the GPU virtual address space that was previously+-- reported as bound and then unbound may indicate a use-after-free error.+-- Similarly, faults generated by accessing virtual addresses outside the+-- limits of a bound region of GPU virtual address space may indicate+-- indexing beyond the bounds of a resource.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCallbackDataEXT':+--+--     -   'DeviceAddressBindingCallbackDataEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceAddressBindingReportFeaturesEXT'+--+-- == New Enums+--+-- -   'DeviceAddressBindingFlagBitsEXT'+--+-- -   'DeviceAddressBindingTypeEXT'+--+-- == New Bitmasks+--+-- -   'DeviceAddressBindingFlagsEXT'+--+-- == New Enum Constants+--+-- -   'EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME'+--+-- -   'EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessageTypeFlagBitsEXT':+--+--     -   'Vulkan.Extensions.VK_EXT_debug_utils.DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT'+--+-- == Issues+--+-- 1.) Should this extend VK_EXT_debug_utils or+-- VK_EXT_device_memory_report?+--+-- __RESOLVED__: Extend VK_EXT_debug_utils. VK_EXT_device_memory_report+-- focuses on memory allocations and would not normally trigger callbacks+-- in all of the situations where VK_EXT_device_address_binding_report is+-- expected to.+--+-- 2.) Should this extension cover all Vulkan object types, or only+-- resources such as buffers and images?+--+-- __RESOLVED__: The extension covers all Vulkan objects, and is not+-- restricted to objects backed by VkDeviceMemory objects.+--+-- 3.) Should reallocation be identified explicitly, or as a unbind\/bind+-- pair?+--+-- __RESOLVED__: Reallocation should be represented as an unbind\/bind+-- pair.+--+-- 4.) Can multiple Vulkan objects share an overlapping virtual address+-- range?+--+-- __RESOLVED__: Yes. This can be expected to occur due to resources+-- aliasing.+--+-- 5.) Can a single Vulkan object be associated with multiple virtual+-- address ranges concurrently?+--+-- __RESOLVED__: Yes. These should be reported via multiple calls to the+-- reporting callback.+--+-- 6.) Should the virtual address ranges associated with internal+-- allocations such as memory pools be reported?+--+-- __RESOLVED__: Virtual address ranges associated with internal+-- allocations should only be reported when they become associated with a+-- specific Vulkan object. In the case of internal pool allocations, a bind+-- event should be reported when resources from the pool are assigned to a+-- Vulkan object, and an unbind event should be reported when those+-- resources are returned to the pool. Implementations should not report+-- the binding or unbinding of virtual address ranges for which there are+-- no related API objects visible to the application developer.+--+-- 7.) Can an implementation report binding a virtual address range at+-- VkImage or VkImageView creation, rather than in response to+-- vkBindImageMemory?+--+-- __RESOLVED__: Yes. Virtual address range binding should be reported at+-- the appropriate point at which it occurs within the implementation. This+-- extension does not mandate when that should occur, and applications+-- should anticipate receiving callback events at any point after+-- registering callbacks.+--+-- 8.) Can reporting of binding\/unbinding be deferred until a resource is+-- referenced by an executing command buffer?+--+-- __RESOLVED__: Changes to the virtual address ranges associated with a+-- Vulkan object should be reported as close as possible to where they+-- occur within the implementation. If virtual address binding is deferred,+-- then the the callback should also be deferred to match.+--+-- 9.) Do bind\/unbind callbacks have to form matched pairs? Can a large+-- region be bound, and then subregions unbound, resulting in+-- fragmentation?+--+-- __RESOLVED__: Splitting of virtual address regions, and unmatched+-- bind\/unbind callbacks may occur. Developers should anticipate that+-- sparse memory may exhibit this behaviour.+--+-- 10.) The specification mandates that a callback /must/ be triggered+-- whenever a GPU virtual address range associated with any Vulkan object+-- is bound or unbound. Do we need queries or properties indicating which+-- Vulkan objects will report binding modifications?+--+-- __RESOLVED__: No. This extension is not intended to mandate how and when+-- implementations bind virtual ranges to objects. Adding queries or+-- properties would constrain implementations, which might otherwise vary+-- how virtual address bindings occur based on usage.+--+-- 11.) Should vkAllocateMemory and vkFreeMemory trigger reporting+-- callbacks?+--+-- __RESOLVED__: If an implementation binds a GPU virtual address range+-- when vkAllocateMemory is called, then the callbacks must be triggered+-- associating the virtual address range with the VkDeviceMemory object. If+-- the device memory is subsequently bound to a buffer or image via+-- vkBind*Memory, the callbacks should be triggered a second time,+-- reporting the association between virtual address range and the+-- buffer\/image.+--+-- == Version History+--+-- -   Revision 1, 2020-09-23 (Ralph Potter)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'DeviceAddressBindingCallbackDataEXT',+-- 'DeviceAddressBindingFlagBitsEXT', 'DeviceAddressBindingFlagsEXT',+-- 'DeviceAddressBindingTypeEXT',+-- 'PhysicalDeviceAddressBindingReportFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_address_binding_report 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_device_address_binding_report  ( DeviceAddressBindingCallbackDataEXT+                                                               , PhysicalDeviceAddressBindingReportFeaturesEXT+                                                               ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceAddressBindingCallbackDataEXT++instance ToCStruct DeviceAddressBindingCallbackDataEXT+instance Show DeviceAddressBindingCallbackDataEXT++instance FromCStruct DeviceAddressBindingCallbackDataEXT+++data PhysicalDeviceAddressBindingReportFeaturesEXT++instance ToCStruct PhysicalDeviceAddressBindingReportFeaturesEXT+instance Show PhysicalDeviceAddressBindingReportFeaturesEXT++instance FromCStruct PhysicalDeviceAddressBindingReportFeaturesEXT+
+ src/Vulkan/Extensions/VK_EXT_device_fault.hs view
@@ -0,0 +1,1122 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_device_fault - device extension+--+-- == VK_EXT_device_fault+--+-- [__Name String__]+--     @VK_EXT_device_fault@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     342+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Ralph Potter <<data:image/png;base64, GitLab>>r_potter+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_device_fault.adoc VK_EXT_device_fault>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-03-10+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Ralph Potter, Samsung+--+--     -   Stuart Smith, AMD+--+--     -   Jan-Harald Fredriksen, ARM+--+--     -   Mark Bellamy, ARM+--+--     -   Andrew Ellem, Google+--+--     -   Alex Walters, IMG+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Baldur Karlsson, Valve+--+-- == Description+--+-- Device loss can be triggered by a variety of issues, including invalid+-- API usage, implementation errors, or hardware failures.+--+-- This extension introduces a new command: 'getDeviceFaultInfoEXT', which+-- may be called subsequent to a+-- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' error code having been+-- returned by the implementation. This command allows developers to query+-- for additional information on GPU faults which may have caused device+-- loss, and to generate binary crash dumps, which may be loaded into+-- external tools for further diagnosis.+--+-- == New Commands+--+-- -   'getDeviceFaultInfoEXT'+--+-- == New Structures+--+-- -   'DeviceFaultAddressInfoEXT'+--+-- -   'DeviceFaultCountsEXT'+--+-- -   'DeviceFaultInfoEXT'+--+-- -   'DeviceFaultVendorBinaryHeaderVersionOneEXT'+--+-- -   'DeviceFaultVendorInfoEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceFaultFeaturesEXT'+--+-- == New Enums+--+-- -   'DeviceFaultAddressTypeEXT'+--+-- -   'DeviceFaultVendorBinaryHeaderVersionEXT'+--+-- == New Enum Constants+--+-- -   'EXT_DEVICE_FAULT_EXTENSION_NAME'+--+-- -   'EXT_DEVICE_FAULT_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2020-10-19 (Ralph Potter)+--+--     -   Initial revision+--+-- == See Also+--+-- 'DeviceFaultAddressInfoEXT', 'DeviceFaultAddressTypeEXT',+-- 'DeviceFaultCountsEXT', 'DeviceFaultInfoEXT',+-- 'DeviceFaultVendorBinaryHeaderVersionEXT',+-- 'DeviceFaultVendorBinaryHeaderVersionOneEXT',+-- 'DeviceFaultVendorInfoEXT', 'PhysicalDeviceFaultFeaturesEXT',+-- 'getDeviceFaultInfoEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_fault 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_device_fault  ( getDeviceFaultInfoEXT+                                              , PhysicalDeviceFaultFeaturesEXT(..)+                                              , DeviceFaultAddressInfoEXT(..)+                                              , DeviceFaultVendorInfoEXT(..)+                                              , DeviceFaultCountsEXT(..)+                                              , DeviceFaultInfoEXT(..)+                                              , DeviceFaultVendorBinaryHeaderVersionOneEXT(..)+                                              , DeviceFaultAddressTypeEXT( DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT+                                                                         , DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT+                                                                         , DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT+                                                                         , DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT+                                                                         , DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT+                                                                         , DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT+                                                                         , DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT+                                                                         , ..+                                                                         )+                                              , DeviceFaultVendorBinaryHeaderVersionEXT( DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT+                                                                                       , ..+                                                                                       )+                                              , EXT_DEVICE_FAULT_SPEC_VERSION+                                              , pattern EXT_DEVICE_FAULT_SPEC_VERSION+                                              , EXT_DEVICE_FAULT_EXTENSION_NAME+                                              , pattern EXT_DEVICE_FAULT_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.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Data.ByteString (packCString)+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.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 Data.Int (Int32)+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.Word (Word8)+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthByteString)+import Vulkan.CStruct.Utils (pokeFixedLengthNullTerminatedByteString)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Core10.FundamentalTypes (DeviceAddress)+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceFaultInfoEXT))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core10.APIConstants (MAX_DESCRIPTION_SIZE)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.APIConstants (UUID_SIZE)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDeviceFaultInfoEXT+  :: FunPtr (Ptr Device_T -> Ptr DeviceFaultCountsEXT -> Ptr DeviceFaultInfoEXT -> IO Result) -> Ptr Device_T -> Ptr DeviceFaultCountsEXT -> Ptr DeviceFaultInfoEXT -> IO Result++-- | vkGetDeviceFaultInfoEXT - Reports diagnostic fault information on the+-- specified logical device+--+-- = Description+--+-- If @pFaultInfo@ is @NULL@, then the counts of corresponding additional+-- fault information structures available are returned in the+-- @addressInfoCount@ and @vendorInfoCount@ members of @pFaultCounts@.+-- Additionally, the size of any vendor-specific binary crash dump is+-- returned in the @vendorBinarySize@ member of @pFaultCounts@.+--+-- If @pFaultInfo@ is not @NULL@, @pFaultCounts@ /must/ point to a+-- 'DeviceFaultCountsEXT' structure with each structure count or size+-- member (@addressInfoCount@, @vendorInfoCount@, @vendorBinarySize@) set+-- by the user to the number of elements in the corresponding output array+-- member of @pFaultInfo@ (@pAddressInfos@ and @pVendorInfos@), or to the+-- size of the output buffer in bytes (@pVendorBinaryData@). On return,+-- each structure count member is overwritten with the number of structures+-- actually written to the corresponding output array member of+-- @pFaultInfo@. Similarly, @vendorBinarySize@ is overwritten with the+-- number of bytes actually written to the @pVendorBinaryData@ member of+-- @pFaultInfo@.+--+-- If the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-deviceFaultVendorBinary vendor-specific crash dumps>+-- feature is not enabled, then implementations /must/ set+-- @pFaultCounts@->vendorBinarySize to zero and /must/ not modify+-- @pFaultInfo@->pVendorBinaryData.+--+-- If any @pFaultCounts@ structure count member is less than the number of+-- corresponding fault properties available, at most structure count+-- (@addressInfoCount@, @vendorInfoCount@) elements will be written to the+-- associated @pFaultInfo@ output array. Similarly, if @vendorBinarySize@+-- is less than the size in bytes of the available crash dump data, at most+-- @vendorBinarySize@ elements will be written to @pVendorBinaryData@.+--+-- If @pFaultInfo@ is @NULL@, then subsequent calls to+-- 'getDeviceFaultInfoEXT' for the same @device@ /must/ return identical+-- values in the @addressInfoCount@, @vendorInfoCount@ and+-- @vendorBinarySize@ members of @pFaultCounts@.+--+-- If @pFaultInfo@ is not @NULL@, then subsequent calls to+-- 'getDeviceFaultInfoEXT' for the same @device@ /must/ return identical+-- values in the output members of @pFaultInfo@ (@pAddressInfos@,+-- @pVendorInfos@, @pVendorBinaryData@), up to the limits described by the+-- structure count and buffer size members of @pFaultCounts@+-- (@addressInfoCount@, @vendorInfoCount@, @vendorBinarySize@). If the+-- sizes of the output members of @pFaultInfo@ increase for a subsequent+-- call to 'getDeviceFaultInfoEXT', then supplementary information /may/ be+-- returned in the additional available space.+--+-- If any @pFaultCounts@ structure count member is smaller than the number+-- of corresponding fault properties available, or if+-- @pFaultCounts@->vendorBinarySize is smaller than the size in bytes of+-- the generated binary crash dump data,+-- 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be returned instead of+-- 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate that not all the+-- available properties were returned.+--+-- If @pFaultCounts@->vendorBinarySize is less than what is necessary to+-- store the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vendor-binary-crash-dumps binary crash dump header>,+-- nothing will be written to @pFaultInfo@->pVendorBinaryData and zero will+-- be written to @pFaultCounts@->vendorBinarySize.+--+-- == Valid Usage+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-device-07336# @device@ /must/ be in+--     the /lost/ state+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07337# If the value+--     referenced by @pFaultCounts->addressInfoCount@ is not @0@, and+--     @pFaultInfo->pAddressInfos@ is not @NULL@,+--     @pFaultInfo->pAddressInfos@ must be a valid pointer to an array of+--     @pFaultCounts->addressInfoCount@ 'DeviceFaultAddressInfoEXT'+--     structures+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07338# If the value+--     referenced by @pFaultCounts->vendorInfoCount@ is not @0@, and+--     @pFaultInfo->pVendorInfos@ is not @NULL@, @pFaultInfo->pVendorInfos@+--     must be a valid pointer to an array of+--     @pFaultCounts->vendorInfoCount@ 'DeviceFaultVendorInfoEXT'+--     structures+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-07339# If the value+--     referenced by @pFaultCounts->vendorBinarySize@ is not @0@, and+--     @pFaultInfo->pVendorBinaryData@ is not @NULL@,+--     @pFaultInfo->pVendorBinaryData@ must be a valid pointer to an array+--     of @pFaultCounts->vendorBinarySize@ bytes+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-pFaultCounts-parameter# @pFaultCounts@+--     /must/ be a valid pointer to a 'DeviceFaultCountsEXT' structure+--+-- -   #VUID-vkGetDeviceFaultInfoEXT-pFaultInfo-parameter# If @pFaultInfo@+--     is not @NULL@, @pFaultInfo@ /must/ be a valid pointer to a+--     'DeviceFaultInfoEXT' structure+--+-- == 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_device_fault VK_EXT_device_fault>,+-- 'Vulkan.Core10.Handles.Device', 'DeviceFaultCountsEXT',+-- 'DeviceFaultInfoEXT'+getDeviceFaultInfoEXT :: forall io+                       . (MonadIO io)+                      => -- | @device@ is the logical device from which to query the diagnostic fault+                         -- information.+                         Device+                      -> io (Result, DeviceFaultCountsEXT, DeviceFaultInfoEXT)+getDeviceFaultInfoEXT device = liftIO . evalContT $ do+  let vkGetDeviceFaultInfoEXTPtr = pVkGetDeviceFaultInfoEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDeviceFaultInfoEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceFaultInfoEXT is null" Nothing Nothing+  let vkGetDeviceFaultInfoEXT' = mkVkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXTPtr+  pPFaultCounts <- ContT (withZeroCStruct @DeviceFaultCountsEXT)+  pPFaultInfo <- ContT (withZeroCStruct @DeviceFaultInfoEXT)+  r <- lift $ traceAroundEvent "vkGetDeviceFaultInfoEXT" (vkGetDeviceFaultInfoEXT'+                                                            (deviceHandle (device))+                                                            (pPFaultCounts)+                                                            (pPFaultInfo))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pFaultCounts <- lift $ peekCStruct @DeviceFaultCountsEXT pPFaultCounts+  pFaultInfo <- lift $ peekCStruct @DeviceFaultInfoEXT pPFaultInfo+  pure $ (r, pFaultCounts, pFaultInfo)+++-- | VkPhysicalDeviceFaultFeaturesEXT - Structure indicating support for+-- device fault reporting+--+-- = Members+--+-- The members of the 'PhysicalDeviceFaultFeaturesEXT' structure describe+-- the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceFaultFeaturesEXT' 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. 'PhysicalDeviceFaultFeaturesEXT' /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_device_fault VK_EXT_device_fault>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceFaultFeaturesEXT = PhysicalDeviceFaultFeaturesEXT+  { -- | #features-deviceFault# @deviceFault@ indicates that the implementation+    -- supports the reporting of device fault information.+    deviceFault :: Bool+  , -- | #features-deviceFaultVendorBinary# @deviceFaultVendorBinary@ indicates+    -- that the implementation supports the generation of vendor-specific+    -- binary crash dumps. These may provide additional information when+    -- imported into vendor-specific external tools.+    deviceFaultVendorBinary :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceFaultFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceFaultFeaturesEXT++instance ToCStruct PhysicalDeviceFaultFeaturesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceFaultFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (deviceFault))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (deviceFaultVendorBinary))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_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 PhysicalDeviceFaultFeaturesEXT where+  peekCStruct p = do+    deviceFault <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    deviceFaultVendorBinary <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceFaultFeaturesEXT+             (bool32ToBool deviceFault) (bool32ToBool deviceFaultVendorBinary)++instance Storable PhysicalDeviceFaultFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceFaultFeaturesEXT where+  zero = PhysicalDeviceFaultFeaturesEXT+           zero+           zero+++-- | VkDeviceFaultAddressInfoEXT - Structure specifying GPU virtual address+-- information+--+-- = Description+--+-- The combination of @reportedAddress@ and @addressPrecision@ allow the+-- possible range of addresses to be calculated, such that:+--+-- > lower_address = (pInfo->reportedAddress & ~(pInfo->addressPrecision-1))+-- > upper_address = (pInfo->reportedAddress |  (pInfo->addressPrecision-1))+--+-- Note+--+-- It is valid for the @reportedAddress@ to contain a more precise address+-- than indicated by @addressPrecision@. In this case, the value of+-- @reportedAddress@ should be treated as an additional hint as to the+-- value of the address that triggered the page fault, or to the value of+-- an instruction pointer.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',+-- 'DeviceFaultAddressTypeEXT', 'DeviceFaultInfoEXT',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+data DeviceFaultAddressInfoEXT = DeviceFaultAddressInfoEXT+  { -- | @addressType@ is either the type of memory operation that triggered a+    -- page fault, or the type of association between an instruction pointer+    -- and a fault.+    --+    -- #VUID-VkDeviceFaultAddressInfoEXT-addressType-parameter# @addressType@+    -- /must/ be a valid 'DeviceFaultAddressTypeEXT' value+    addressType :: DeviceFaultAddressTypeEXT+  , -- | @reportedAddress@ is the GPU virtual address recorded by the device.+    reportedAddress :: DeviceAddress+  , -- | @addressPrecision@ is a power of two value that specifies how precisely+    -- the device can report the address.+    addressPrecision :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceFaultAddressInfoEXT)+#endif+deriving instance Show DeviceFaultAddressInfoEXT++instance ToCStruct DeviceFaultAddressInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceFaultAddressInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceFaultAddressTypeEXT)) (addressType)+    poke ((p `plusPtr` 8 :: Ptr DeviceAddress)) (reportedAddress)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (addressPrecision)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr DeviceFaultAddressTypeEXT)) (zero)+    poke ((p `plusPtr` 8 :: Ptr DeviceAddress)) (zero)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+    f++instance FromCStruct DeviceFaultAddressInfoEXT where+  peekCStruct p = do+    addressType <- peek @DeviceFaultAddressTypeEXT ((p `plusPtr` 0 :: Ptr DeviceFaultAddressTypeEXT))+    reportedAddress <- peek @DeviceAddress ((p `plusPtr` 8 :: Ptr DeviceAddress))+    addressPrecision <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    pure $ DeviceFaultAddressInfoEXT+             addressType reportedAddress addressPrecision++instance Storable DeviceFaultAddressInfoEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceFaultAddressInfoEXT where+  zero = DeviceFaultAddressInfoEXT+           zero+           zero+           zero+++-- | VkDeviceFaultVendorInfoEXT - Structure specifying vendor-specific fault+-- information+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'DeviceFaultInfoEXT'+data DeviceFaultVendorInfoEXT = DeviceFaultVendorInfoEXT+  { -- | @description@ is an array of+    -- 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' @char@ containing a+    -- null-terminated UTF-8 string which is a human readable description of+    -- the fault.+    description :: ByteString+  , -- | @vendorFaultCode@ is the vendor-specific fault code for this fault.+    vendorFaultCode :: Word64+  , -- | @vendorFaultData@ is the vendor-specific fault data associated with this+    -- fault.+    vendorFaultData :: Word64+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceFaultVendorInfoEXT)+#endif+deriving instance Show DeviceFaultVendorInfoEXT++instance ToCStruct DeviceFaultVendorInfoEXT where+  withCStruct x f = allocaBytes 272 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceFaultVendorInfoEXT{..} f = do+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 0 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)+    poke ((p `plusPtr` 256 :: Ptr Word64)) (vendorFaultCode)+    poke ((p `plusPtr` 264 :: Ptr Word64)) (vendorFaultData)+    f+  cStructSize = 272+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 0 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)+    poke ((p `plusPtr` 256 :: Ptr Word64)) (zero)+    poke ((p `plusPtr` 264 :: Ptr Word64)) (zero)+    f++instance FromCStruct DeviceFaultVendorInfoEXT where+  peekCStruct p = do+    description <- packCString (lowerArrayPtr ((p `plusPtr` 0 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))+    vendorFaultCode <- peek @Word64 ((p `plusPtr` 256 :: Ptr Word64))+    vendorFaultData <- peek @Word64 ((p `plusPtr` 264 :: Ptr Word64))+    pure $ DeviceFaultVendorInfoEXT+             description vendorFaultCode vendorFaultData++instance Storable DeviceFaultVendorInfoEXT where+  sizeOf ~_ = 272+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceFaultVendorInfoEXT where+  zero = DeviceFaultVendorInfoEXT+           mempty+           zero+           zero+++-- | VkDeviceFaultCountsEXT - Structure specifying device fault information+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceFaultInfoEXT'+data DeviceFaultCountsEXT = DeviceFaultCountsEXT+  { -- | @addressInfoCount@ is the number of 'DeviceFaultAddressInfoEXT'+    -- structures describing either memory accesses which /may/ have caused a+    -- page fault, or the addresses of active instructions at the time of the+    -- fault.+    addressInfoCount :: Word32+  , -- | @vendorInfoCount@ is the number of 'DeviceFaultVendorInfoEXT' structures+    -- describing vendor-specific fault information.+    vendorInfoCount :: Word32+  , -- | @vendorBinarySize@ is the size in bytes of a vendor-specific binary+    -- crash dump, which may provide additional information when imported into+    -- external tools.+    vendorBinarySize :: DeviceSize+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceFaultCountsEXT)+#endif+deriving instance Show DeviceFaultCountsEXT++instance ToCStruct DeviceFaultCountsEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceFaultCountsEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (addressInfoCount)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (vendorInfoCount)+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (vendorBinarySize)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct DeviceFaultCountsEXT where+  peekCStruct p = do+    addressInfoCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    vendorInfoCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    vendorBinarySize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+    pure $ DeviceFaultCountsEXT+             addressInfoCount vendorInfoCount vendorBinarySize++instance Storable DeviceFaultCountsEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceFaultCountsEXT where+  zero = DeviceFaultCountsEXT+           zero+           zero+           zero+++-- | VkDeviceFaultInfoEXT - Structure specifying device fault information+--+-- = Description+--+-- An implementation /should/ populate as many members of+-- 'DeviceFaultInfoEXT' as possible, given the information available at the+-- time of the fault and the constraints of the implementation itself.+--+-- Due to hardware limitations, @pAddressInfos@ describes ranges of GPU+-- virtual address space, rather than precise addresses. The precise memory+-- address accessed or the precise value of the instruction pointer /must/+-- lie within the region described.+--+-- Note+--+-- Each element of @pAddressInfos@ describes either:+--+-- -   A memory access which may have triggered a page fault and may have+--     contributed to device loss+--+-- -   The value of an active instruction pointer at the time a fault+--     occurred. This value may be indicative of the active pipeline or+--     shader at the time of device loss+--+-- Comparison of the GPU virtual addresses described by @pAddressInfos@ to+-- GPU virtual address ranges reported by the+-- @VK_EXT_device_address_binding_report@ extension may allow applications+-- to correlate between these addresses and Vulkan objects. Applications+-- should be aware that these addresses may also correspond to resources+-- internal to an implementation, which will not be reported via the+-- @VK_EXT_device_address_binding_report@ extension.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkDeviceFaultInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT'+--+-- -   #VUID-VkDeviceFaultInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkDeviceFaultInfoEXT-pAddressInfos-parameter# If+--     @pAddressInfos@ is not @NULL@, @pAddressInfos@ /must/ be a valid+--     pointer to a 'DeviceFaultAddressInfoEXT' structure+--+-- -   #VUID-VkDeviceFaultInfoEXT-pVendorInfos-parameter# If @pVendorInfos@+--     is not @NULL@, @pVendorInfos@ /must/ be a valid pointer to a+--     'DeviceFaultVendorInfoEXT' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'DeviceFaultAddressInfoEXT', 'DeviceFaultVendorInfoEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceFaultInfoEXT'+data DeviceFaultInfoEXT = DeviceFaultInfoEXT+  { -- | @description@ is an array of+    -- 'Vulkan.Core10.APIConstants.MAX_DESCRIPTION_SIZE' @char@ containing a+    -- null-terminated UTF-8 string which is a human readable description of+    -- the fault.+    description :: ByteString+  , -- | @pAddressInfos@ is @NULL@ or a pointer to an array of+    -- 'DeviceFaultAddressInfoEXT' structures describing either memory accesses+    -- which /may/ have caused a page fault, or describing active instruction+    -- pointers at the time of the fault. If not @NULL@, each element of+    -- @pAddressInfos@ describes the a bounded region of GPU virtual address+    -- space containing either the GPU virtual address accessed, or the value+    -- of an active instruction pointer.+    addressInfos :: Ptr DeviceFaultAddressInfoEXT+  , -- | @pVendorInfos@ is @NULL@ or a pointer to an array of+    -- 'DeviceFaultVendorInfoEXT' structures describing vendor-specific fault+    -- information.+    vendorInfos :: Ptr DeviceFaultVendorInfoEXT+  , -- | @pVendorBinaryData@ is @NULL@ or a pointer to @vendorBinarySize@ number+    -- of bytes of data, which will be populated with a vendor-specific binary+    -- crash dump, as described in+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vendor-binary-crash-dumps Vendor Binary Crash Dumps>.+    vendorBinaryData :: Ptr ()+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceFaultInfoEXT)+#endif+deriving instance Show DeviceFaultInfoEXT++instance ToCStruct DeviceFaultInfoEXT where+  withCStruct x f = allocaBytes 296 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceFaultInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (description)+    poke ((p `plusPtr` 272 :: Ptr (Ptr DeviceFaultAddressInfoEXT))) (addressInfos)+    poke ((p `plusPtr` 280 :: Ptr (Ptr DeviceFaultVendorInfoEXT))) (vendorInfos)+    poke ((p `plusPtr` 288 :: Ptr (Ptr ()))) (vendorBinaryData)+    f+  cStructSize = 296+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    pokeFixedLengthNullTerminatedByteString ((p `plusPtr` 16 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))) (mempty)+    f++instance FromCStruct DeviceFaultInfoEXT where+  peekCStruct p = do+    description <- packCString (lowerArrayPtr ((p `plusPtr` 16 :: Ptr (FixedArray MAX_DESCRIPTION_SIZE CChar))))+    pAddressInfos <- peek @(Ptr DeviceFaultAddressInfoEXT) ((p `plusPtr` 272 :: Ptr (Ptr DeviceFaultAddressInfoEXT)))+    pVendorInfos <- peek @(Ptr DeviceFaultVendorInfoEXT) ((p `plusPtr` 280 :: Ptr (Ptr DeviceFaultVendorInfoEXT)))+    pVendorBinaryData <- peek @(Ptr ()) ((p `plusPtr` 288 :: Ptr (Ptr ())))+    pure $ DeviceFaultInfoEXT+             description pAddressInfos pVendorInfos pVendorBinaryData++instance Storable DeviceFaultInfoEXT where+  sizeOf ~_ = 296+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceFaultInfoEXT where+  zero = DeviceFaultInfoEXT+           mempty+           zero+           zero+           zero+++-- | VkDeviceFaultVendorBinaryHeaderVersionOneEXT - Structure describing the+-- layout of the vendor binary crash dump header+--+-- = Description+--+-- Unlike most structures declared by the Vulkan API, all fields of this+-- structure are written with the least significant byte first, regardless+-- of host byte-order.+--+-- The C language specification does not define the packing of structure+-- members. This layout assumes tight structure member packing, with+-- members laid out in the order listed in the structure, and the intended+-- size of the structure is 56 bytes. If a compiler produces code that+-- diverges from that pattern, applications /must/ employ another method to+-- set values at the correct offsets.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'DeviceFaultVendorBinaryHeaderVersionEXT'+data DeviceFaultVendorBinaryHeaderVersionOneEXT = DeviceFaultVendorBinaryHeaderVersionOneEXT+  { -- | @headerSize@ is the length in bytes of the crash dump header.+    --+    -- #VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerSize-07340#+    -- @headerSize@ /must/ be 56+    headerSize :: Word32+  , -- | @headerVersion@ is a 'DeviceFaultVendorBinaryHeaderVersionEXT' enum+    -- value specifying the version of the header. A consumer of the crash dump+    -- /should/ use the header version to interpret the remainder of the+    -- header.+    --+    -- #VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-07341#+    -- @headerVersion@ /must/ be+    -- 'DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT'+    --+    -- #VUID-VkDeviceFaultVendorBinaryHeaderVersionOneEXT-headerVersion-parameter#+    -- @headerVersion@ /must/ be a valid+    -- 'DeviceFaultVendorBinaryHeaderVersionEXT' value+    headerVersion :: DeviceFaultVendorBinaryHeaderVersionEXT+  , -- | @vendorID@ is the+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@vendorID@+    -- of the implementation.+    vendorID :: Word32+  , -- | @deviceID@ is the+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@deviceID@+    -- of the implementation.+    deviceID :: Word32+  , -- | @driverVersion@ is the+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@driverVersion@+    -- of the implementation.+    driverVersion :: Word32+  , -- | @pipelineCacheUUID@ is an array of+    -- 'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values matching the+    -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@pipelineCacheUUID@+    -- property of the implementation.+    pipelineCacheUUID :: ByteString+  , -- | @applicationNameOffset@ is zero, or an offset from the base address of+    -- the crash dump header to a null-terminated UTF-8 string containing the+    -- name of the application. If @applicationNameOffset@ is non-zero, this+    -- string /must/ match the application name specified via+    -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@pApplicationName@+    -- during instance creation.+    applicationNameOffset :: Word32+  , -- | @applicationVersion@ /must/ be zero or the value specified by+    -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@applicationVersion@+    -- during instance creation.+    applicationVersion :: Word32+  , -- | @engineNameOffset@ is zero, or an offset from the base address of the+    -- crash dump header to a null-terminated UTF-8 string containing the name+    -- of the engine (if any) used to create the application. If+    -- @engineNameOffset@ is non-zero, this string /must/ match the engine name+    -- specified via+    -- 'Vulkan.Core10.DeviceInitialization.ApplicationInfo'::@pEngineName@+    -- during instance creation.+    engineNameOffset :: Word32+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (DeviceFaultVendorBinaryHeaderVersionOneEXT)+#endif+deriving instance Show DeviceFaultVendorBinaryHeaderVersionOneEXT++instance ToCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where+  withCStruct x f = allocaBytes 48 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p DeviceFaultVendorBinaryHeaderVersionOneEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (headerSize)+    poke ((p `plusPtr` 4 :: Ptr DeviceFaultVendorBinaryHeaderVersionEXT)) (headerVersion)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (vendorID)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (deviceID)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (driverVersion)+    pokeFixedLengthByteString ((p `plusPtr` 20 :: Ptr (FixedArray UUID_SIZE Word8))) (pipelineCacheUUID)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (applicationNameOffset)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (applicationVersion)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (engineNameOffset)+    f+  cStructSize = 48+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 4 :: Ptr DeviceFaultVendorBinaryHeaderVersionEXT)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    pokeFixedLengthByteString ((p `plusPtr` 20 :: Ptr (FixedArray UUID_SIZE Word8))) (mempty)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)+    f++instance FromCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT where+  peekCStruct p = do+    headerSize <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+    headerVersion <- peek @DeviceFaultVendorBinaryHeaderVersionEXT ((p `plusPtr` 4 :: Ptr DeviceFaultVendorBinaryHeaderVersionEXT))+    vendorID <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+    deviceID <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+    driverVersion <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pipelineCacheUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 20 :: Ptr (FixedArray UUID_SIZE Word8)))+    applicationNameOffset <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    applicationVersion <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    engineNameOffset <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    pure $ DeviceFaultVendorBinaryHeaderVersionOneEXT+             headerSize+             headerVersion+             vendorID+             deviceID+             driverVersion+             pipelineCacheUUID+             applicationNameOffset+             applicationVersion+             engineNameOffset++instance Storable DeviceFaultVendorBinaryHeaderVersionOneEXT where+  sizeOf ~_ = 48+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero DeviceFaultVendorBinaryHeaderVersionOneEXT where+  zero = DeviceFaultVendorBinaryHeaderVersionOneEXT+           zero+           zero+           zero+           zero+           zero+           mempty+           zero+           zero+           zero+++-- | VkDeviceFaultAddressTypeEXT - Page fault access types+--+-- = Description+--+-- Note+--+-- The instruction pointer values recorded may not identify the specific+-- instruction(s) that triggered the fault. The relationship between the+-- instruction pointer reported and triggering instruction will be+-- vendor-specific.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'DeviceFaultAddressInfoEXT'+newtype DeviceFaultAddressTypeEXT = DeviceFaultAddressTypeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT' specifies that+-- 'DeviceFaultAddressInfoEXT' does not describe a page fault, or an+-- instruction address.+pattern DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = DeviceFaultAddressTypeEXT 0++-- | 'DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT' specifies that+-- 'DeviceFaultAddressInfoEXT' describes a page fault triggered by an+-- invalid read operation.+pattern DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = DeviceFaultAddressTypeEXT 1++-- | 'DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT' specifies that+-- 'DeviceFaultAddressInfoEXT' describes a page fault triggered by an+-- invalid write operation.+pattern DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = DeviceFaultAddressTypeEXT 2++-- | 'DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT' describes a page fault+-- triggered by an attempt to execute non-executable memory.+pattern DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = DeviceFaultAddressTypeEXT 3++-- | 'DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT' specifies an+-- instruction pointer value at the time the fault occurred. This may or+-- may not be related to a fault.+pattern DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = DeviceFaultAddressTypeEXT 4++-- | 'DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT' specifies an+-- instruction pointer value associated with an invalid instruction fault.+pattern DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = DeviceFaultAddressTypeEXT 5++-- | 'DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT' specifies an+-- instruction pointer value associated with a fault.+pattern DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = DeviceFaultAddressTypeEXT 6++{-# COMPLETE+  DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT+  , DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT+  , DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT+  , DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT+  , DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT+  , DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT+  , DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT ::+    DeviceFaultAddressTypeEXT+  #-}++conNameDeviceFaultAddressTypeEXT :: String+conNameDeviceFaultAddressTypeEXT = "DeviceFaultAddressTypeEXT"++enumPrefixDeviceFaultAddressTypeEXT :: String+enumPrefixDeviceFaultAddressTypeEXT = "DEVICE_FAULT_ADDRESS_TYPE_"++showTableDeviceFaultAddressTypeEXT :: [(DeviceFaultAddressTypeEXT, String)]+showTableDeviceFaultAddressTypeEXT =+  [+    ( DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT+    , "NONE_EXT"+    )+  ,+    ( DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT+    , "READ_INVALID_EXT"+    )+  ,+    ( DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT+    , "WRITE_INVALID_EXT"+    )+  ,+    ( DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT+    , "EXECUTE_INVALID_EXT"+    )+  ,+    ( DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT+    , "INSTRUCTION_POINTER_UNKNOWN_EXT"+    )+  ,+    ( DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT+    , "INSTRUCTION_POINTER_INVALID_EXT"+    )+  ,+    ( DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT+    , "INSTRUCTION_POINTER_FAULT_EXT"+    )+  ]++instance Show DeviceFaultAddressTypeEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceFaultAddressTypeEXT+      showTableDeviceFaultAddressTypeEXT+      conNameDeviceFaultAddressTypeEXT+      (\(DeviceFaultAddressTypeEXT x) -> x)+      (showsPrec 11)++instance Read DeviceFaultAddressTypeEXT where+  readPrec =+    enumReadPrec+      enumPrefixDeviceFaultAddressTypeEXT+      showTableDeviceFaultAddressTypeEXT+      conNameDeviceFaultAddressTypeEXT+      DeviceFaultAddressTypeEXT++-- | VkDeviceFaultVendorBinaryHeaderVersionEXT - Encode vendor binary crash+-- dump version+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_device_fault VK_EXT_device_fault>,+-- 'DeviceFaultVendorBinaryHeaderVersionOneEXT', 'getDeviceFaultInfoEXT'+newtype DeviceFaultVendorBinaryHeaderVersionEXT = DeviceFaultVendorBinaryHeaderVersionEXT 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++-- | 'DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT' specifies version+-- one of the binary crash dump header.+pattern DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = DeviceFaultVendorBinaryHeaderVersionEXT 1++{-# COMPLETE DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT :: DeviceFaultVendorBinaryHeaderVersionEXT #-}++conNameDeviceFaultVendorBinaryHeaderVersionEXT :: String+conNameDeviceFaultVendorBinaryHeaderVersionEXT = "DeviceFaultVendorBinaryHeaderVersionEXT"++enumPrefixDeviceFaultVendorBinaryHeaderVersionEXT :: String+enumPrefixDeviceFaultVendorBinaryHeaderVersionEXT = "DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT"++showTableDeviceFaultVendorBinaryHeaderVersionEXT :: [(DeviceFaultVendorBinaryHeaderVersionEXT, String)]+showTableDeviceFaultVendorBinaryHeaderVersionEXT =+  [+    ( DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT+    , ""+    )+  ]++instance Show DeviceFaultVendorBinaryHeaderVersionEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceFaultVendorBinaryHeaderVersionEXT+      showTableDeviceFaultVendorBinaryHeaderVersionEXT+      conNameDeviceFaultVendorBinaryHeaderVersionEXT+      (\(DeviceFaultVendorBinaryHeaderVersionEXT x) -> x)+      (showsPrec 11)++instance Read DeviceFaultVendorBinaryHeaderVersionEXT where+  readPrec =+    enumReadPrec+      enumPrefixDeviceFaultVendorBinaryHeaderVersionEXT+      showTableDeviceFaultVendorBinaryHeaderVersionEXT+      conNameDeviceFaultVendorBinaryHeaderVersionEXT+      DeviceFaultVendorBinaryHeaderVersionEXT++type EXT_DEVICE_FAULT_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_DEVICE_FAULT_SPEC_VERSION"+pattern EXT_DEVICE_FAULT_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_DEVICE_FAULT_SPEC_VERSION = 1+++type EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault"++-- No documentation found for TopLevel "VK_EXT_DEVICE_FAULT_EXTENSION_NAME"+pattern EXT_DEVICE_FAULT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_DEVICE_FAULT_EXTENSION_NAME = "VK_EXT_device_fault"+
+ src/Vulkan/Extensions/VK_EXT_device_fault.hs-boot view
@@ -0,0 +1,195 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_device_fault - device extension+--+-- == VK_EXT_device_fault+--+-- [__Name String__]+--     @VK_EXT_device_fault@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     342+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Ralph Potter <<data:image/png;base64, GitLab>>r_potter+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_device_fault.adoc VK_EXT_device_fault>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2021-03-10+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Ralph Potter, Samsung+--+--     -   Stuart Smith, AMD+--+--     -   Jan-Harald Fredriksen, ARM+--+--     -   Mark Bellamy, ARM+--+--     -   Andrew Ellem, Google+--+--     -   Alex Walters, IMG+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Baldur Karlsson, Valve+--+-- == Description+--+-- Device loss can be triggered by a variety of issues, including invalid+-- API usage, implementation errors, or hardware failures.+--+-- This extension introduces a new command: 'getDeviceFaultInfoEXT', which+-- may be called subsequent to a+-- 'Vulkan.Core10.Enums.Result.ERROR_DEVICE_LOST' error code having been+-- returned by the implementation. This command allows developers to query+-- for additional information on GPU faults which may have caused device+-- loss, and to generate binary crash dumps, which may be loaded into+-- external tools for further diagnosis.+--+-- == New Commands+--+-- -   'getDeviceFaultInfoEXT'+--+-- == New Structures+--+-- -   'DeviceFaultAddressInfoEXT'+--+-- -   'DeviceFaultCountsEXT'+--+-- -   'DeviceFaultInfoEXT'+--+-- -   'DeviceFaultVendorBinaryHeaderVersionOneEXT'+--+-- -   'DeviceFaultVendorInfoEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceFaultFeaturesEXT'+--+-- == New Enums+--+-- -   'DeviceFaultAddressTypeEXT'+--+-- -   'DeviceFaultVendorBinaryHeaderVersionEXT'+--+-- == New Enum Constants+--+-- -   'EXT_DEVICE_FAULT_EXTENSION_NAME'+--+-- -   'EXT_DEVICE_FAULT_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2020-10-19 (Ralph Potter)+--+--     -   Initial revision+--+-- == See Also+--+-- 'DeviceFaultAddressInfoEXT', 'DeviceFaultAddressTypeEXT',+-- 'DeviceFaultCountsEXT', 'DeviceFaultInfoEXT',+-- 'DeviceFaultVendorBinaryHeaderVersionEXT',+-- 'DeviceFaultVendorBinaryHeaderVersionOneEXT',+-- 'DeviceFaultVendorInfoEXT', 'PhysicalDeviceFaultFeaturesEXT',+-- 'getDeviceFaultInfoEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_device_fault 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_device_fault  ( DeviceFaultAddressInfoEXT+                                              , DeviceFaultCountsEXT+                                              , DeviceFaultInfoEXT+                                              , DeviceFaultVendorBinaryHeaderVersionOneEXT+                                              , DeviceFaultVendorInfoEXT+                                              , PhysicalDeviceFaultFeaturesEXT+                                              ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data DeviceFaultAddressInfoEXT++instance ToCStruct DeviceFaultAddressInfoEXT+instance Show DeviceFaultAddressInfoEXT++instance FromCStruct DeviceFaultAddressInfoEXT+++data DeviceFaultCountsEXT++instance ToCStruct DeviceFaultCountsEXT+instance Show DeviceFaultCountsEXT++instance FromCStruct DeviceFaultCountsEXT+++data DeviceFaultInfoEXT++instance ToCStruct DeviceFaultInfoEXT+instance Show DeviceFaultInfoEXT++instance FromCStruct DeviceFaultInfoEXT+++data DeviceFaultVendorBinaryHeaderVersionOneEXT++instance ToCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT+instance Show DeviceFaultVendorBinaryHeaderVersionOneEXT++instance FromCStruct DeviceFaultVendorBinaryHeaderVersionOneEXT+++data DeviceFaultVendorInfoEXT++instance ToCStruct DeviceFaultVendorInfoEXT+instance Show DeviceFaultVendorInfoEXT++instance FromCStruct DeviceFaultVendorInfoEXT+++data PhysicalDeviceFaultFeaturesEXT++instance ToCStruct PhysicalDeviceFaultFeaturesEXT+instance Show PhysicalDeviceFaultFeaturesEXT++instance FromCStruct PhysicalDeviceFaultFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_device_memory_report.hs view
@@ -621,8 +621,6 @@ newtype DeviceMemoryReportFlagsEXT = DeviceMemoryReportFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDeviceMemoryReportFlagsEXT :: String conNameDeviceMemoryReportFlagsEXT = "DeviceMemoryReportFlagsEXT" @@ -633,18 +631,21 @@ showTableDeviceMemoryReportFlagsEXT = []  instance Show DeviceMemoryReportFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixDeviceMemoryReportFlagsEXT-                            showTableDeviceMemoryReportFlagsEXT-                            conNameDeviceMemoryReportFlagsEXT-                            (\(DeviceMemoryReportFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceMemoryReportFlagsEXT+      showTableDeviceMemoryReportFlagsEXT+      conNameDeviceMemoryReportFlagsEXT+      (\(DeviceMemoryReportFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DeviceMemoryReportFlagsEXT where-  readPrec = enumReadPrec enumPrefixDeviceMemoryReportFlagsEXT-                          showTableDeviceMemoryReportFlagsEXT-                          conNameDeviceMemoryReportFlagsEXT-                          DeviceMemoryReportFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDeviceMemoryReportFlagsEXT+      showTableDeviceMemoryReportFlagsEXT+      conNameDeviceMemoryReportFlagsEXT+      DeviceMemoryReportFlagsEXT  -- | VkDeviceMemoryReportEventTypeEXT - Events that can occur on a device -- memory object@@ -659,27 +660,35 @@ -- | 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT' specifies this event -- corresponds to the allocation of an internal device memory object or a -- 'Vulkan.Core10.Handles.DeviceMemory'.-pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT          = DeviceMemoryReportEventTypeEXT 0+pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = DeviceMemoryReportEventTypeEXT 0+ -- | 'DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT' specifies this event -- corresponds to the deallocation of an internally-allocated device memory -- object or a 'Vulkan.Core10.Handles.DeviceMemory'.-pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT              = DeviceMemoryReportEventTypeEXT 1+pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = DeviceMemoryReportEventTypeEXT 1+ -- | 'DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT' specifies this event -- corresponds to the import of an external memory object.-pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT            = DeviceMemoryReportEventTypeEXT 2+pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = DeviceMemoryReportEventTypeEXT 2+ -- | 'DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT' specifies this event is -- the release of an imported external memory object.-pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT          = DeviceMemoryReportEventTypeEXT 3+pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = DeviceMemoryReportEventTypeEXT 3+ -- | 'DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT' specifies this -- event corresponds to the failed allocation of an internal device memory -- object or a 'Vulkan.Core10.Handles.DeviceMemory'. pattern DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = DeviceMemoryReportEventTypeEXT 4-{-# complete DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT,-             DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT,-             DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT,-             DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT,-             DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT :: DeviceMemoryReportEventTypeEXT #-} +{-# COMPLETE+  DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT+  , DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT+  , DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT+  , DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT+  , DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT ::+    DeviceMemoryReportEventTypeEXT+  #-}+ conNameDeviceMemoryReportEventTypeEXT :: String conNameDeviceMemoryReportEventTypeEXT = "DeviceMemoryReportEventTypeEXT" @@ -688,26 +697,44 @@  showTableDeviceMemoryReportEventTypeEXT :: [(DeviceMemoryReportEventTypeEXT, String)] showTableDeviceMemoryReportEventTypeEXT =-  [ (DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT         , "ALLOCATE_EXT")-  , (DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT             , "FREE_EXT")-  , (DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT           , "IMPORT_EXT")-  , (DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT         , "UNIMPORT_EXT")-  , (DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT, "ALLOCATION_FAILED_EXT")+  [+    ( DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT+    , "ALLOCATE_EXT"+    )+  ,+    ( DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT+    , "FREE_EXT"+    )+  ,+    ( DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT+    , "IMPORT_EXT"+    )+  ,+    ( DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT+    , "UNIMPORT_EXT"+    )+  ,+    ( DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT+    , "ALLOCATION_FAILED_EXT"+    )   ]  instance Show DeviceMemoryReportEventTypeEXT where-  showsPrec = enumShowsPrec enumPrefixDeviceMemoryReportEventTypeEXT-                            showTableDeviceMemoryReportEventTypeEXT-                            conNameDeviceMemoryReportEventTypeEXT-                            (\(DeviceMemoryReportEventTypeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceMemoryReportEventTypeEXT+      showTableDeviceMemoryReportEventTypeEXT+      conNameDeviceMemoryReportEventTypeEXT+      (\(DeviceMemoryReportEventTypeEXT x) -> x)+      (showsPrec 11)  instance Read DeviceMemoryReportEventTypeEXT where-  readPrec = enumReadPrec enumPrefixDeviceMemoryReportEventTypeEXT-                          showTableDeviceMemoryReportEventTypeEXT-                          conNameDeviceMemoryReportEventTypeEXT-                          DeviceMemoryReportEventTypeEXT-+  readPrec =+    enumReadPrec+      enumPrefixDeviceMemoryReportEventTypeEXT+      showTableDeviceMemoryReportEventTypeEXT+      conNameDeviceMemoryReportEventTypeEXT+      DeviceMemoryReportEventTypeEXT  type FN_vkDeviceMemoryReportCallbackEXT = ("pCallbackData" ::: Ptr DeviceMemoryReportCallbackDataEXT) -> ("pUserData" ::: Ptr ()) -> IO () -- | PFN_vkDeviceMemoryReportCallbackEXT - Application-defined device memory
src/Vulkan/Extensions/VK_EXT_direct_mode_display.hs view
@@ -173,7 +173,9 @@   unless (vkReleaseDisplayEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseDisplayEXT is null" Nothing Nothing   let vkReleaseDisplayEXT' = mkVkReleaseDisplayEXT vkReleaseDisplayEXTPtr-  _ <- traceAroundEvent "vkReleaseDisplayEXT" (vkReleaseDisplayEXT' (physicalDeviceHandle (physicalDevice)) (display))+  _ <- traceAroundEvent "vkReleaseDisplayEXT" (vkReleaseDisplayEXT'+                                                 (physicalDeviceHandle (physicalDevice))+                                                 (display))   pure $ ()  
src/Vulkan/Extensions/VK_EXT_directfb_surface.hs view
@@ -230,7 +230,9 @@                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                             ("allocator" ::: Maybe AllocationCallbacks)                          -> io (SurfaceKHR)-createDirectFBSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do+createDirectFBSurfaceEXT instance'+                           createInfo+                           allocator = liftIO . evalContT $ do   let vkCreateDirectFBSurfaceEXTPtr = pVkCreateDirectFBSurfaceEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateDirectFBSurfaceEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDirectFBSurfaceEXT is null" Nothing Nothing@@ -240,7 +242,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateDirectFBSurfaceEXT" (vkCreateDirectFBSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateDirectFBSurfaceEXT" (vkCreateDirectFBSurfaceEXT'+                                                               (instanceHandle (instance'))+                                                               pCreateInfo+                                                               pAllocator+                                                               (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -289,12 +295,17 @@                                                    -- @dfb@ /must/ be a valid pointer to an 'IDirectFB' value                                                    ("dfb" ::: Ptr IDirectFB)                                                 -> io (Bool)-getPhysicalDeviceDirectFBPresentationSupportEXT physicalDevice queueFamilyIndex dfb = liftIO $ do+getPhysicalDeviceDirectFBPresentationSupportEXT physicalDevice+                                                  queueFamilyIndex+                                                  dfb = liftIO $ do   let vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr = pVkGetPhysicalDeviceDirectFBPresentationSupportEXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   unless (vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceDirectFBPresentationSupportEXT is null" Nothing Nothing   let vkGetPhysicalDeviceDirectFBPresentationSupportEXT' = mkVkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXTPtr-  r <- traceAroundEvent "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" (vkGetPhysicalDeviceDirectFBPresentationSupportEXT' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dfb))+  r <- traceAroundEvent "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" (vkGetPhysicalDeviceDirectFBPresentationSupportEXT'+                                                                               (physicalDeviceHandle (physicalDevice))+                                                                               (queueFamilyIndex)+                                                                               (dfb))   pure $ ((bool32ToBool r))  @@ -385,8 +396,6 @@ newtype DirectFBSurfaceCreateFlagsEXT = DirectFBSurfaceCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDirectFBSurfaceCreateFlagsEXT :: String conNameDirectFBSurfaceCreateFlagsEXT = "DirectFBSurfaceCreateFlagsEXT" @@ -397,18 +406,21 @@ showTableDirectFBSurfaceCreateFlagsEXT = []  instance Show DirectFBSurfaceCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixDirectFBSurfaceCreateFlagsEXT-                            showTableDirectFBSurfaceCreateFlagsEXT-                            conNameDirectFBSurfaceCreateFlagsEXT-                            (\(DirectFBSurfaceCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDirectFBSurfaceCreateFlagsEXT+      showTableDirectFBSurfaceCreateFlagsEXT+      conNameDirectFBSurfaceCreateFlagsEXT+      (\(DirectFBSurfaceCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DirectFBSurfaceCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixDirectFBSurfaceCreateFlagsEXT-                          showTableDirectFBSurfaceCreateFlagsEXT-                          conNameDirectFBSurfaceCreateFlagsEXT-                          DirectFBSurfaceCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixDirectFBSurfaceCreateFlagsEXT+      showTableDirectFBSurfaceCreateFlagsEXT+      conNameDirectFBSurfaceCreateFlagsEXT+      DirectFBSurfaceCreateFlagsEXT  type EXT_DIRECTFB_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_discard_rectangles.hs view
@@ -310,14 +310,20 @@                              -- rectangles.                              ("discardRectangles" ::: Vector Rect2D)                           -> io ()-cmdSetDiscardRectangleEXT commandBuffer firstDiscardRectangle discardRectangles = liftIO . evalContT $ do+cmdSetDiscardRectangleEXT commandBuffer+                            firstDiscardRectangle+                            discardRectangles = liftIO . evalContT $ do   let vkCmdSetDiscardRectangleEXTPtr = pVkCmdSetDiscardRectangleEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetDiscardRectangleEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDiscardRectangleEXT is null" Nothing Nothing   let vkCmdSetDiscardRectangleEXT' = mkVkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXTPtr   pPDiscardRectangles <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (discardRectangles)) * 16)   lift $ Data.Vector.imapM_ (\i e -> poke (pPDiscardRectangles `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (discardRectangles)-  lift $ traceAroundEvent "vkCmdSetDiscardRectangleEXT" (vkCmdSetDiscardRectangleEXT' (commandBufferHandle (commandBuffer)) (firstDiscardRectangle) ((fromIntegral (Data.Vector.length $ (discardRectangles)) :: Word32)) (pPDiscardRectangles))+  lift $ traceAroundEvent "vkCmdSetDiscardRectangleEXT" (vkCmdSetDiscardRectangleEXT'+                                                           (commandBufferHandle (commandBuffer))+                                                           (firstDiscardRectangle)+                                                           ((fromIntegral (Data.Vector.length $ (discardRectangles)) :: Word32))+                                                           (pPDiscardRectangles))   pure $ ()  @@ -481,8 +487,6 @@ newtype PipelineDiscardRectangleStateCreateFlagsEXT = PipelineDiscardRectangleStateCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineDiscardRectangleStateCreateFlagsEXT :: String conNamePipelineDiscardRectangleStateCreateFlagsEXT = "PipelineDiscardRectangleStateCreateFlagsEXT" @@ -493,18 +497,21 @@ showTablePipelineDiscardRectangleStateCreateFlagsEXT = []  instance Show PipelineDiscardRectangleStateCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineDiscardRectangleStateCreateFlagsEXT-                            showTablePipelineDiscardRectangleStateCreateFlagsEXT-                            conNamePipelineDiscardRectangleStateCreateFlagsEXT-                            (\(PipelineDiscardRectangleStateCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineDiscardRectangleStateCreateFlagsEXT+      showTablePipelineDiscardRectangleStateCreateFlagsEXT+      conNamePipelineDiscardRectangleStateCreateFlagsEXT+      (\(PipelineDiscardRectangleStateCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineDiscardRectangleStateCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixPipelineDiscardRectangleStateCreateFlagsEXT-                          showTablePipelineDiscardRectangleStateCreateFlagsEXT-                          conNamePipelineDiscardRectangleStateCreateFlagsEXT-                          PipelineDiscardRectangleStateCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixPipelineDiscardRectangleStateCreateFlagsEXT+      showTablePipelineDiscardRectangleStateCreateFlagsEXT+      conNamePipelineDiscardRectangleStateCreateFlagsEXT+      PipelineDiscardRectangleStateCreateFlagsEXT  -- | VkDiscardRectangleModeEXT - Specify the discard rectangle mode --@@ -518,12 +525,17 @@ -- | 'DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT' specifies that the discard -- rectangle test is inclusive. pattern DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = DiscardRectangleModeEXT 0+ -- | 'DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT' specifies that the discard -- rectangle test is exclusive. pattern DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = DiscardRectangleModeEXT 1-{-# complete DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT,-             DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT :: DiscardRectangleModeEXT #-} +{-# COMPLETE+  DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT+  , DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT ::+    DiscardRectangleModeEXT+  #-}+ conNameDiscardRectangleModeEXT :: String conNameDiscardRectangleModeEXT = "DiscardRectangleModeEXT" @@ -532,21 +544,32 @@  showTableDiscardRectangleModeEXT :: [(DiscardRectangleModeEXT, String)] showTableDiscardRectangleModeEXT =-  [(DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, "INCLUSIVE_EXT"), (DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT, "EXCLUSIVE_EXT")]+  [+    ( DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT+    , "INCLUSIVE_EXT"+    )+  ,+    ( DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT+    , "EXCLUSIVE_EXT"+    )+  ]  instance Show DiscardRectangleModeEXT where-  showsPrec = enumShowsPrec enumPrefixDiscardRectangleModeEXT-                            showTableDiscardRectangleModeEXT-                            conNameDiscardRectangleModeEXT-                            (\(DiscardRectangleModeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDiscardRectangleModeEXT+      showTableDiscardRectangleModeEXT+      conNameDiscardRectangleModeEXT+      (\(DiscardRectangleModeEXT x) -> x)+      (showsPrec 11)  instance Read DiscardRectangleModeEXT where-  readPrec = enumReadPrec enumPrefixDiscardRectangleModeEXT-                          showTableDiscardRectangleModeEXT-                          conNameDiscardRectangleModeEXT-                          DiscardRectangleModeEXT-+  readPrec =+    enumReadPrec+      enumPrefixDiscardRectangleModeEXT+      showTableDiscardRectangleModeEXT+      conNameDiscardRectangleModeEXT+      DiscardRectangleModeEXT  type EXT_DISCARD_RECTANGLES_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_display_control.hs view
@@ -310,7 +310,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDisplayPowerControlEXT is null" Nothing Nothing   let vkDisplayPowerControlEXT' = mkVkDisplayPowerControlEXT vkDisplayPowerControlEXTPtr   pDisplayPowerInfo <- ContT $ withCStruct (displayPowerInfo)-  r <- lift $ traceAroundEvent "vkDisplayPowerControlEXT" (vkDisplayPowerControlEXT' (deviceHandle (device)) (display) pDisplayPowerInfo)+  r <- lift $ traceAroundEvent "vkDisplayPowerControlEXT" (vkDisplayPowerControlEXT'+                                                             (deviceHandle (device))+                                                             (display)+                                                             pDisplayPowerInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -367,7 +370,9 @@                           -- chapter.                           ("allocator" ::: Maybe AllocationCallbacks)                        -> io (Fence)-registerDeviceEventEXT device deviceEventInfo allocator = liftIO . evalContT $ do+registerDeviceEventEXT device+                         deviceEventInfo+                         allocator = liftIO . evalContT $ do   let vkRegisterDeviceEventEXTPtr = pVkRegisterDeviceEventEXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkRegisterDeviceEventEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkRegisterDeviceEventEXT is null" Nothing Nothing@@ -377,7 +382,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFence <- ContT $ bracket (callocBytes @Fence 8) free-  r <- lift $ traceAroundEvent "vkRegisterDeviceEventEXT" (vkRegisterDeviceEventEXT' (deviceHandle (device)) pDeviceEventInfo pAllocator (pPFence))+  r <- lift $ traceAroundEvent "vkRegisterDeviceEventEXT" (vkRegisterDeviceEventEXT'+                                                             (deviceHandle (device))+                                                             pDeviceEventInfo+                                                             pAllocator+                                                             (pPFence))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFence <- lift $ peek @Fence pPFence   pure $ (pFence)@@ -446,7 +455,10 @@                            -- chapter.                            ("allocator" ::: Maybe AllocationCallbacks)                         -> io (Fence)-registerDisplayEventEXT device display displayEventInfo allocator = liftIO . evalContT $ do+registerDisplayEventEXT device+                          display+                          displayEventInfo+                          allocator = liftIO . evalContT $ do   let vkRegisterDisplayEventEXTPtr = pVkRegisterDisplayEventEXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkRegisterDisplayEventEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkRegisterDisplayEventEXT is null" Nothing Nothing@@ -456,7 +468,12 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFence <- ContT $ bracket (callocBytes @Fence 8) free-  r <- lift $ traceAroundEvent "vkRegisterDisplayEventEXT" (vkRegisterDisplayEventEXT' (deviceHandle (device)) (display) pDisplayEventInfo pAllocator (pPFence))+  r <- lift $ traceAroundEvent "vkRegisterDisplayEventEXT" (vkRegisterDisplayEventEXT'+                                                              (deviceHandle (device))+                                                              (display)+                                                              pDisplayEventInfo+                                                              pAllocator+                                                              (pPFence))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFence <- lift $ peek @Fence pPFence   pure $ (pFence)@@ -541,7 +558,11 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSwapchainCounterEXT is null" Nothing Nothing   let vkGetSwapchainCounterEXT' = mkVkGetSwapchainCounterEXT vkGetSwapchainCounterEXTPtr   pPCounterValue <- ContT $ bracket (callocBytes @Word64 8) free-  r <- lift $ traceAroundEvent "vkGetSwapchainCounterEXT" (vkGetSwapchainCounterEXT' (deviceHandle (device)) (swapchain) (counter) (pPCounterValue))+  r <- lift $ traceAroundEvent "vkGetSwapchainCounterEXT" (vkGetSwapchainCounterEXT'+                                                             (deviceHandle (device))+                                                             (swapchain)+                                                             (counter)+                                                             (pPCounterValue))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCounterValue <- lift $ peek @Word64 pPCounterValue   pure $ (pCounterValue)@@ -786,19 +807,25 @@  -- | 'DISPLAY_POWER_STATE_OFF_EXT' specifies that the display is powered -- down.-pattern DISPLAY_POWER_STATE_OFF_EXT     = DisplayPowerStateEXT 0+pattern DISPLAY_POWER_STATE_OFF_EXT = DisplayPowerStateEXT 0+ -- | 'DISPLAY_POWER_STATE_SUSPEND_EXT' specifies that the display is put into -- a low power mode, from which it /may/ be able to transition back to -- 'DISPLAY_POWER_STATE_ON_EXT' more quickly than if it were in -- 'DISPLAY_POWER_STATE_OFF_EXT'. This state /may/ be the same as -- 'DISPLAY_POWER_STATE_OFF_EXT'. pattern DISPLAY_POWER_STATE_SUSPEND_EXT = DisplayPowerStateEXT 1+ -- | 'DISPLAY_POWER_STATE_ON_EXT' specifies that the display is powered on.-pattern DISPLAY_POWER_STATE_ON_EXT      = DisplayPowerStateEXT 2-{-# complete DISPLAY_POWER_STATE_OFF_EXT,-             DISPLAY_POWER_STATE_SUSPEND_EXT,-             DISPLAY_POWER_STATE_ON_EXT :: DisplayPowerStateEXT #-}+pattern DISPLAY_POWER_STATE_ON_EXT = DisplayPowerStateEXT 2 +{-# COMPLETE+  DISPLAY_POWER_STATE_OFF_EXT+  , DISPLAY_POWER_STATE_SUSPEND_EXT+  , DISPLAY_POWER_STATE_ON_EXT ::+    DisplayPowerStateEXT+  #-}+ conNameDisplayPowerStateEXT :: String conNameDisplayPowerStateEXT = "DisplayPowerStateEXT" @@ -807,24 +834,30 @@  showTableDisplayPowerStateEXT :: [(DisplayPowerStateEXT, String)] showTableDisplayPowerStateEXT =-  [ (DISPLAY_POWER_STATE_OFF_EXT    , "OFF_EXT")-  , (DISPLAY_POWER_STATE_SUSPEND_EXT, "SUSPEND_EXT")-  , (DISPLAY_POWER_STATE_ON_EXT     , "ON_EXT")+  [ (DISPLAY_POWER_STATE_OFF_EXT, "OFF_EXT")+  ,+    ( DISPLAY_POWER_STATE_SUSPEND_EXT+    , "SUSPEND_EXT"+    )+  , (DISPLAY_POWER_STATE_ON_EXT, "ON_EXT")   ]  instance Show DisplayPowerStateEXT where-  showsPrec = enumShowsPrec enumPrefixDisplayPowerStateEXT-                            showTableDisplayPowerStateEXT-                            conNameDisplayPowerStateEXT-                            (\(DisplayPowerStateEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDisplayPowerStateEXT+      showTableDisplayPowerStateEXT+      conNameDisplayPowerStateEXT+      (\(DisplayPowerStateEXT x) -> x)+      (showsPrec 11)  instance Read DisplayPowerStateEXT where-  readPrec = enumReadPrec enumPrefixDisplayPowerStateEXT-                          showTableDisplayPowerStateEXT-                          conNameDisplayPowerStateEXT-                          DisplayPowerStateEXT-+  readPrec =+    enumReadPrec+      enumPrefixDisplayPowerStateEXT+      showTableDisplayPowerStateEXT+      conNameDisplayPowerStateEXT+      DisplayPowerStateEXT  -- | VkDeviceEventTypeEXT - Events that can occur on a device object --@@ -840,8 +873,9 @@ -- device. Applications /can/ use this notification to determine when they -- need to re-enumerate the available displays on a device. pattern DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = DeviceEventTypeEXT 0-{-# complete DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT :: DeviceEventTypeEXT #-} +{-# COMPLETE DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT :: DeviceEventTypeEXT #-}+ conNameDeviceEventTypeEXT :: String conNameDeviceEventTypeEXT = "DeviceEventTypeEXT" @@ -852,16 +886,21 @@ showTableDeviceEventTypeEXT = [(DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, "")]  instance Show DeviceEventTypeEXT where-  showsPrec = enumShowsPrec enumPrefixDeviceEventTypeEXT-                            showTableDeviceEventTypeEXT-                            conNameDeviceEventTypeEXT-                            (\(DeviceEventTypeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceEventTypeEXT+      showTableDeviceEventTypeEXT+      conNameDeviceEventTypeEXT+      (\(DeviceEventTypeEXT x) -> x)+      (showsPrec 11)  instance Read DeviceEventTypeEXT where   readPrec =-    enumReadPrec enumPrefixDeviceEventTypeEXT showTableDeviceEventTypeEXT conNameDeviceEventTypeEXT DeviceEventTypeEXT-+    enumReadPrec+      enumPrefixDeviceEventTypeEXT+      showTableDeviceEventTypeEXT+      conNameDeviceEventTypeEXT+      DeviceEventTypeEXT  -- | VkDisplayEventTypeEXT - Events that can occur on a display object --@@ -876,8 +915,9 @@ -- signaled when the first pixel of the next display refresh cycle leaves -- the display engine for the display. pattern DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = DisplayEventTypeEXT 0-{-# complete DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT :: DisplayEventTypeEXT #-} +{-# COMPLETE DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT :: DisplayEventTypeEXT #-}+ conNameDisplayEventTypeEXT :: String conNameDisplayEventTypeEXT = "DisplayEventTypeEXT" @@ -888,18 +928,21 @@ showTableDisplayEventTypeEXT = [(DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, "")]  instance Show DisplayEventTypeEXT where-  showsPrec = enumShowsPrec enumPrefixDisplayEventTypeEXT-                            showTableDisplayEventTypeEXT-                            conNameDisplayEventTypeEXT-                            (\(DisplayEventTypeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixDisplayEventTypeEXT+      showTableDisplayEventTypeEXT+      conNameDisplayEventTypeEXT+      (\(DisplayEventTypeEXT x) -> x)+      (showsPrec 11)  instance Read DisplayEventTypeEXT where-  readPrec = enumReadPrec enumPrefixDisplayEventTypeEXT-                          showTableDisplayEventTypeEXT-                          conNameDisplayEventTypeEXT-                          DisplayEventTypeEXT-+  readPrec =+    enumReadPrec+      enumPrefixDisplayEventTypeEXT+      showTableDisplayEventTypeEXT+      conNameDisplayEventTypeEXT+      DisplayEventTypeEXT  type EXT_DISPLAY_CONTROL_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_display_surface_counter.hs view
@@ -256,13 +256,17 @@                                          -> -- | @surface@ is the surface that will be associated with the swapchain.                                             SurfaceKHR                                          -> io (SurfaceCapabilities2EXT)-getPhysicalDeviceSurfaceCapabilities2EXT physicalDevice surface = liftIO . evalContT $ do+getPhysicalDeviceSurfaceCapabilities2EXT physicalDevice+                                           surface = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfaceCapabilities2EXTPtr = pVkGetPhysicalDeviceSurfaceCapabilities2EXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfaceCapabilities2EXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceCapabilities2EXT is null" Nothing Nothing   let vkGetPhysicalDeviceSurfaceCapabilities2EXT' = mkVkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXTPtr   pPSurfaceCapabilities <- ContT (withZeroCStruct @SurfaceCapabilities2EXT)-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilities2EXT" (vkGetPhysicalDeviceSurfaceCapabilities2EXT' (physicalDeviceHandle (physicalDevice)) (surface) (pPSurfaceCapabilities))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilities2EXT" (vkGetPhysicalDeviceSurfaceCapabilities2EXT'+                                                                               (physicalDeviceHandle (physicalDevice))+                                                                               (surface)+                                                                               (pPSurfaceCapabilities))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurfaceCapabilities <- lift $ peekCStruct @SurfaceCapabilities2EXT pPSurfaceCapabilities   pure $ (pSurfaceCapabilities)@@ -420,7 +424,17 @@     supportedUsageFlags <- peek @ImageUsageFlags ((p `plusPtr` 64 :: Ptr ImageUsageFlags))     supportedSurfaceCounters <- peek @SurfaceCounterFlagsEXT ((p `plusPtr` 68 :: Ptr SurfaceCounterFlagsEXT))     pure $ SurfaceCapabilities2EXT-             minImageCount maxImageCount currentExtent minImageExtent maxImageExtent maxImageArrayLayers supportedTransforms currentTransform supportedCompositeAlpha supportedUsageFlags supportedSurfaceCounters+             minImageCount+             maxImageCount+             currentExtent+             minImageExtent+             maxImageExtent+             maxImageArrayLayers+             supportedTransforms+             currentTransform+             supportedCompositeAlpha+             supportedUsageFlags+             supportedSurfaceCounters  instance Storable SurfaceCapabilities2EXT where   sizeOf ~_ = 72@@ -470,18 +484,21 @@ showTableSurfaceCounterFlagBitsEXT = [(SURFACE_COUNTER_VBLANK_BIT_EXT, "")]  instance Show SurfaceCounterFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixSurfaceCounterFlagBitsEXT-                            showTableSurfaceCounterFlagBitsEXT-                            conNameSurfaceCounterFlagBitsEXT-                            (\(SurfaceCounterFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSurfaceCounterFlagBitsEXT+      showTableSurfaceCounterFlagBitsEXT+      conNameSurfaceCounterFlagBitsEXT+      (\(SurfaceCounterFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SurfaceCounterFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixSurfaceCounterFlagBitsEXT-                          showTableSurfaceCounterFlagBitsEXT-                          conNameSurfaceCounterFlagBitsEXT-                          SurfaceCounterFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixSurfaceCounterFlagBitsEXT+      showTableSurfaceCounterFlagBitsEXT+      conNameSurfaceCounterFlagBitsEXT+      SurfaceCounterFlagBitsEXT  type EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_extended_dynamic_state2.hs view
@@ -280,7 +280,9 @@   unless (vkCmdSetPatchControlPointsEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPatchControlPointsEXT is null" Nothing Nothing   let vkCmdSetPatchControlPointsEXT' = mkVkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXTPtr-  traceAroundEvent "vkCmdSetPatchControlPointsEXT" (vkCmdSetPatchControlPointsEXT' (commandBufferHandle (commandBuffer)) (patchControlPoints))+  traceAroundEvent "vkCmdSetPatchControlPointsEXT" (vkCmdSetPatchControlPointsEXT'+                                                      (commandBufferHandle (commandBuffer))+                                                      (patchControlPoints))   pure $ ()  @@ -365,7 +367,9 @@   unless (vkCmdSetLogicOpEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLogicOpEXT is null" Nothing Nothing   let vkCmdSetLogicOpEXT' = mkVkCmdSetLogicOpEXT vkCmdSetLogicOpEXTPtr-  traceAroundEvent "vkCmdSetLogicOpEXT" (vkCmdSetLogicOpEXT' (commandBufferHandle (commandBuffer)) (logicOp))+  traceAroundEvent "vkCmdSetLogicOpEXT" (vkCmdSetLogicOpEXT'+                                           (commandBufferHandle (commandBuffer))+                                           (logicOp))   pure $ ()  @@ -472,7 +476,9 @@     extendedDynamicState2LogicOp <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     extendedDynamicState2PatchControlPoints <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceExtendedDynamicState2FeaturesEXT-             (bool32ToBool extendedDynamicState2) (bool32ToBool extendedDynamicState2LogicOp) (bool32ToBool extendedDynamicState2PatchControlPoints)+             (bool32ToBool extendedDynamicState2)+             (bool32ToBool extendedDynamicState2LogicOp)+             (bool32ToBool extendedDynamicState2PatchControlPoints)  instance Storable PhysicalDeviceExtendedDynamicState2FeaturesEXT where   sizeOf ~_ = 32
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs view
@@ -0,0 +1,4201 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_extended_dynamic_state3 - device extension+--+-- == VK_EXT_extended_dynamic_state3+--+-- [__Name String__]+--     @VK_EXT_extended_dynamic_state3@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     456+--+-- [__Revision__]+--     2+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Piers Daniell+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state3] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_extended_dynamic_state3 extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_extended_dynamic_state3.adoc VK_EXT_extended_dynamic_state3>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-09-02+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Daniel Story, Nintendo+--+--     -   Jamie Madill, Google+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Jason Ekstrand, Collabora+--+--     -   Mike Blumenkrantz, Valve+--+--     -   Ricardo Garcia, Igalia+--+--     -   Samuel Pitoiset, Valve+--+--     -   Shahbaz Youssefi, Google+--+--     -   Stu Smith, AMD+--+--     -   Tapani Pälli, Intel+--+-- == Description+--+-- This extension adds almost all of the remaining pipeline state as+-- dynamic state to help applications further reduce the number of+-- monolithic pipelines they need to create and bind.+--+-- == New Commands+--+-- -   'cmdSetAlphaToCoverageEnableEXT'+--+-- -   'cmdSetAlphaToOneEnableEXT'+--+-- -   'cmdSetColorBlendAdvancedEXT'+--+-- -   'cmdSetColorBlendEnableEXT'+--+-- -   'cmdSetColorBlendEquationEXT'+--+-- -   'cmdSetColorWriteMaskEXT'+--+-- -   'cmdSetConservativeRasterizationModeEXT'+--+-- -   'cmdSetCoverageModulationModeNV'+--+-- -   'cmdSetCoverageModulationTableEnableNV'+--+-- -   'cmdSetCoverageModulationTableNV'+--+-- -   'cmdSetCoverageReductionModeNV'+--+-- -   'cmdSetCoverageToColorEnableNV'+--+-- -   'cmdSetCoverageToColorLocationNV'+--+-- -   'cmdSetDepthClampEnableEXT'+--+-- -   'cmdSetDepthClipEnableEXT'+--+-- -   'cmdSetDepthClipNegativeOneToOneEXT'+--+-- -   'cmdSetExtraPrimitiveOverestimationSizeEXT'+--+-- -   'cmdSetLineRasterizationModeEXT'+--+-- -   'cmdSetLineStippleEnableEXT'+--+-- -   'cmdSetLogicOpEnableEXT'+--+-- -   'cmdSetPolygonModeEXT'+--+-- -   'cmdSetProvokingVertexModeEXT'+--+-- -   'cmdSetRasterizationSamplesEXT'+--+-- -   'cmdSetRasterizationStreamEXT'+--+-- -   'cmdSetRepresentativeFragmentTestEnableNV'+--+-- -   'cmdSetSampleLocationsEnableEXT'+--+-- -   'cmdSetSampleMaskEXT'+--+-- -   'cmdSetShadingRateImageEnableNV'+--+-- -   'cmdSetTessellationDomainOriginEXT'+--+-- -   'cmdSetViewportSwizzleNV'+--+-- -   'cmdSetViewportWScalingEnableNV'+--+-- == New Structures+--+-- -   'ColorBlendAdvancedEXT'+--+-- -   'ColorBlendEquationEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceExtendedDynamicState3FeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceExtendedDynamicState3PropertiesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME'+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT'+--+-- == Issues+--+-- 1) What about the VkPipelineMultisampleStateCreateInfo state+-- @sampleShadingEnable@ and @minSampleShading@?+--+-- [UNRESOLVED]+--+--     -   @sampleShadingEnable@ and @minSampleShading@ are required when+--         compiling the fragment shader, and it is not meaningful to set+--         them dynamically since they always need to match the fragment+--         shader state, so this hardware state may as well just come from+--         the pipeline with the fragment shader.+--+-- == Version History+--+-- -   Revision 2, 2022-07-18 (Piers Daniell)+--+--     -   Added rasterizationSamples+--+-- -   Revision 1, 2022-05-18 (Piers Daniell)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'ColorBlendAdvancedEXT', 'ColorBlendEquationEXT',+-- 'PhysicalDeviceExtendedDynamicState3FeaturesEXT',+-- 'PhysicalDeviceExtendedDynamicState3PropertiesEXT',+-- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT',+-- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT',+-- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT',+-- 'cmdSetConservativeRasterizationModeEXT',+-- 'cmdSetCoverageModulationModeNV',+-- 'cmdSetCoverageModulationTableEnableNV',+-- 'cmdSetCoverageModulationTableNV', 'cmdSetCoverageReductionModeNV',+-- 'cmdSetCoverageToColorEnableNV', 'cmdSetCoverageToColorLocationNV',+-- 'cmdSetDepthClampEnableEXT', 'cmdSetDepthClipEnableEXT',+-- 'cmdSetDepthClipNegativeOneToOneEXT',+-- 'cmdSetExtraPrimitiveOverestimationSizeEXT',+-- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT',+-- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT',+-- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT',+-- 'cmdSetRasterizationStreamEXT',+-- 'cmdSetRepresentativeFragmentTestEnableNV',+-- 'cmdSetSampleLocationsEnableEXT', 'cmdSetSampleMaskEXT',+-- 'cmdSetShadingRateImageEnableNV', 'cmdSetTessellationDomainOriginEXT',+-- 'cmdSetViewportSwizzleNV', 'cmdSetViewportWScalingEnableNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 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_state3  ( cmdSetTessellationDomainOriginEXT+                                                         , cmdSetDepthClampEnableEXT+                                                         , cmdSetPolygonModeEXT+                                                         , cmdSetRasterizationSamplesEXT+                                                         , cmdSetSampleMaskEXT+                                                         , cmdSetAlphaToCoverageEnableEXT+                                                         , cmdSetAlphaToOneEnableEXT+                                                         , cmdSetLogicOpEnableEXT+                                                         , cmdSetColorBlendEnableEXT+                                                         , cmdSetColorBlendEquationEXT+                                                         , cmdSetColorWriteMaskEXT+                                                         , cmdSetRasterizationStreamEXT+                                                         , cmdSetConservativeRasterizationModeEXT+                                                         , cmdSetExtraPrimitiveOverestimationSizeEXT+                                                         , cmdSetDepthClipEnableEXT+                                                         , cmdSetSampleLocationsEnableEXT+                                                         , cmdSetColorBlendAdvancedEXT+                                                         , cmdSetProvokingVertexModeEXT+                                                         , cmdSetLineRasterizationModeEXT+                                                         , cmdSetLineStippleEnableEXT+                                                         , cmdSetDepthClipNegativeOneToOneEXT+                                                         , cmdSetViewportWScalingEnableNV+                                                         , cmdSetViewportSwizzleNV+                                                         , cmdSetCoverageToColorEnableNV+                                                         , cmdSetCoverageToColorLocationNV+                                                         , cmdSetCoverageModulationModeNV+                                                         , cmdSetCoverageModulationTableEnableNV+                                                         , cmdSetCoverageModulationTableNV+                                                         , cmdSetShadingRateImageEnableNV+                                                         , cmdSetCoverageReductionModeNV+                                                         , cmdSetRepresentativeFragmentTestEnableNV+                                                         , PhysicalDeviceExtendedDynamicState3FeaturesEXT(..)+                                                         , PhysicalDeviceExtendedDynamicState3PropertiesEXT(..)+                                                         , ColorBlendEquationEXT(..)+                                                         , ColorBlendAdvancedEXT(..)+                                                         , EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION+                                                         , pattern EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION+                                                         , EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME+                                                         , pattern EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME+                                                         , ViewportSwizzleNV(..)+                                                         , ViewportCoordinateSwizzleNV(..)+                                                         , BlendOverlapEXT(..)+                                                         , CoverageModulationModeNV(..)+                                                         , CoverageReductionModeNV(..)+                                                         , ConservativeRasterizationModeEXT(..)+                                                         , LineRasterizationModeEXT(..)+                                                         , ProvokingVertexModeEXT(..)+                                                         ) 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 Foreign.C.Types (CFloat(..))+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.C.Types (CFloat)+import Foreign.C.Types (CFloat(CFloat))+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.Enums.BlendFactor (BlendFactor)+import Vulkan.Core10.Enums.BlendOp (BlendOp)+import Vulkan.Extensions.VK_EXT_blend_operation_advanced (BlendOverlapEXT)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Bool32(..))+import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlagBits(..))+import Vulkan.Core10.Enums.ColorComponentFlagBits (ColorComponentFlags)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT)+import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT(..))+import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV)+import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV(..))+import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV)+import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV(..))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetAlphaToCoverageEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetAlphaToOneEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorBlendAdvancedEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorBlendEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorBlendEquationEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetColorWriteMaskEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetConservativeRasterizationModeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageModulationModeNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageModulationTableEnableNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageModulationTableNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageReductionModeNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageToColorEnableNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetCoverageToColorLocationNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthClampEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthClipEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetDepthClipNegativeOneToOneEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetExtraPrimitiveOverestimationSizeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLineRasterizationModeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLineStippleEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetLogicOpEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetPolygonModeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetProvokingVertexModeEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizationSamplesEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRasterizationStreamEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetRepresentativeFragmentTestEnableNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetSampleLocationsEnableEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetSampleMaskEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetShadingRateImageEnableNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetTessellationDomainOriginEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportSwizzleNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdSetViewportWScalingEnableNV))+import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT)+import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT(..))+import Vulkan.Core10.Enums.PolygonMode (PolygonMode)+import Vulkan.Core10.Enums.PolygonMode (PolygonMode(..))+import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT)+import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT(..))+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits)+import Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits(..))+import Vulkan.Core10.FundamentalTypes (SampleMask)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin)+import Vulkan.Core11.Enums.TessellationDomainOrigin (TessellationDomainOrigin(..))+import Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT))+import Vulkan.Extensions.VK_EXT_blend_operation_advanced (BlendOverlapEXT(..))+import Vulkan.Extensions.VK_EXT_conservative_rasterization (ConservativeRasterizationModeEXT(..))+import Vulkan.Extensions.VK_NV_framebuffer_mixed_samples (CoverageModulationModeNV(..))+import Vulkan.Extensions.VK_NV_coverage_reduction_mode (CoverageReductionModeNV(..))+import Vulkan.Extensions.VK_EXT_line_rasterization (LineRasterizationModeEXT(..))+import Vulkan.Extensions.VK_EXT_provoking_vertex (ProvokingVertexModeEXT(..))+import Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportCoordinateSwizzleNV(..))+import Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetTessellationDomainOriginEXT+  :: FunPtr (Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()) -> Ptr CommandBuffer_T -> TessellationDomainOrigin -> IO ()++-- | vkCmdSetTessellationDomainOriginEXT - Specify the origin of the+-- tessellation domain space dynamically for a command buffer+--+-- = Description+--+-- This command sets the origin of the tessellation domain space for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PipelineTessellationDomainOriginStateCreateInfo'::@domainOrigin@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetTessellationDomainOriginEXT-extendedDynamicState3TessellationDomainOrigin-07444#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3TessellationDomainOrigin extendedDynamicState3TessellationDomainOrigin>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetTessellationDomainOriginEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetTessellationDomainOriginEXT-domainOrigin-parameter#+--     @domainOrigin@ /must/ be a valid+--     'Vulkan.Core11.Enums.TessellationDomainOrigin.TessellationDomainOrigin'+--     value+--+-- -   #VUID-vkCmdSetTessellationDomainOriginEXT-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-vkCmdSetTessellationDomainOriginEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetTessellationDomainOriginEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core11.Enums.TessellationDomainOrigin.TessellationDomainOrigin'+cmdSetTessellationDomainOriginEXT :: forall io+                                   . (MonadIO io)+                                  => -- | @commandBuffer@ is the command buffer into which the command will be+                                     -- recorded.+                                     CommandBuffer+                                  -> -- | @domainOrigin@ specifies the origin of the tessellation domain space.+                                     TessellationDomainOrigin+                                  -> io ()+cmdSetTessellationDomainOriginEXT commandBuffer domainOrigin = liftIO $ do+  let vkCmdSetTessellationDomainOriginEXTPtr = pVkCmdSetTessellationDomainOriginEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetTessellationDomainOriginEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetTessellationDomainOriginEXT is null" Nothing Nothing+  let vkCmdSetTessellationDomainOriginEXT' = mkVkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXTPtr+  traceAroundEvent "vkCmdSetTessellationDomainOriginEXT" (vkCmdSetTessellationDomainOriginEXT'+                                                            (commandBufferHandle (commandBuffer))+                                                            (domainOrigin))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthClampEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthClampEnableEXT - Specify dynamically whether depth clamping+-- is enabled in the command buffer+--+-- = Description+--+-- This command sets whether depth clamping is enabled or disabled for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthClampEnable@+-- value used to create the currently active pipeline.+--+-- If the depth clamping state is changed dynamically, and the pipeline was+-- not created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+-- enabled, then depth clipping is enabled when depth clamping is disabled+-- and vice versa.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthClampEnableEXT-extendedDynamicState3DepthClampEnable-07448#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClampEnable extendedDynamicState3DepthClampEnable>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetDepthClampEnableEXT-depthClamp-07449# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClamp depthClamp>+--     feature is not enabled, @depthClampEnable@ must be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthClampEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthClampEnableEXT-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-vkCmdSetDepthClampEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetDepthClampEnableEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthClampEnableEXT :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @depthClampEnable@ specifies whether depth clamping is enabled.+                             ("depthClampEnable" ::: Bool)+                          -> io ()+cmdSetDepthClampEnableEXT commandBuffer depthClampEnable = liftIO $ do+  let vkCmdSetDepthClampEnableEXTPtr = pVkCmdSetDepthClampEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthClampEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthClampEnableEXT is null" Nothing Nothing+  let vkCmdSetDepthClampEnableEXT' = mkVkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXTPtr+  traceAroundEvent "vkCmdSetDepthClampEnableEXT" (vkCmdSetDepthClampEnableEXT'+                                                    (commandBufferHandle (commandBuffer))+                                                    (boolToBool32 (depthClampEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetPolygonModeEXT+  :: FunPtr (Ptr CommandBuffer_T -> PolygonMode -> IO ()) -> Ptr CommandBuffer_T -> PolygonMode -> IO ()++-- | vkCmdSetPolygonModeEXT - Specify polygon mode dynamically for a command+-- buffer+--+-- = Description+--+-- This command sets the polygon mode for subsequent drawing commands when+-- the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@polygonMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetPolygonModeEXT-extendedDynamicState3PolygonMode-07422#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3PolygonMode extendedDynamicState3PolygonMode>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetPolygonModeEXT-fillModeNonSolid-07424# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-fillModeNonSolid fillModeNonSolid>+--     feature is not enabled, @polygonMode@ /must/ be+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL' or+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'+--+-- -   #VUID-vkCmdSetPolygonModeEXT-polygonMode-07425# If the+--     @VK_NV_fill_rectangle@ extension is not enabled, @polygonMode@+--     /must/ not be+--     'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetPolygonModeEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetPolygonModeEXT-polygonMode-parameter# @polygonMode@+--     /must/ be a valid 'Vulkan.Core10.Enums.PolygonMode.PolygonMode'+--     value+--+-- -   #VUID-vkCmdSetPolygonModeEXT-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-vkCmdSetPolygonModeEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetPolygonModeEXT-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.PolygonMode.PolygonMode'+cmdSetPolygonModeEXT :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @polygonMode@ specifies polygon mode.+                        PolygonMode+                     -> io ()+cmdSetPolygonModeEXT commandBuffer polygonMode = liftIO $ do+  let vkCmdSetPolygonModeEXTPtr = pVkCmdSetPolygonModeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetPolygonModeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPolygonModeEXT is null" Nothing Nothing+  let vkCmdSetPolygonModeEXT' = mkVkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXTPtr+  traceAroundEvent "vkCmdSetPolygonModeEXT" (vkCmdSetPolygonModeEXT'+                                               (commandBufferHandle (commandBuffer))+                                               (polygonMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetRasterizationSamplesEXT+  :: FunPtr (Ptr CommandBuffer_T -> SampleCountFlagBits -> IO ()) -> Ptr CommandBuffer_T -> SampleCountFlagBits -> IO ()++-- | vkCmdSetRasterizationSamplesEXT - Specify the rasterization samples+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @rasterizationSamples@ for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetRasterizationSamplesEXT-extendedDynamicState3RasterizationSamples-07414#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationSamples extendedDynamicState3RasterizationSamples>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetRasterizationSamplesEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetRasterizationSamplesEXT-rasterizationSamples-parameter#+--     @rasterizationSamples@ /must/ be a valid+--     'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value+--+-- -   #VUID-vkCmdSetRasterizationSamplesEXT-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-vkCmdSetRasterizationSamplesEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetRasterizationSamplesEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'+cmdSetRasterizationSamplesEXT :: forall io+                               . (MonadIO io)+                              => -- | @commandBuffer@ is the command buffer into which the command will be+                                 -- recorded.+                                 CommandBuffer+                              -> -- | @rasterizationSamples@ specifies @rasterizationSamples@.+                                 ("rasterizationSamples" ::: SampleCountFlagBits)+                              -> io ()+cmdSetRasterizationSamplesEXT commandBuffer rasterizationSamples = liftIO $ do+  let vkCmdSetRasterizationSamplesEXTPtr = pVkCmdSetRasterizationSamplesEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetRasterizationSamplesEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizationSamplesEXT is null" Nothing Nothing+  let vkCmdSetRasterizationSamplesEXT' = mkVkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXTPtr+  traceAroundEvent "vkCmdSetRasterizationSamplesEXT" (vkCmdSetRasterizationSamplesEXT'+                                                        (commandBufferHandle (commandBuffer))+                                                        (rasterizationSamples))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetSampleMaskEXT+  :: FunPtr (Ptr CommandBuffer_T -> SampleCountFlagBits -> Ptr SampleMask -> IO ()) -> Ptr CommandBuffer_T -> SampleCountFlagBits -> Ptr SampleMask -> IO ()++-- | vkCmdSetSampleMaskEXT - Specify the sample mask dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the sample mask for subsequent drawing commands when+-- the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT' set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@pSampleMask@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetSampleMaskEXT-extendedDynamicState3SampleMask-07342#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleMask extendedDynamicState3SampleMask>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetSampleMaskEXT-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetSampleMaskEXT-samples-parameter# @samples@ /must/ be a+--     valid 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits'+--     value+--+-- -   #VUID-vkCmdSetSampleMaskEXT-pSampleMask-parameter# @pSampleMask@+--     /must/ be a valid pointer to an array of+--     \(\lceil{\mathit{samples} \over 32}\rceil\)+--     'Vulkan.Core10.FundamentalTypes.SampleMask' values+--+-- -   #VUID-vkCmdSetSampleMaskEXT-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-vkCmdSetSampleMaskEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetSampleMaskEXT-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits',+-- 'Vulkan.Core10.FundamentalTypes.SampleMask'+cmdSetSampleMaskEXT :: forall io+                     . (MonadIO io)+                    => -- | @commandBuffer@ is the command buffer into which the command will be+                       -- recorded.+                       CommandBuffer+                    -> -- | @samples@ specifies the number of sample bits in the @pSampleMask@.+                       ("samples" ::: SampleCountFlagBits)+                    -> -- | @pSampleMask@ is a pointer to an array of VkSampleMask values, where the+                       -- array size is based on the @samples@ parameter.+                       ("sampleMask" ::: Vector SampleMask)+                    -> io ()+cmdSetSampleMaskEXT commandBuffer samples sampleMask = liftIO . evalContT $ do+  let vkCmdSetSampleMaskEXTPtr = pVkCmdSetSampleMaskEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetSampleMaskEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetSampleMaskEXT is null" Nothing Nothing+  let vkCmdSetSampleMaskEXT' = mkVkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXTPtr+  pPSampleMask <- ContT $ allocaBytes @SampleMask ((Data.Vector.length (sampleMask)) * 4)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPSampleMask `plusPtr` (4 * (i)) :: Ptr SampleMask) (e)) (sampleMask)+  lift $ traceAroundEvent "vkCmdSetSampleMaskEXT" (vkCmdSetSampleMaskEXT'+                                                     (commandBufferHandle (commandBuffer))+                                                     (samples)+                                                     (pPSampleMask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetAlphaToCoverageEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetAlphaToCoverageEnableEXT - Specify the alpha to coverage enable+-- state dynamically for a command buffer+--+-- = Description+--+-- This command sets the @alphaToCoverageEnable@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@alphaToCoverageEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-extendedDynamicState3AlphaToCoverageEnable-07343#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToCoverageEnable extendedDynamicState3AlphaToCoverageEnable>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-alphaToOne-07344# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-alphaToOne alphaToOne>+--     feature is not enabled, @alphaToOneEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-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-vkCmdSetAlphaToCoverageEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetAlphaToCoverageEnableEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetAlphaToCoverageEnableEXT :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @alphaToCoverageEnable@ specifies the @alphaToCoverageEnable@ state.+                                  ("alphaToCoverageEnable" ::: Bool)+                               -> io ()+cmdSetAlphaToCoverageEnableEXT commandBuffer alphaToCoverageEnable = liftIO $ do+  let vkCmdSetAlphaToCoverageEnableEXTPtr = pVkCmdSetAlphaToCoverageEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetAlphaToCoverageEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetAlphaToCoverageEnableEXT is null" Nothing Nothing+  let vkCmdSetAlphaToCoverageEnableEXT' = mkVkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXTPtr+  traceAroundEvent "vkCmdSetAlphaToCoverageEnableEXT" (vkCmdSetAlphaToCoverageEnableEXT'+                                                         (commandBufferHandle (commandBuffer))+                                                         (boolToBool32 (alphaToCoverageEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetAlphaToOneEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetAlphaToOneEnableEXT - Specify the alpha to one enable state+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @alphaToOneEnable@ state for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@alphaToOneEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetAlphaToOneEnableEXT-extendedDynamicState3AlphaToOneEnable-07345#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3AlphaToOneEnable extendedDynamicState3AlphaToOneEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetAlphaToOneEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetAlphaToOneEnableEXT-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-vkCmdSetAlphaToOneEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetAlphaToOneEnableEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetAlphaToOneEnableEXT :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @alphaToOneEnable@ specifies the @alphaToOneEnable@ state.+                             ("alphaToOneEnable" ::: Bool)+                          -> io ()+cmdSetAlphaToOneEnableEXT commandBuffer alphaToOneEnable = liftIO $ do+  let vkCmdSetAlphaToOneEnableEXTPtr = pVkCmdSetAlphaToOneEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetAlphaToOneEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetAlphaToOneEnableEXT is null" Nothing Nothing+  let vkCmdSetAlphaToOneEnableEXT' = mkVkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXTPtr+  traceAroundEvent "vkCmdSetAlphaToOneEnableEXT" (vkCmdSetAlphaToOneEnableEXT'+                                                    (commandBufferHandle (commandBuffer))+                                                    (boolToBool32 (alphaToOneEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetLogicOpEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetLogicOpEnableEXT - Specify dynamically whether logical+-- operations are enabled for a command buffer+--+-- = Description+--+-- This command sets whether logical operations are enabled for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@logicOpEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetLogicOpEnableEXT-extendedDynamicState3LogicOpEnable-07365#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LogicOpEnable extendedDynamicState3LogicOpEnable>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetLogicOpEnableEXT-logicOp-07366# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-logicOp logicOp>+--     feature is not enabled, @logicOpEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetLogicOpEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetLogicOpEnableEXT-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-vkCmdSetLogicOpEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetLogicOpEnableEXT-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetLogicOpEnableEXT :: forall io+                        . (MonadIO io)+                       => -- | @commandBuffer@ is the command buffer into which the command will be+                          -- recorded.+                          CommandBuffer+                       -> -- | @logicOpEnable@ specifies whether logical operations are enabled.+                          ("logicOpEnable" ::: Bool)+                       -> io ()+cmdSetLogicOpEnableEXT commandBuffer logicOpEnable = liftIO $ do+  let vkCmdSetLogicOpEnableEXTPtr = pVkCmdSetLogicOpEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetLogicOpEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLogicOpEnableEXT is null" Nothing Nothing+  let vkCmdSetLogicOpEnableEXT' = mkVkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXTPtr+  traceAroundEvent "vkCmdSetLogicOpEnableEXT" (vkCmdSetLogicOpEnableEXT'+                                                 (commandBufferHandle (commandBuffer))+                                                 (boolToBool32 (logicOpEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetColorBlendEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr Bool32 -> IO ()++-- | vkCmdSetColorBlendEnableEXT - Specify the @blendEnable@ for each+-- attachment dynamically for a command buffer+--+-- = Description+--+-- This command sets the color blending enable of the specified color+-- attachments for subsequent drawing commands when the graphics pipeline+-- is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@blendEnable@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetColorBlendEnableEXT-extendedDynamicState3ColorBlendEnable-07355#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEnable extendedDynamicState3ColorBlendEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetColorBlendEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetColorBlendEnableEXT-pColorBlendEnables-parameter#+--     @pColorBlendEnables@ /must/ be a valid pointer to an array of+--     @attachmentCount@ 'Vulkan.Core10.FundamentalTypes.Bool32' values+--+-- -   #VUID-vkCmdSetColorBlendEnableEXT-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-vkCmdSetColorBlendEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetColorBlendEnableEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetColorBlendEnableEXT-attachmentCount-arraylength#+--     @attachmentCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetColorBlendEnableEXT :: forall io+                           . (MonadIO io)+                          => -- | @commandBuffer@ is the command buffer into which the command will be+                             -- recorded.+                             CommandBuffer+                          -> -- | @firstAttachment@ the first color attachment the color blending enable+                             -- applies.+                             ("firstAttachment" ::: Word32)+                          -> -- | @pColorBlendEnables@ an array of booleans to indicate whether color+                             -- blending is enabled for the corresponding attachment.+                             ("colorBlendEnables" ::: Vector Bool)+                          -> io ()+cmdSetColorBlendEnableEXT commandBuffer+                            firstAttachment+                            colorBlendEnables = liftIO . evalContT $ do+  let vkCmdSetColorBlendEnableEXTPtr = pVkCmdSetColorBlendEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetColorBlendEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorBlendEnableEXT is null" Nothing Nothing+  let vkCmdSetColorBlendEnableEXT' = mkVkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXTPtr+  pPColorBlendEnables <- ContT $ allocaBytes @Bool32 ((Data.Vector.length (colorBlendEnables)) * 4)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPColorBlendEnables `plusPtr` (4 * (i)) :: Ptr Bool32) (boolToBool32 (e))) (colorBlendEnables)+  lift $ traceAroundEvent "vkCmdSetColorBlendEnableEXT" (vkCmdSetColorBlendEnableEXT'+                                                           (commandBufferHandle (commandBuffer))+                                                           (firstAttachment)+                                                           ((fromIntegral (Data.Vector.length $ (colorBlendEnables)) :: Word32))+                                                           (pPColorBlendEnables))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetColorBlendEquationEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendEquationEXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendEquationEXT -> IO ()++-- | vkCmdSetColorBlendEquationEXT - Specify the blend factors and operations+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the color blending factors and operations of the+-- specified attachments for subsequent drawing commands when the graphics+-- pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@srcColorBlendFactor@,+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@dstColorBlendFactor@,+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@colorBlendOp@,+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@srcAlphaBlendFactor@,+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@dstAlphaBlendFactor@,+-- and+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@alphaBlendOp@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetColorBlendEquationEXT-extendedDynamicState3ColorBlendEquation-07356#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendEquation extendedDynamicState3ColorBlendEquation>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetColorBlendEquationEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetColorBlendEquationEXT-pColorBlendEquations-parameter#+--     @pColorBlendEquations@ /must/ be a valid pointer to an array of+--     @attachmentCount@ valid 'ColorBlendEquationEXT' structures+--+-- -   #VUID-vkCmdSetColorBlendEquationEXT-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-vkCmdSetColorBlendEquationEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetColorBlendEquationEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetColorBlendEquationEXT-attachmentCount-arraylength#+--     @attachmentCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'ColorBlendEquationEXT', 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetColorBlendEquationEXT :: forall io+                             . (MonadIO io)+                            => -- | @commandBuffer@ is the command buffer into which the command will be+                               -- recorded.+                               CommandBuffer+                            -> -- | @firstAttachment@ the first color attachment the color blend factors and+                               -- operations apply to.+                               ("firstAttachment" ::: Word32)+                            -> -- | @pColorBlendEquations@ an array of 'ColorBlendEquationEXT' structs that+                               -- specify the color blend factors and operations for the corresponding+                               -- attachments.+                               ("colorBlendEquations" ::: Vector ColorBlendEquationEXT)+                            -> io ()+cmdSetColorBlendEquationEXT commandBuffer+                              firstAttachment+                              colorBlendEquations = liftIO . evalContT $ do+  let vkCmdSetColorBlendEquationEXTPtr = pVkCmdSetColorBlendEquationEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetColorBlendEquationEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorBlendEquationEXT is null" Nothing Nothing+  let vkCmdSetColorBlendEquationEXT' = mkVkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXTPtr+  pPColorBlendEquations <- ContT $ allocaBytes @ColorBlendEquationEXT ((Data.Vector.length (colorBlendEquations)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPColorBlendEquations `plusPtr` (24 * (i)) :: Ptr ColorBlendEquationEXT) (e)) (colorBlendEquations)+  lift $ traceAroundEvent "vkCmdSetColorBlendEquationEXT" (vkCmdSetColorBlendEquationEXT'+                                                             (commandBufferHandle (commandBuffer))+                                                             (firstAttachment)+                                                             ((fromIntegral (Data.Vector.length $ (colorBlendEquations)) :: Word32))+                                                             (pPColorBlendEquations))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetColorWriteMaskEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorComponentFlags -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorComponentFlags -> IO ()++-- | vkCmdSetColorWriteMaskEXT - Specify the color write masks for each+-- attachment dynamically for a command buffer+--+-- = Description+--+-- This command sets the color write masks of the specified attachments for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Core10.Pipeline.PipelineColorBlendAttachmentState'::@colorWriteMask@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-extendedDynamicState3ColorWriteMask-07364#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorWriteMask extendedDynamicState3ColorWriteMask>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-parameter#+--     @pColorWriteMasks@ /must/ be a valid pointer to an array of+--     @attachmentCount@ valid combinations of+--     'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlagBits'+--     values+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-pColorWriteMasks-requiredbitmask#+--     Each element of @pColorWriteMasks@ /must/ not be @0@+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-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-vkCmdSetColorWriteMaskEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetColorWriteMaskEXT-attachmentCount-arraylength#+--     @attachmentCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetColorWriteMaskEXT :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which the command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @firstAttachment@ the first color attachment the color write masks apply+                           -- to.+                           ("firstAttachment" ::: Word32)+                        -> -- | @pColorWriteMasks@ an array of+                           -- 'Vulkan.Core10.Enums.ColorComponentFlagBits.ColorComponentFlags' values+                           -- that specify the color write masks of the corresponding attachments.+                           ("colorWriteMasks" ::: Vector ColorComponentFlags)+                        -> io ()+cmdSetColorWriteMaskEXT commandBuffer+                          firstAttachment+                          colorWriteMasks = liftIO . evalContT $ do+  let vkCmdSetColorWriteMaskEXTPtr = pVkCmdSetColorWriteMaskEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetColorWriteMaskEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorWriteMaskEXT is null" Nothing Nothing+  let vkCmdSetColorWriteMaskEXT' = mkVkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXTPtr+  pPColorWriteMasks <- ContT $ allocaBytes @ColorComponentFlags ((Data.Vector.length (colorWriteMasks)) * 4)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPColorWriteMasks `plusPtr` (4 * (i)) :: Ptr ColorComponentFlags) (e)) (colorWriteMasks)+  lift $ traceAroundEvent "vkCmdSetColorWriteMaskEXT" (vkCmdSetColorWriteMaskEXT'+                                                         (commandBufferHandle (commandBuffer))+                                                         (firstAttachment)+                                                         ((fromIntegral (Data.Vector.length $ (colorWriteMasks)) :: Word32))+                                                         (pPColorWriteMasks))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetRasterizationStreamEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO ()++-- | vkCmdSetRasterizationStreamEXT - Specify the rasterization stream+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @rasterizationStream@ state for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-extendedDynamicState3RasterizationStream-07410#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RasterizationStream extendedDynamicState3RasterizationStream>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-transformFeedback-07411# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-transformFeedback transformFeedback>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07412#+--     @rasterizationStream@ /must/ be less than+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@maxTransformFeedbackStreams@+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-rasterizationStream-07413#+--     @rasterizationStream@ /must/ be zero if+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT'::@transformFeedbackRasterizationStreamSelect@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-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-vkCmdSetRasterizationStreamEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetRasterizationStreamEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetRasterizationStreamEXT :: forall io+                              . (MonadIO io)+                             => -- | @commandBuffer@ is the command buffer into which the command will be+                                -- recorded.+                                CommandBuffer+                             -> -- | @rasterizationStream@ specifies the @rasterizationStream@ state.+                                ("rasterizationStream" ::: Word32)+                             -> io ()+cmdSetRasterizationStreamEXT commandBuffer rasterizationStream = liftIO $ do+  let vkCmdSetRasterizationStreamEXTPtr = pVkCmdSetRasterizationStreamEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetRasterizationStreamEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRasterizationStreamEXT is null" Nothing Nothing+  let vkCmdSetRasterizationStreamEXT' = mkVkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXTPtr+  traceAroundEvent "vkCmdSetRasterizationStreamEXT" (vkCmdSetRasterizationStreamEXT'+                                                       (commandBufferHandle (commandBuffer))+                                                       (rasterizationStream))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetConservativeRasterizationModeEXT+  :: FunPtr (Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()) -> Ptr CommandBuffer_T -> ConservativeRasterizationModeEXT -> IO ()++-- | vkCmdSetConservativeRasterizationModeEXT - Specify the conservative+-- rasterization mode dynamically for a command buffer+--+-- = Description+--+-- This command sets the @conservativeRasterizationMode@ state for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@conservativeRasterizationMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-extendedDynamicState3ConservativeRasterizationMode-07426#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ConservativeRasterizationMode extendedDynamicState3ConservativeRasterizationMode>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-conservativeRasterizationMode-parameter#+--     @conservativeRasterizationMode@ /must/ be a valid+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.ConservativeRasterizationModeEXT'+--     value+--+-- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-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-vkCmdSetConservativeRasterizationModeEXT-commandBuffer-cmdpool#+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetConservativeRasterizationModeEXT-videocoding# This+--     command /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.ConservativeRasterizationModeEXT'+cmdSetConservativeRasterizationModeEXT :: forall io+                                        . (MonadIO io)+                                       => -- | @commandBuffer@ is the command buffer into which the command will be+                                          -- recorded.+                                          CommandBuffer+                                       -> -- | @conservativeRasterizationMode@ specifies the+                                          -- @conservativeRasterizationMode@ state.+                                          ConservativeRasterizationModeEXT+                                       -> io ()+cmdSetConservativeRasterizationModeEXT commandBuffer+                                         conservativeRasterizationMode = liftIO $ do+  let vkCmdSetConservativeRasterizationModeEXTPtr = pVkCmdSetConservativeRasterizationModeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetConservativeRasterizationModeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetConservativeRasterizationModeEXT is null" Nothing Nothing+  let vkCmdSetConservativeRasterizationModeEXT' = mkVkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXTPtr+  traceAroundEvent "vkCmdSetConservativeRasterizationModeEXT" (vkCmdSetConservativeRasterizationModeEXT'+                                                                 (commandBufferHandle (commandBuffer))+                                                                 (conservativeRasterizationMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetExtraPrimitiveOverestimationSizeEXT+  :: FunPtr (Ptr CommandBuffer_T -> CFloat -> IO ()) -> Ptr CommandBuffer_T -> CFloat -> IO ()++-- | vkCmdSetExtraPrimitiveOverestimationSizeEXT - Specify the conservative+-- rasterization extra primitive overestimation size dynamically for a+-- command buffer+--+-- = Description+--+-- This command sets the @extraPrimitiveOverestimationSize@ for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_conservative_rasterization.PipelineRasterizationConservativeStateCreateInfoEXT'::@extraPrimitiveOverestimationSize@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extendedDynamicState3ExtraPrimitiveOverestimationSize-07427#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ExtraPrimitiveOverestimationSize extendedDynamicState3ExtraPrimitiveOverestimationSize>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-extraPrimitiveOverestimationSize-07428#+--     @extraPrimitiveOverestimationSize@ /must/ be in the range of @0.0@+--     to+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.PhysicalDeviceConservativeRasterizationPropertiesEXT'::@maxExtraPrimitiveOverestimationSize@+--     inclusive+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-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-vkCmdSetExtraPrimitiveOverestimationSizeEXT-commandBuffer-cmdpool#+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetExtraPrimitiveOverestimationSizeEXT-videocoding# This+--     command /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetExtraPrimitiveOverestimationSizeEXT :: forall io+                                           . (MonadIO io)+                                          => -- | @commandBuffer@ is the command buffer into which the command will be+                                             -- recorded.+                                             CommandBuffer+                                          -> -- | @extraPrimitiveOverestimationSize@ specifies the+                                             -- @extraPrimitiveOverestimationSize@.+                                             ("extraPrimitiveOverestimationSize" ::: Float)+                                          -> io ()+cmdSetExtraPrimitiveOverestimationSizeEXT commandBuffer+                                            extraPrimitiveOverestimationSize = liftIO $ do+  let vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr = pVkCmdSetExtraPrimitiveOverestimationSizeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetExtraPrimitiveOverestimationSizeEXT is null" Nothing Nothing+  let vkCmdSetExtraPrimitiveOverestimationSizeEXT' = mkVkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXTPtr+  traceAroundEvent "vkCmdSetExtraPrimitiveOverestimationSizeEXT" (vkCmdSetExtraPrimitiveOverestimationSizeEXT'+                                                                    (commandBufferHandle (commandBuffer))+                                                                    (CFloat (extraPrimitiveOverestimationSize)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthClipEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthClipEnableEXT - Specify dynamically whether depth clipping+-- is enabled in the command buffer+--+-- = Description+--+-- This command sets whether depth clipping is enabled or disabled for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'::@depthClipEnable@+-- value used to create the currently active pipeline, or is set to the+-- inverse of+-- 'Vulkan.Core10.Pipeline.PipelineRasterizationStateCreateInfo'::@depthClampEnable@+-- if+-- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'+-- is not specified.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthClipEnableEXT-extendedDynamicState3DepthClipEnable-07450#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipEnable extendedDynamicState3DepthClipEnable>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetDepthClipEnableEXT-depthClipEnable-07451# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipEnable depthClipEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthClipEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthClipEnableEXT-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-vkCmdSetDepthClipEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetDepthClipEnableEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthClipEnableEXT :: forall io+                          . (MonadIO io)+                         => -- | @commandBuffer@ is the command buffer into which the command will be+                            -- recorded.+                            CommandBuffer+                         -> -- | @depthClipEnable@ specifies whether depth clipping is enabled.+                            ("depthClipEnable" ::: Bool)+                         -> io ()+cmdSetDepthClipEnableEXT commandBuffer depthClipEnable = liftIO $ do+  let vkCmdSetDepthClipEnableEXTPtr = pVkCmdSetDepthClipEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthClipEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthClipEnableEXT is null" Nothing Nothing+  let vkCmdSetDepthClipEnableEXT' = mkVkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXTPtr+  traceAroundEvent "vkCmdSetDepthClipEnableEXT" (vkCmdSetDepthClipEnableEXT'+                                                   (commandBufferHandle (commandBuffer))+                                                   (boolToBool32 (depthClipEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetSampleLocationsEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetSampleLocationsEnableEXT - Specify the samples locations enable+-- state dynamically for a command buffer+--+-- = Description+--+-- This command sets the @sampleLocationsEnable@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@sampleLocationsEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetSampleLocationsEnableEXT-extendedDynamicState3SampleLocationsEnable-07415#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3SampleLocationsEnable extendedDynamicState3SampleLocationsEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetSampleLocationsEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetSampleLocationsEnableEXT-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-vkCmdSetSampleLocationsEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetSampleLocationsEnableEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetSampleLocationsEnableEXT :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @sampleLocationsEnable@ specifies the @sampleLocationsEnable@ state.+                                  ("sampleLocationsEnable" ::: Bool)+                               -> io ()+cmdSetSampleLocationsEnableEXT commandBuffer sampleLocationsEnable = liftIO $ do+  let vkCmdSetSampleLocationsEnableEXTPtr = pVkCmdSetSampleLocationsEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetSampleLocationsEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetSampleLocationsEnableEXT is null" Nothing Nothing+  let vkCmdSetSampleLocationsEnableEXT' = mkVkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXTPtr+  traceAroundEvent "vkCmdSetSampleLocationsEnableEXT" (vkCmdSetSampleLocationsEnableEXT'+                                                         (commandBufferHandle (commandBuffer))+                                                         (boolToBool32 (sampleLocationsEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetColorBlendAdvancedEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendAdvancedEXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ColorBlendAdvancedEXT -> IO ()++-- | vkCmdSetColorBlendAdvancedEXT - Specify the advanced color blend state+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the advanced blend operation parameters of the+-- specified attachments for subsequent drawing commands when the graphics+-- pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'::@srcPremultiplied@,+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'::@dstPremultiplied@,+-- and+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PipelineColorBlendAdvancedStateCreateInfoEXT'::@blendOverlap@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-extendedDynamicState3ColorBlendAdvanced-07504#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ColorBlendAdvanced extendedDynamicState3ColorBlendAdvanced>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-pColorBlendAdvanced-parameter#+--     @pColorBlendAdvanced@ /must/ be a valid pointer to an array of+--     @attachmentCount@ valid 'ColorBlendAdvancedEXT' structures+--+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-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-vkCmdSetColorBlendAdvancedEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetColorBlendAdvancedEXT-attachmentCount-arraylength#+--     @attachmentCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'ColorBlendAdvancedEXT', 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetColorBlendAdvancedEXT :: forall io+                             . (MonadIO io)+                            => -- | @commandBuffer@ is the command buffer into which the command will be+                               -- recorded.+                               CommandBuffer+                            -> -- | @firstAttachment@ the first color attachment the advanced blend+                               -- parameters apply to.+                               ("firstAttachment" ::: Word32)+                            -> -- | @pColorBlendAdvanced@ an array of 'ColorBlendAdvancedEXT' structs that+                               -- specify the advanced color blend parameters for the corresponding+                               -- attachments.+                               ("colorBlendAdvanced" ::: Vector ColorBlendAdvancedEXT)+                            -> io ()+cmdSetColorBlendAdvancedEXT commandBuffer+                              firstAttachment+                              colorBlendAdvanced = liftIO . evalContT $ do+  let vkCmdSetColorBlendAdvancedEXTPtr = pVkCmdSetColorBlendAdvancedEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetColorBlendAdvancedEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetColorBlendAdvancedEXT is null" Nothing Nothing+  let vkCmdSetColorBlendAdvancedEXT' = mkVkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXTPtr+  pPColorBlendAdvanced <- ContT $ allocaBytes @ColorBlendAdvancedEXT ((Data.Vector.length (colorBlendAdvanced)) * 20)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPColorBlendAdvanced `plusPtr` (20 * (i)) :: Ptr ColorBlendAdvancedEXT) (e)) (colorBlendAdvanced)+  lift $ traceAroundEvent "vkCmdSetColorBlendAdvancedEXT" (vkCmdSetColorBlendAdvancedEXT'+                                                             (commandBufferHandle (commandBuffer))+                                                             (firstAttachment)+                                                             ((fromIntegral (Data.Vector.length $ (colorBlendAdvanced)) :: Word32))+                                                             (pPColorBlendAdvanced))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetProvokingVertexModeEXT+  :: FunPtr (Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()) -> Ptr CommandBuffer_T -> ProvokingVertexModeEXT -> IO ()++-- | vkCmdSetProvokingVertexModeEXT - Specify the provoking vertex mode+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @provokingVertexMode@ state for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.PipelineRasterizationProvokingVertexStateCreateInfoEXT'::@provokingVertexMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-extendedDynamicState3ProvokingVertexMode-07446#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ProvokingVertexMode extendedDynamicState3ProvokingVertexMode>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-07447# If+--     @provokingVertexMode@ is+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT',+--     then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-provokingVertexLast provokingVertexLast>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-provokingVertexMode-parameter#+--     @provokingVertexMode@ /must/ be a valid+--     'Vulkan.Extensions.VK_EXT_provoking_vertex.ProvokingVertexModeEXT'+--     value+--+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-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-vkCmdSetProvokingVertexModeEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetProvokingVertexModeEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.VK_EXT_provoking_vertex.ProvokingVertexModeEXT'+cmdSetProvokingVertexModeEXT :: forall io+                              . (MonadIO io)+                             => -- | @commandBuffer@ is the command buffer into which the command will be+                                -- recorded.+                                CommandBuffer+                             -> -- | @provokingVertexMode@ specifies the @provokingVertexMode@ state.+                                ProvokingVertexModeEXT+                             -> io ()+cmdSetProvokingVertexModeEXT commandBuffer provokingVertexMode = liftIO $ do+  let vkCmdSetProvokingVertexModeEXTPtr = pVkCmdSetProvokingVertexModeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetProvokingVertexModeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetProvokingVertexModeEXT is null" Nothing Nothing+  let vkCmdSetProvokingVertexModeEXT' = mkVkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXTPtr+  traceAroundEvent "vkCmdSetProvokingVertexModeEXT" (vkCmdSetProvokingVertexModeEXT'+                                                       (commandBufferHandle (commandBuffer))+                                                       (provokingVertexMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetLineRasterizationModeEXT+  :: FunPtr (Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()) -> Ptr CommandBuffer_T -> LineRasterizationModeEXT -> IO ()++-- | vkCmdSetLineRasterizationModeEXT - Specify the line rasterization mode+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @lineRasterizationMode@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'::@lineRasterizationMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-extendedDynamicState3LineRasterizationMode-07417#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineRasterizationMode extendedDynamicState3LineRasterizationMode>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07418#+--     If @lineRasterizationMode@ is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-rectangularLines rectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07419#+--     If @lineRasterizationMode@ is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bresenhamLines bresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-07420#+--     If @lineRasterizationMode@ is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-smoothLines smoothLines>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-lineRasterizationMode-parameter#+--     @lineRasterizationMode@ /must/ be a valid+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LineRasterizationModeEXT'+--     value+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-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-vkCmdSetLineRasterizationModeEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetLineRasterizationModeEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.LineRasterizationModeEXT'+cmdSetLineRasterizationModeEXT :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @lineRasterizationMode@ specifies the @lineRasterizationMode@ state.+                                  LineRasterizationModeEXT+                               -> io ()+cmdSetLineRasterizationModeEXT commandBuffer lineRasterizationMode = liftIO $ do+  let vkCmdSetLineRasterizationModeEXTPtr = pVkCmdSetLineRasterizationModeEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetLineRasterizationModeEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineRasterizationModeEXT is null" Nothing Nothing+  let vkCmdSetLineRasterizationModeEXT' = mkVkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXTPtr+  traceAroundEvent "vkCmdSetLineRasterizationModeEXT" (vkCmdSetLineRasterizationModeEXT'+                                                         (commandBufferHandle (commandBuffer))+                                                         (lineRasterizationMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetLineStippleEnableEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetLineStippleEnableEXT - Specify the line stipple enable+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @stippledLineEnable@ state for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_line_rasterization.PipelineRasterizationLineStateCreateInfoEXT'::@stippledLineEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetLineStippleEnableEXT-extendedDynamicState3LineStippleEnable-07421#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3LineStippleEnable extendedDynamicState3LineStippleEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetLineStippleEnableEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetLineStippleEnableEXT-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-vkCmdSetLineStippleEnableEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetLineStippleEnableEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetLineStippleEnableEXT :: forall io+                            . (MonadIO io)+                           => -- | @commandBuffer@ is the command buffer into which the command will be+                              -- recorded.+                              CommandBuffer+                           -> -- | @stippledLineEnable@ specifies the @stippledLineEnable@ state.+                              ("stippledLineEnable" ::: Bool)+                           -> io ()+cmdSetLineStippleEnableEXT commandBuffer stippledLineEnable = liftIO $ do+  let vkCmdSetLineStippleEnableEXTPtr = pVkCmdSetLineStippleEnableEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetLineStippleEnableEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineStippleEnableEXT is null" Nothing Nothing+  let vkCmdSetLineStippleEnableEXT' = mkVkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXTPtr+  traceAroundEvent "vkCmdSetLineStippleEnableEXT" (vkCmdSetLineStippleEnableEXT'+                                                     (commandBufferHandle (commandBuffer))+                                                     (boolToBool32 (stippledLineEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetDepthClipNegativeOneToOneEXT+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetDepthClipNegativeOneToOneEXT - Specify the negative one to one+-- depth clip mode dynamically for a command buffer+--+-- = Description+--+-- This command sets the @negativeOneToOne@ state for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT'::@negativeOneToOne@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-extendedDynamicState3DepthClipNegativeOneToOne-07452#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3DepthClipNegativeOneToOne extendedDynamicState3DepthClipNegativeOneToOne>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-depthClipControl-07453#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-depthClipControl depthClipControl>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-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-vkCmdSetDepthClipNegativeOneToOneEXT-commandBuffer-cmdpool#+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetDepthClipNegativeOneToOneEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetDepthClipNegativeOneToOneEXT :: forall io+                                    . (MonadIO io)+                                   => -- | @commandBuffer@ is the command buffer into which the command will be+                                      -- recorded.+                                      CommandBuffer+                                   -> -- | @negativeOneToOne@ specifies the @negativeOneToOne@ state.+                                      ("negativeOneToOne" ::: Bool)+                                   -> io ()+cmdSetDepthClipNegativeOneToOneEXT commandBuffer negativeOneToOne = liftIO $ do+  let vkCmdSetDepthClipNegativeOneToOneEXTPtr = pVkCmdSetDepthClipNegativeOneToOneEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetDepthClipNegativeOneToOneEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetDepthClipNegativeOneToOneEXT is null" Nothing Nothing+  let vkCmdSetDepthClipNegativeOneToOneEXT' = mkVkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXTPtr+  traceAroundEvent "vkCmdSetDepthClipNegativeOneToOneEXT" (vkCmdSetDepthClipNegativeOneToOneEXT'+                                                             (commandBufferHandle (commandBuffer))+                                                             (boolToBool32 (negativeOneToOne)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetViewportWScalingEnableNV+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetViewportWScalingEnableNV - Specify the viewport W scaling enable+-- state dynamically for a command buffer+--+-- = Description+--+-- This command sets the @viewportWScalingEnable@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_clip_space_w_scaling.PipelineViewportWScalingStateCreateInfoNV'::@viewportWScalingEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetViewportWScalingEnableNV-extendedDynamicState3ViewportWScalingEnable-07580#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportWScalingEnable extendedDynamicState3ViewportWScalingEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetViewportWScalingEnableNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetViewportWScalingEnableNV-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-vkCmdSetViewportWScalingEnableNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetViewportWScalingEnableNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetViewportWScalingEnableNV :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @viewportWScalingEnable@ specifies the @viewportWScalingEnable@ state.+                                  ("viewportWScalingEnable" ::: Bool)+                               -> io ()+cmdSetViewportWScalingEnableNV commandBuffer+                                 viewportWScalingEnable = liftIO $ do+  let vkCmdSetViewportWScalingEnableNVPtr = pVkCmdSetViewportWScalingEnableNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetViewportWScalingEnableNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWScalingEnableNV is null" Nothing Nothing+  let vkCmdSetViewportWScalingEnableNV' = mkVkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNVPtr+  traceAroundEvent "vkCmdSetViewportWScalingEnableNV" (vkCmdSetViewportWScalingEnableNV'+                                                         (commandBufferHandle (commandBuffer))+                                                         (boolToBool32 (viewportWScalingEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetViewportSwizzleNV+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ViewportSwizzleNV -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Word32 -> Ptr ViewportSwizzleNV -> IO ()++-- | vkCmdSetViewportSwizzleNV - Specify the viewport swizzle state+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the viewport swizzle state for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV' set+-- in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@viewportCount@,+-- and+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.PipelineViewportSwizzleStateCreateInfoNV'::@pViewportSwizzles@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetViewportSwizzleNV-extendedDynamicState3ViewportSwizzle-07445#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ViewportSwizzle extendedDynamicState3ViewportSwizzle>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetViewportSwizzleNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetViewportSwizzleNV-pViewportSwizzles-parameter#+--     @pViewportSwizzles@ /must/ be a valid pointer to an array of+--     @viewportCount@ valid+--     'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV'+--     structures+--+-- -   #VUID-vkCmdSetViewportSwizzleNV-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-vkCmdSetViewportSwizzleNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetViewportSwizzleNV-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetViewportSwizzleNV-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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV'+cmdSetViewportSwizzleNV :: 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)+                        -> -- | @pViewportSwizzles@ is a pointer to an array of+                           -- 'Vulkan.Extensions.VK_NV_viewport_swizzle.ViewportSwizzleNV' structures+                           -- specifying viewport swizzles.+                           ("viewportSwizzles" ::: Vector ViewportSwizzleNV)+                        -> io ()+cmdSetViewportSwizzleNV commandBuffer+                          firstViewport+                          viewportSwizzles = liftIO . evalContT $ do+  let vkCmdSetViewportSwizzleNVPtr = pVkCmdSetViewportSwizzleNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetViewportSwizzleNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportSwizzleNV is null" Nothing Nothing+  let vkCmdSetViewportSwizzleNV' = mkVkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNVPtr+  pPViewportSwizzles <- ContT $ allocaBytes @ViewportSwizzleNV ((Data.Vector.length (viewportSwizzles)) * 16)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPViewportSwizzles `plusPtr` (16 * (i)) :: Ptr ViewportSwizzleNV) (e)) (viewportSwizzles)+  lift $ traceAroundEvent "vkCmdSetViewportSwizzleNV" (vkCmdSetViewportSwizzleNV'+                                                         (commandBufferHandle (commandBuffer))+                                                         (firstViewport)+                                                         ((fromIntegral (Data.Vector.length $ (viewportSwizzles)) :: Word32))+                                                         (pPViewportSwizzles))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCoverageToColorEnableNV+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetCoverageToColorEnableNV - Specify the coverage to color enable+-- state dynamically for a command buffer+--+-- = Description+--+-- This command sets the @coverageToColorEnable@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_fragment_coverage_to_color.PipelineCoverageToColorStateCreateInfoNV'::@coverageToColorEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCoverageToColorEnableNV-extendedDynamicState3CoverageToColorEnable-07347#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorEnable extendedDynamicState3CoverageToColorEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCoverageToColorEnableNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCoverageToColorEnableNV-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-vkCmdSetCoverageToColorEnableNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetCoverageToColorEnableNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetCoverageToColorEnableNV :: forall io+                               . (MonadIO io)+                              => -- | @commandBuffer@ is the command buffer into which the command will be+                                 -- recorded.+                                 CommandBuffer+                              -> -- | @coverageToColorEnable@ specifies the @coverageToColorEnable@ state.+                                 ("coverageToColorEnable" ::: Bool)+                              -> io ()+cmdSetCoverageToColorEnableNV commandBuffer coverageToColorEnable = liftIO $ do+  let vkCmdSetCoverageToColorEnableNVPtr = pVkCmdSetCoverageToColorEnableNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetCoverageToColorEnableNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoverageToColorEnableNV is null" Nothing Nothing+  let vkCmdSetCoverageToColorEnableNV' = mkVkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNVPtr+  traceAroundEvent "vkCmdSetCoverageToColorEnableNV" (vkCmdSetCoverageToColorEnableNV'+                                                        (commandBufferHandle (commandBuffer))+                                                        (boolToBool32 (coverageToColorEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCoverageToColorLocationNV+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> IO ()++-- | vkCmdSetCoverageToColorLocationNV - Specify the coverage to color+-- location dynamically for a command buffer+--+-- = Description+--+-- This command sets the @coverageToColorLocation@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_EXT_sample_locations.PipelineSampleLocationsStateCreateInfoEXT'::@coverageToColorLocation@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCoverageToColorLocationNV-extendedDynamicState3CoverageToColorLocation-07348#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageToColorLocation extendedDynamicState3CoverageToColorLocation>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCoverageToColorLocationNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCoverageToColorLocationNV-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-vkCmdSetCoverageToColorLocationNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetCoverageToColorLocationNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetCoverageToColorLocationNV :: forall io+                                 . (MonadIO io)+                                => -- | @commandBuffer@ is the command buffer into which the command will be+                                   -- recorded.+                                   CommandBuffer+                                -> -- | @coverageToColorLocation@ specifies the @coverageToColorLocation@ state.+                                   ("coverageToColorLocation" ::: Word32)+                                -> io ()+cmdSetCoverageToColorLocationNV commandBuffer+                                  coverageToColorLocation = liftIO $ do+  let vkCmdSetCoverageToColorLocationNVPtr = pVkCmdSetCoverageToColorLocationNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetCoverageToColorLocationNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoverageToColorLocationNV is null" Nothing Nothing+  let vkCmdSetCoverageToColorLocationNV' = mkVkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNVPtr+  traceAroundEvent "vkCmdSetCoverageToColorLocationNV" (vkCmdSetCoverageToColorLocationNV'+                                                          (commandBufferHandle (commandBuffer))+                                                          (coverageToColorLocation))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCoverageModulationModeNV+  :: FunPtr (Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()) -> Ptr CommandBuffer_T -> CoverageModulationModeNV -> IO ()++-- | vkCmdSetCoverageModulationModeNV - Specify the coverage modulation mode+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @coverageModulationMode@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@coverageModulationMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCoverageModulationModeNV-extendedDynamicState3CoverageModulationMode-07350#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationMode extendedDynamicState3CoverageModulationMode>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCoverageModulationModeNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCoverageModulationModeNV-coverageModulationMode-parameter#+--     @coverageModulationMode@ /must/ be a valid+--     'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.CoverageModulationModeNV'+--     value+--+-- -   #VUID-vkCmdSetCoverageModulationModeNV-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-vkCmdSetCoverageModulationModeNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetCoverageModulationModeNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.CoverageModulationModeNV'+cmdSetCoverageModulationModeNV :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @coverageModulationMode@ specifies the @coverageModulationMode@ state.+                                  CoverageModulationModeNV+                               -> io ()+cmdSetCoverageModulationModeNV commandBuffer+                                 coverageModulationMode = liftIO $ do+  let vkCmdSetCoverageModulationModeNVPtr = pVkCmdSetCoverageModulationModeNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetCoverageModulationModeNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoverageModulationModeNV is null" Nothing Nothing+  let vkCmdSetCoverageModulationModeNV' = mkVkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNVPtr+  traceAroundEvent "vkCmdSetCoverageModulationModeNV" (vkCmdSetCoverageModulationModeNV'+                                                         (commandBufferHandle (commandBuffer))+                                                         (coverageModulationMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCoverageModulationTableEnableNV+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetCoverageModulationTableEnableNV - Specify the coverage+-- modulation table enable state dynamically for a command buffer+--+-- = Description+--+-- This command sets the @coverageModulationTableEnable@ state for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@coverageModulationTableEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-extendedDynamicState3CoverageModulationTableEnable-07351#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTableEnable extendedDynamicState3CoverageModulationTableEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-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-vkCmdSetCoverageModulationTableEnableNV-commandBuffer-cmdpool#+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetCoverageModulationTableEnableNV-videocoding# This+--     command /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetCoverageModulationTableEnableNV :: forall io+                                       . (MonadIO io)+                                      => -- | @commandBuffer@ is the command buffer into which the command will be+                                         -- recorded.+                                         CommandBuffer+                                      -> -- | @coverageModulationTableEnable@ specifies the+                                         -- @coverageModulationTableEnable@ state.+                                         ("coverageModulationTableEnable" ::: Bool)+                                      -> io ()+cmdSetCoverageModulationTableEnableNV commandBuffer+                                        coverageModulationTableEnable = liftIO $ do+  let vkCmdSetCoverageModulationTableEnableNVPtr = pVkCmdSetCoverageModulationTableEnableNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetCoverageModulationTableEnableNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoverageModulationTableEnableNV is null" Nothing Nothing+  let vkCmdSetCoverageModulationTableEnableNV' = mkVkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNVPtr+  traceAroundEvent "vkCmdSetCoverageModulationTableEnableNV" (vkCmdSetCoverageModulationTableEnableNV'+                                                                (commandBufferHandle (commandBuffer))+                                                                (boolToBool32 (coverageModulationTableEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCoverageModulationTableNV+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr CFloat -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr CFloat -> IO ()++-- | vkCmdSetCoverageModulationTableNV - Specify the coverage modulation+-- table dynamically for a command buffer+--+-- = Description+--+-- This command sets the table of modulation factors for subsequent drawing+-- commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@coverageModulationTableCount@,+-- and+-- 'Vulkan.Extensions.VK_NV_framebuffer_mixed_samples.PipelineCoverageModulationStateCreateInfoNV'::@pCoverageModulationTable@+-- values used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCoverageModulationTableNV-extendedDynamicState3CoverageModulationTable-07352#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageModulationTable extendedDynamicState3CoverageModulationTable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCoverageModulationTableNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCoverageModulationTableNV-pCoverageModulationTable-parameter#+--     @pCoverageModulationTable@ /must/ be a valid pointer to an array of+--     @coverageModulationTableCount@ @float@ values+--+-- -   #VUID-vkCmdSetCoverageModulationTableNV-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-vkCmdSetCoverageModulationTableNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetCoverageModulationTableNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdSetCoverageModulationTableNV-coverageModulationTableCount-arraylength#+--     @coverageModulationTableCount@ /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetCoverageModulationTableNV :: forall io+                                 . (MonadIO io)+                                => -- | @commandBuffer@ is the command buffer into which the command will be+                                   -- recorded.+                                   CommandBuffer+                                -> -- | @pCoverageModulationTable@ specifies the table of modulation factors+                                   -- containing a value for each number of covered samples.+                                   ("coverageModulationTable" ::: Vector Float)+                                -> io ()+cmdSetCoverageModulationTableNV commandBuffer+                                  coverageModulationTable = liftIO . evalContT $ do+  let vkCmdSetCoverageModulationTableNVPtr = pVkCmdSetCoverageModulationTableNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdSetCoverageModulationTableNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoverageModulationTableNV is null" Nothing Nothing+  let vkCmdSetCoverageModulationTableNV' = mkVkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNVPtr+  pPCoverageModulationTable <- ContT $ allocaBytes @CFloat ((Data.Vector.length (coverageModulationTable)) * 4)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPCoverageModulationTable `plusPtr` (4 * (i)) :: Ptr CFloat) (CFloat (e))) (coverageModulationTable)+  lift $ traceAroundEvent "vkCmdSetCoverageModulationTableNV" (vkCmdSetCoverageModulationTableNV'+                                                                 (commandBufferHandle (commandBuffer))+                                                                 ((fromIntegral (Data.Vector.length $ (coverageModulationTable)) :: Word32))+                                                                 (pPCoverageModulationTable))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetShadingRateImageEnableNV+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetShadingRateImageEnableNV - Specify the shading rate image enable+-- state dynamically for a command buffer+--+-- = Description+--+-- This command sets the @shadingRateImageEnable@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportShadingRateImageStateCreateInfoNV'::@shadingRateImageEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetShadingRateImageEnableNV-extendedDynamicState3ShadingRateImageEnable-07416#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3ShadingRateImageEnable extendedDynamicState3ShadingRateImageEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetShadingRateImageEnableNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetShadingRateImageEnableNV-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-vkCmdSetShadingRateImageEnableNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetShadingRateImageEnableNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetShadingRateImageEnableNV :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @shadingRateImageEnable@ specifies the @shadingRateImageEnable@ state.+                                  ("shadingRateImageEnable" ::: Bool)+                               -> io ()+cmdSetShadingRateImageEnableNV commandBuffer+                                 shadingRateImageEnable = liftIO $ do+  let vkCmdSetShadingRateImageEnableNVPtr = pVkCmdSetShadingRateImageEnableNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetShadingRateImageEnableNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetShadingRateImageEnableNV is null" Nothing Nothing+  let vkCmdSetShadingRateImageEnableNV' = mkVkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNVPtr+  traceAroundEvent "vkCmdSetShadingRateImageEnableNV" (vkCmdSetShadingRateImageEnableNV'+                                                         (commandBufferHandle (commandBuffer))+                                                         (boolToBool32 (shadingRateImageEnable)))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetCoverageReductionModeNV+  :: FunPtr (Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()) -> Ptr CommandBuffer_T -> CoverageReductionModeNV -> IO ()++-- | vkCmdSetCoverageReductionModeNV - Specify the coverage reduction mode+-- dynamically for a command buffer+--+-- = Description+--+-- This command sets the @coverageReductionMode@ state for subsequent+-- drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.PipelineCoverageReductionStateCreateInfoNV'::@coverageReductionMode@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetCoverageReductionModeNV-extendedDynamicState3CoverageReductionMode-07349#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3CoverageReductionMode extendedDynamicState3CoverageReductionMode>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetCoverageReductionModeNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetCoverageReductionModeNV-coverageReductionMode-parameter#+--     @coverageReductionMode@ /must/ be a valid+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.CoverageReductionModeNV'+--     value+--+-- -   #VUID-vkCmdSetCoverageReductionModeNV-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-vkCmdSetCoverageReductionModeNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetCoverageReductionModeNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.VK_NV_coverage_reduction_mode.CoverageReductionModeNV'+cmdSetCoverageReductionModeNV :: forall io+                               . (MonadIO io)+                              => -- | @commandBuffer@ is the command buffer into which the command will be+                                 -- recorded.+                                 CommandBuffer+                              -> -- | @coverageReductionMode@ specifies the @coverageReductionMode@ state.+                                 CoverageReductionModeNV+                              -> io ()+cmdSetCoverageReductionModeNV commandBuffer coverageReductionMode = liftIO $ do+  let vkCmdSetCoverageReductionModeNVPtr = pVkCmdSetCoverageReductionModeNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetCoverageReductionModeNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoverageReductionModeNV is null" Nothing Nothing+  let vkCmdSetCoverageReductionModeNV' = mkVkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNVPtr+  traceAroundEvent "vkCmdSetCoverageReductionModeNV" (vkCmdSetCoverageReductionModeNV'+                                                        (commandBufferHandle (commandBuffer))+                                                        (coverageReductionMode))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdSetRepresentativeFragmentTestEnableNV+  :: FunPtr (Ptr CommandBuffer_T -> Bool32 -> IO ()) -> Ptr CommandBuffer_T -> Bool32 -> IO ()++-- | vkCmdSetRepresentativeFragmentTestEnableNV - Specify the representative+-- fragment test enable dynamically for a command buffer+--+-- = Description+--+-- This command sets the @representativeFragmentTestEnable@ state for+-- subsequent drawing commands when the graphics pipeline is created with+-- 'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+-- set in+-- 'Vulkan.Core10.Pipeline.PipelineDynamicStateCreateInfo'::@pDynamicStates@.+-- Otherwise, this state is specified by the+-- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PipelineRepresentativeFragmentTestStateCreateInfoNV'::@representativeFragmentTestEnable@+-- value used to create the currently active pipeline.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-extendedDynamicState3RepresentativeFragmentTestEnable-07346#+--     The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-extendedDynamicState3RepresentativeFragmentTestEnable extendedDynamicState3RepresentativeFragmentTestEnable>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-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-vkCmdSetRepresentativeFragmentTestEnableNV-commandBuffer-cmdpool#+--     The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdSetRepresentativeFragmentTestEnableNV-videocoding# This+--     command /must/ only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Both                                                                                                                   | Outside                                                                                                                     | Graphics                                                                                                              | State                                                                                                                                  |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdSetRepresentativeFragmentTestEnableNV :: forall io+                                          . (MonadIO io)+                                         => -- | @commandBuffer@ is the command buffer into which the command will be+                                            -- recorded.+                                            CommandBuffer+                                         -> -- | @representativeFragmentTestEnable@ specifies the+                                            -- @representativeFragmentTestEnable@ state.+                                            ("representativeFragmentTestEnable" ::: Bool)+                                         -> io ()+cmdSetRepresentativeFragmentTestEnableNV commandBuffer+                                           representativeFragmentTestEnable = liftIO $ do+  let vkCmdSetRepresentativeFragmentTestEnableNVPtr = pVkCmdSetRepresentativeFragmentTestEnableNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdSetRepresentativeFragmentTestEnableNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRepresentativeFragmentTestEnableNV is null" Nothing Nothing+  let vkCmdSetRepresentativeFragmentTestEnableNV' = mkVkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNVPtr+  traceAroundEvent "vkCmdSetRepresentativeFragmentTestEnableNV" (vkCmdSetRepresentativeFragmentTestEnableNV'+                                                                   (commandBufferHandle (commandBuffer))+                                                                   (boolToBool32 (representativeFragmentTestEnable)))+  pure $ ()+++-- | VkPhysicalDeviceExtendedDynamicState3FeaturesEXT - Structure describing+-- what extended dynamic state is supported by the implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicState3FeaturesEXT' 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. 'PhysicalDeviceExtendedDynamicState3FeaturesEXT' /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_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicState3FeaturesEXT = PhysicalDeviceExtendedDynamicState3FeaturesEXT+  { -- | #features-extendedDynamicState3TessellationDomainOrigin#+    -- @extendedDynamicState3TessellationDomainOrigin@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+    extendedDynamicState3TessellationDomainOrigin :: Bool+  , -- | #features-extendedDynamicState3DepthClampEnable#+    -- @extendedDynamicState3DepthClampEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+    extendedDynamicState3DepthClampEnable :: Bool+  , -- | #features-extendedDynamicState3PolygonMode#+    -- @extendedDynamicState3PolygonMode@ indicates that the implementation+    -- supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+    extendedDynamicState3PolygonMode :: Bool+  , -- | #features-extendedDynamicState3RasterizationSamples#+    -- @extendedDynamicState3RasterizationSamples@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+    extendedDynamicState3RasterizationSamples :: Bool+  , -- | #features-extendedDynamicState3SampleMask#+    -- @extendedDynamicState3SampleMask@ indicates that the implementation+    -- supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+    extendedDynamicState3SampleMask :: Bool+  , -- | #features-extendedDynamicState3AlphaToCoverageEnable#+    -- @extendedDynamicState3AlphaToCoverageEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+    extendedDynamicState3AlphaToCoverageEnable :: Bool+  , -- | #features-extendedDynamicState3AlphaToOneEnable#+    -- @extendedDynamicState3AlphaToOneEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+    extendedDynamicState3AlphaToOneEnable :: Bool+  , -- | #features-extendedDynamicState3LogicOpEnable#+    -- @extendedDynamicState3LogicOpEnable@ indicates that the implementation+    -- supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+    extendedDynamicState3LogicOpEnable :: Bool+  , -- | #features-extendedDynamicState3ColorBlendEnable#+    -- @extendedDynamicState3ColorBlendEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+    extendedDynamicState3ColorBlendEnable :: Bool+  , -- | #features-extendedDynamicState3ColorBlendEquation#+    -- @extendedDynamicState3ColorBlendEquation@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+    extendedDynamicState3ColorBlendEquation :: Bool+  , -- | #features-extendedDynamicState3ColorWriteMask#+    -- @extendedDynamicState3ColorWriteMask@ indicates that the implementation+    -- supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+    extendedDynamicState3ColorWriteMask :: Bool+  , -- | #features-extendedDynamicState3RasterizationStream#+    -- @extendedDynamicState3RasterizationStream@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+    extendedDynamicState3RasterizationStream :: Bool+  , -- | #features-extendedDynamicState3ConservativeRasterizationMode#+    -- @extendedDynamicState3ConservativeRasterizationMode@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+    extendedDynamicState3ConservativeRasterizationMode :: Bool+  , -- | #features-extendedDynamicState3ExtraPrimitiveOverestimationSize#+    -- @extendedDynamicState3ExtraPrimitiveOverestimationSize@ indicates that+    -- the implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+    extendedDynamicState3ExtraPrimitiveOverestimationSize :: Bool+  , -- | #features-extendedDynamicState3DepthClipEnable#+    -- @extendedDynamicState3DepthClipEnable@ indicates that the implementation+    -- supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+    extendedDynamicState3DepthClipEnable :: Bool+  , -- | #features-extendedDynamicState3SampleLocationsEnable#+    -- @extendedDynamicState3SampleLocationsEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+    extendedDynamicState3SampleLocationsEnable :: Bool+  , -- | #features-extendedDynamicState3ColorBlendAdvanced#+    -- @extendedDynamicState3ColorBlendAdvanced@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+    extendedDynamicState3ColorBlendAdvanced :: Bool+  , -- | #features-extendedDynamicState3ProvokingVertexMode#+    -- @extendedDynamicState3ProvokingVertexMode@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+    extendedDynamicState3ProvokingVertexMode :: Bool+  , -- | #features-extendedDynamicState3LineRasterizationMode#+    -- @extendedDynamicState3LineRasterizationMode@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+    extendedDynamicState3LineRasterizationMode :: Bool+  , -- | #features-extendedDynamicState3LineStippleEnable#+    -- @extendedDynamicState3LineStippleEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+    extendedDynamicState3LineStippleEnable :: Bool+  , -- | #features-extendedDynamicState3DepthClipNegativeOneToOne#+    -- @extendedDynamicState3DepthClipNegativeOneToOne@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+    extendedDynamicState3DepthClipNegativeOneToOne :: Bool+  , -- | #features-extendedDynamicState3ViewportWScalingEnable#+    -- @extendedDynamicState3ViewportWScalingEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+    extendedDynamicState3ViewportWScalingEnable :: Bool+  , -- | #features-extendedDynamicState3ViewportSwizzle#+    -- @extendedDynamicState3ViewportSwizzle@ indicates that the implementation+    -- supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+    extendedDynamicState3ViewportSwizzle :: Bool+  , -- | #features-extendedDynamicState3CoverageToColorEnable#+    -- @extendedDynamicState3CoverageToColorEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+    extendedDynamicState3CoverageToColorEnable :: Bool+  , -- | #features-extendedDynamicState3CoverageToColorLocation#+    -- @extendedDynamicState3CoverageToColorLocation@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+    extendedDynamicState3CoverageToColorLocation :: Bool+  , -- | #features-extendedDynamicState3CoverageModulationMode#+    -- @extendedDynamicState3CoverageModulationMode@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+    extendedDynamicState3CoverageModulationMode :: Bool+  , -- | #features-extendedDynamicState3CoverageModulationTableEnable#+    -- @extendedDynamicState3CoverageModulationTableEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+    extendedDynamicState3CoverageModulationTableEnable :: Bool+  , -- | #features-extendedDynamicState3CoverageModulationTable#+    -- @extendedDynamicState3CoverageModulationTable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+    extendedDynamicState3CoverageModulationTable :: Bool+  , -- | #features-extendedDynamicState3CoverageReductionMode#+    -- @extendedDynamicState3CoverageReductionMode@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+    extendedDynamicState3CoverageReductionMode :: Bool+  , -- | #features-extendedDynamicState3RepresentativeFragmentTestEnable#+    -- @extendedDynamicState3RepresentativeFragmentTestEnable@ indicates that+    -- the implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+    extendedDynamicState3RepresentativeFragmentTestEnable :: Bool+  , -- | #features-extendedDynamicState3ShadingRateImageEnable#+    -- @extendedDynamicState3ShadingRateImageEnable@ indicates that the+    -- implementation supports the following dynamic state:+    --+    -- -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+    extendedDynamicState3ShadingRateImageEnable :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceExtendedDynamicState3FeaturesEXT)+#endif+deriving instance Show PhysicalDeviceExtendedDynamicState3FeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT where+  withCStruct x f = allocaBytes 144 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceExtendedDynamicState3FeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3TessellationDomainOrigin))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3DepthClampEnable))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3PolygonMode))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3RasterizationSamples))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3SampleMask))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3AlphaToCoverageEnable))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3AlphaToOneEnable))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3LogicOpEnable))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ColorBlendEnable))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ColorBlendEquation))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ColorWriteMask))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3RasterizationStream))+    poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ConservativeRasterizationMode))+    poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ExtraPrimitiveOverestimationSize))+    poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3DepthClipEnable))+    poke ((p `plusPtr` 76 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3SampleLocationsEnable))+    poke ((p `plusPtr` 80 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ColorBlendAdvanced))+    poke ((p `plusPtr` 84 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ProvokingVertexMode))+    poke ((p `plusPtr` 88 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3LineRasterizationMode))+    poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3LineStippleEnable))+    poke ((p `plusPtr` 96 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3DepthClipNegativeOneToOne))+    poke ((p `plusPtr` 100 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ViewportWScalingEnable))+    poke ((p `plusPtr` 104 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ViewportSwizzle))+    poke ((p `plusPtr` 108 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3CoverageToColorEnable))+    poke ((p `plusPtr` 112 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3CoverageToColorLocation))+    poke ((p `plusPtr` 116 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3CoverageModulationMode))+    poke ((p `plusPtr` 120 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3CoverageModulationTableEnable))+    poke ((p `plusPtr` 124 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3CoverageModulationTable))+    poke ((p `plusPtr` 128 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3CoverageReductionMode))+    poke ((p `plusPtr` 132 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3RepresentativeFragmentTestEnable))+    poke ((p `plusPtr` 136 :: Ptr Bool32)) (boolToBool32 (extendedDynamicState3ShadingRateImageEnable))+    f+  cStructSize = 144+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+    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))+    f++instance FromCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT where+  peekCStruct p = do+    extendedDynamicState3TessellationDomainOrigin <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    extendedDynamicState3DepthClampEnable <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    extendedDynamicState3PolygonMode <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    extendedDynamicState3RasterizationSamples <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    extendedDynamicState3SampleMask <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    extendedDynamicState3AlphaToCoverageEnable <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+    extendedDynamicState3AlphaToOneEnable <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+    extendedDynamicState3LogicOpEnable <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+    extendedDynamicState3ColorBlendEnable <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+    extendedDynamicState3ColorBlendEquation <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+    extendedDynamicState3ColorWriteMask <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+    extendedDynamicState3RasterizationStream <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+    extendedDynamicState3ConservativeRasterizationMode <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+    extendedDynamicState3ExtraPrimitiveOverestimationSize <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+    extendedDynamicState3DepthClipEnable <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+    extendedDynamicState3SampleLocationsEnable <- peek @Bool32 ((p `plusPtr` 76 :: Ptr Bool32))+    extendedDynamicState3ColorBlendAdvanced <- peek @Bool32 ((p `plusPtr` 80 :: Ptr Bool32))+    extendedDynamicState3ProvokingVertexMode <- peek @Bool32 ((p `plusPtr` 84 :: Ptr Bool32))+    extendedDynamicState3LineRasterizationMode <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))+    extendedDynamicState3LineStippleEnable <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))+    extendedDynamicState3DepthClipNegativeOneToOne <- peek @Bool32 ((p `plusPtr` 96 :: Ptr Bool32))+    extendedDynamicState3ViewportWScalingEnable <- peek @Bool32 ((p `plusPtr` 100 :: Ptr Bool32))+    extendedDynamicState3ViewportSwizzle <- peek @Bool32 ((p `plusPtr` 104 :: Ptr Bool32))+    extendedDynamicState3CoverageToColorEnable <- peek @Bool32 ((p `plusPtr` 108 :: Ptr Bool32))+    extendedDynamicState3CoverageToColorLocation <- peek @Bool32 ((p `plusPtr` 112 :: Ptr Bool32))+    extendedDynamicState3CoverageModulationMode <- peek @Bool32 ((p `plusPtr` 116 :: Ptr Bool32))+    extendedDynamicState3CoverageModulationTableEnable <- peek @Bool32 ((p `plusPtr` 120 :: Ptr Bool32))+    extendedDynamicState3CoverageModulationTable <- peek @Bool32 ((p `plusPtr` 124 :: Ptr Bool32))+    extendedDynamicState3CoverageReductionMode <- peek @Bool32 ((p `plusPtr` 128 :: Ptr Bool32))+    extendedDynamicState3RepresentativeFragmentTestEnable <- peek @Bool32 ((p `plusPtr` 132 :: Ptr Bool32))+    extendedDynamicState3ShadingRateImageEnable <- peek @Bool32 ((p `plusPtr` 136 :: Ptr Bool32))+    pure $ PhysicalDeviceExtendedDynamicState3FeaturesEXT+             (bool32ToBool extendedDynamicState3TessellationDomainOrigin)+             (bool32ToBool extendedDynamicState3DepthClampEnable)+             (bool32ToBool extendedDynamicState3PolygonMode)+             (bool32ToBool extendedDynamicState3RasterizationSamples)+             (bool32ToBool extendedDynamicState3SampleMask)+             (bool32ToBool extendedDynamicState3AlphaToCoverageEnable)+             (bool32ToBool extendedDynamicState3AlphaToOneEnable)+             (bool32ToBool extendedDynamicState3LogicOpEnable)+             (bool32ToBool extendedDynamicState3ColorBlendEnable)+             (bool32ToBool extendedDynamicState3ColorBlendEquation)+             (bool32ToBool extendedDynamicState3ColorWriteMask)+             (bool32ToBool extendedDynamicState3RasterizationStream)+             (bool32ToBool extendedDynamicState3ConservativeRasterizationMode)+             (bool32ToBool extendedDynamicState3ExtraPrimitiveOverestimationSize)+             (bool32ToBool extendedDynamicState3DepthClipEnable)+             (bool32ToBool extendedDynamicState3SampleLocationsEnable)+             (bool32ToBool extendedDynamicState3ColorBlendAdvanced)+             (bool32ToBool extendedDynamicState3ProvokingVertexMode)+             (bool32ToBool extendedDynamicState3LineRasterizationMode)+             (bool32ToBool extendedDynamicState3LineStippleEnable)+             (bool32ToBool extendedDynamicState3DepthClipNegativeOneToOne)+             (bool32ToBool extendedDynamicState3ViewportWScalingEnable)+             (bool32ToBool extendedDynamicState3ViewportSwizzle)+             (bool32ToBool extendedDynamicState3CoverageToColorEnable)+             (bool32ToBool extendedDynamicState3CoverageToColorLocation)+             (bool32ToBool extendedDynamicState3CoverageModulationMode)+             (bool32ToBool extendedDynamicState3CoverageModulationTableEnable)+             (bool32ToBool extendedDynamicState3CoverageModulationTable)+             (bool32ToBool extendedDynamicState3CoverageReductionMode)+             (bool32ToBool extendedDynamicState3RepresentativeFragmentTestEnable)+             (bool32ToBool extendedDynamicState3ShadingRateImageEnable)++instance Storable PhysicalDeviceExtendedDynamicState3FeaturesEXT where+  sizeOf ~_ = 144+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceExtendedDynamicState3FeaturesEXT where+  zero = PhysicalDeviceExtendedDynamicState3FeaturesEXT+           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+++-- | VkPhysicalDeviceExtendedDynamicState3PropertiesEXT - Structure+-- describing capabilities of extended dynamic state+--+-- = Description+--+-- If the 'PhysicalDeviceExtendedDynamicState3PropertiesEXT' 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_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExtendedDynamicState3PropertiesEXT = PhysicalDeviceExtendedDynamicState3PropertiesEXT+  { -- | #limits-dynamicPrimitiveTopologyUnrestricted#+    -- @dynamicPrimitiveTopologyUnrestricted@ indicates that the implementation+    -- allows+    -- 'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state.cmdSetPrimitiveTopology'+    -- to use a different+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-primitive-topology-class primitive topology class>+    -- to the one specified in the active graphics pipeline.+    dynamicPrimitiveTopologyUnrestricted :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceExtendedDynamicState3PropertiesEXT)+#endif+deriving instance Show PhysicalDeviceExtendedDynamicState3PropertiesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceExtendedDynamicState3PropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (dynamicPrimitiveTopologyUnrestricted))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT where+  peekCStruct p = do+    dynamicPrimitiveTopologyUnrestricted <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceExtendedDynamicState3PropertiesEXT+             (bool32ToBool dynamicPrimitiveTopologyUnrestricted)++instance Storable PhysicalDeviceExtendedDynamicState3PropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceExtendedDynamicState3PropertiesEXT where+  zero = PhysicalDeviceExtendedDynamicState3PropertiesEXT+           zero+++-- | VkColorBlendEquationEXT - Structure specifying the color blend factors+-- and operations for an attachment+--+-- == Valid Usage+--+-- -   #VUID-VkColorBlendEquationEXT-dualSrcBlend-07357# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+--     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',+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- -   #VUID-VkColorBlendEquationEXT-dualSrcBlend-07358# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+--     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',+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- -   #VUID-VkColorBlendEquationEXT-dualSrcBlend-07359# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+--     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',+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- -   #VUID-VkColorBlendEquationEXT-dualSrcBlend-07360# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-dualSrcBlend dualSrcBlend>+--     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',+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_SRC1_ALPHA', or+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA'+--+-- -   #VUID-VkColorBlendEquationEXT-colorBlendOp-07361# @colorBlendOp@ and+--     @alphaBlendOp@ /must/ not be+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_ZERO_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OVER_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OVER_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_IN_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_IN_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_OUT_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_OUT_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_SRC_ATOP_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_DST_ATOP_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_XOR_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_RGB_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARDODGE_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARBURN_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_VIVIDLIGHT_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_LINEARLIGHT_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PINLIGHT_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_HARDMIX_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_CLAMPED_ALPHA_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_PLUS_DARKER_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_MINUS_CLAMPED_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_CONTRAST_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_INVERT_OVG_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_RED_EXT',+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_GREEN_EXT', or+--     'Vulkan.Core10.Enums.BlendOp.BLEND_OP_BLUE_EXT'+--+-- -   #VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07362#+--     If the @VK_KHR_portability_subset@ extension is enabled, and+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@+--     /must/ not be+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'+--+-- -   #VUID-VkColorBlendEquationEXT-constantAlphaColorBlendFactors-07363#+--     If the @VK_KHR_portability_subset@ extension is enabled, and+--     'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@+--     /must/ not be+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or+--     'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkColorBlendEquationEXT-srcColorBlendFactor-parameter#+--     @srcColorBlendFactor@ /must/ be a valid+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- -   #VUID-VkColorBlendEquationEXT-dstColorBlendFactor-parameter#+--     @dstColorBlendFactor@ /must/ be a valid+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- -   #VUID-VkColorBlendEquationEXT-colorBlendOp-parameter# @colorBlendOp@+--     /must/ be a valid 'Vulkan.Core10.Enums.BlendOp.BlendOp' value+--+-- -   #VUID-VkColorBlendEquationEXT-srcAlphaBlendFactor-parameter#+--     @srcAlphaBlendFactor@ /must/ be a valid+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- -   #VUID-VkColorBlendEquationEXT-dstAlphaBlendFactor-parameter#+--     @dstAlphaBlendFactor@ /must/ be a valid+--     'Vulkan.Core10.Enums.BlendFactor.BlendFactor' value+--+-- -   #VUID-VkColorBlendEquationEXT-alphaBlendOp-parameter# @alphaBlendOp@+--     /must/ be a valid 'Vulkan.Core10.Enums.BlendOp.BlendOp' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Enums.BlendFactor.BlendFactor',+-- 'Vulkan.Core10.Enums.BlendOp.BlendOp', 'cmdSetColorBlendEquationEXT'+data ColorBlendEquationEXT = ColorBlendEquationEXT+  { -- | @srcColorBlendFactor@ selects which blend factor is used to determine+    -- the source factors (Sr,Sg,Sb).+    srcColorBlendFactor :: BlendFactor+  , -- | @dstColorBlendFactor@ selects which blend factor is used to determine+    -- the destination factors (Dr,Dg,Db).+    dstColorBlendFactor :: BlendFactor+  , -- | @colorBlendOp@ selects which blend operation is used to calculate the+    -- RGB values to write to the color attachment.+    colorBlendOp :: BlendOp+  , -- | @srcAlphaBlendFactor@ selects which blend factor is used to determine+    -- the source factor Sa.+    srcAlphaBlendFactor :: BlendFactor+  , -- | @dstAlphaBlendFactor@ selects which blend factor is used to determine+    -- the destination factor Da.+    dstAlphaBlendFactor :: BlendFactor+  , -- | @alphaBlendOp@ selects which blend operation is use to calculate the+    -- alpha values to write to the color attachment.+    alphaBlendOp :: BlendOp+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ColorBlendEquationEXT)+#endif+deriving instance Show ColorBlendEquationEXT++instance ToCStruct ColorBlendEquationEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ColorBlendEquationEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr BlendFactor)) (srcColorBlendFactor)+    poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (dstColorBlendFactor)+    poke ((p `plusPtr` 8 :: Ptr BlendOp)) (colorBlendOp)+    poke ((p `plusPtr` 12 :: Ptr BlendFactor)) (srcAlphaBlendFactor)+    poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (dstAlphaBlendFactor)+    poke ((p `plusPtr` 20 :: Ptr BlendOp)) (alphaBlendOp)+    f+  cStructSize = 24+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr BlendFactor)) (zero)+    poke ((p `plusPtr` 4 :: Ptr BlendFactor)) (zero)+    poke ((p `plusPtr` 8 :: Ptr BlendOp)) (zero)+    poke ((p `plusPtr` 12 :: Ptr BlendFactor)) (zero)+    poke ((p `plusPtr` 16 :: Ptr BlendFactor)) (zero)+    poke ((p `plusPtr` 20 :: Ptr BlendOp)) (zero)+    f++instance FromCStruct ColorBlendEquationEXT where+  peekCStruct p = do+    srcColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 0 :: Ptr BlendFactor))+    dstColorBlendFactor <- peek @BlendFactor ((p `plusPtr` 4 :: Ptr BlendFactor))+    colorBlendOp <- peek @BlendOp ((p `plusPtr` 8 :: Ptr BlendOp))+    srcAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 12 :: Ptr BlendFactor))+    dstAlphaBlendFactor <- peek @BlendFactor ((p `plusPtr` 16 :: Ptr BlendFactor))+    alphaBlendOp <- peek @BlendOp ((p `plusPtr` 20 :: Ptr BlendOp))+    pure $ ColorBlendEquationEXT+             srcColorBlendFactor+             dstColorBlendFactor+             colorBlendOp+             srcAlphaBlendFactor+             dstAlphaBlendFactor+             alphaBlendOp++instance Storable ColorBlendEquationEXT where+  sizeOf ~_ = 24+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ColorBlendEquationEXT where+  zero = ColorBlendEquationEXT+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkColorBlendAdvancedEXT - Structure specifying the advanced blend+-- operation parameters for an attachment+--+-- == Valid Usage+--+-- -   #VUID-VkColorBlendAdvancedEXT-srcPremultiplied-07505# If the+--     <https://registry.khronos.org/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-VkColorBlendAdvancedEXT-dstPremultiplied-07506# If the+--     <https://registry.khronos.org/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-VkColorBlendAdvancedEXT-blendOverlap-07507# If the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-advancedBlendCorrelatedOverlap correlated overlap>+--     property is not supported, @blendOverlap@ /must/ be+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BLEND_OVERLAP_UNCORRELATED_EXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkColorBlendAdvancedEXT-advancedBlendOp-parameter#+--     @advancedBlendOp@ /must/ be a valid+--     'Vulkan.Core10.Enums.BlendOp.BlendOp' value+--+-- -   #VUID-VkColorBlendAdvancedEXT-blendOverlap-parameter# @blendOverlap@+--     /must/ be a valid+--     'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BlendOverlapEXT'+--     value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 VK_EXT_extended_dynamic_state3>,+-- 'Vulkan.Core10.Enums.BlendOp.BlendOp',+-- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BlendOverlapEXT',+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'cmdSetColorBlendAdvancedEXT'+data ColorBlendAdvancedEXT = ColorBlendAdvancedEXT+  { -- | @advancedBlendOp@ selects which blend operation is used to calculate the+    -- RGB values to write to the color attachment.+    advancedBlendOp :: BlendOp+  , -- | @srcPremultiplied@ specifies whether the source color of the blend+    -- operation is treated as premultiplied.+    srcPremultiplied :: Bool+  , -- | @dstPremultiplied@ specifies whether the destination color of the blend+    -- operation is treated as premultiplied.+    dstPremultiplied :: Bool+  , -- | @blendOverlap@ is a+    -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.BlendOverlapEXT'+    -- value specifying how the source and destination sample’s coverage is+    -- correlated.+    blendOverlap :: BlendOverlapEXT+  , -- | @clampResults@ specifies the results must be clamped to the [0,1] range+    -- before writing to the attachment, which is useful when the attachment+    -- format is not normalized fixed-point.+    clampResults :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ColorBlendAdvancedEXT)+#endif+deriving instance Show ColorBlendAdvancedEXT++instance ToCStruct ColorBlendAdvancedEXT where+  withCStruct x f = allocaBytes 20 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p ColorBlendAdvancedEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr BlendOp)) (advancedBlendOp)+    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (srcPremultiplied))+    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (dstPremultiplied))+    poke ((p `plusPtr` 12 :: Ptr BlendOverlapEXT)) (blendOverlap)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clampResults))+    f+  cStructSize = 20+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr BlendOp)) (zero)+    poke ((p `plusPtr` 4 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 8 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 12 :: Ptr BlendOverlapEXT)) (zero)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct ColorBlendAdvancedEXT where+  peekCStruct p = do+    advancedBlendOp <- peek @BlendOp ((p `plusPtr` 0 :: Ptr BlendOp))+    srcPremultiplied <- peek @Bool32 ((p `plusPtr` 4 :: Ptr Bool32))+    dstPremultiplied <- peek @Bool32 ((p `plusPtr` 8 :: Ptr Bool32))+    blendOverlap <- peek @BlendOverlapEXT ((p `plusPtr` 12 :: Ptr BlendOverlapEXT))+    clampResults <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ ColorBlendAdvancedEXT+             advancedBlendOp+             (bool32ToBool srcPremultiplied)+             (bool32ToBool dstPremultiplied)+             blendOverlap+             (bool32ToBool clampResults)++instance Storable ColorBlendAdvancedEXT where+  sizeOf ~_ = 20+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero ColorBlendAdvancedEXT where+  zero = ColorBlendAdvancedEXT+           zero+           zero+           zero+           zero+           zero+++type EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION"+pattern EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION = 2+++type EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3"++-- No documentation found for TopLevel "VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME"+pattern EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME = "VK_EXT_extended_dynamic_state3"+
+ src/Vulkan/Extensions/VK_EXT_extended_dynamic_state3.hs-boot view
@@ -0,0 +1,323 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_extended_dynamic_state3 - device extension+--+-- == VK_EXT_extended_dynamic_state3+--+-- [__Name String__]+--     @VK_EXT_extended_dynamic_state3@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     456+--+-- [__Revision__]+--     2+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Piers Daniell+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_extended_dynamic_state3] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_EXT_extended_dynamic_state3 extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_extended_dynamic_state3.adoc VK_EXT_extended_dynamic_state3>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-09-02+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Daniel Story, Nintendo+--+--     -   Jamie Madill, Google+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Jason Ekstrand, Collabora+--+--     -   Mike Blumenkrantz, Valve+--+--     -   Ricardo Garcia, Igalia+--+--     -   Samuel Pitoiset, Valve+--+--     -   Shahbaz Youssefi, Google+--+--     -   Stu Smith, AMD+--+--     -   Tapani Pälli, Intel+--+-- == Description+--+-- This extension adds almost all of the remaining pipeline state as+-- dynamic state to help applications further reduce the number of+-- monolithic pipelines they need to create and bind.+--+-- == New Commands+--+-- -   'cmdSetAlphaToCoverageEnableEXT'+--+-- -   'cmdSetAlphaToOneEnableEXT'+--+-- -   'cmdSetColorBlendAdvancedEXT'+--+-- -   'cmdSetColorBlendEnableEXT'+--+-- -   'cmdSetColorBlendEquationEXT'+--+-- -   'cmdSetColorWriteMaskEXT'+--+-- -   'cmdSetConservativeRasterizationModeEXT'+--+-- -   'cmdSetCoverageModulationModeNV'+--+-- -   'cmdSetCoverageModulationTableEnableNV'+--+-- -   'cmdSetCoverageModulationTableNV'+--+-- -   'cmdSetCoverageReductionModeNV'+--+-- -   'cmdSetCoverageToColorEnableNV'+--+-- -   'cmdSetCoverageToColorLocationNV'+--+-- -   'cmdSetDepthClampEnableEXT'+--+-- -   'cmdSetDepthClipEnableEXT'+--+-- -   'cmdSetDepthClipNegativeOneToOneEXT'+--+-- -   'cmdSetExtraPrimitiveOverestimationSizeEXT'+--+-- -   'cmdSetLineRasterizationModeEXT'+--+-- -   'cmdSetLineStippleEnableEXT'+--+-- -   'cmdSetLogicOpEnableEXT'+--+-- -   'cmdSetPolygonModeEXT'+--+-- -   'cmdSetProvokingVertexModeEXT'+--+-- -   'cmdSetRasterizationSamplesEXT'+--+-- -   'cmdSetRasterizationStreamEXT'+--+-- -   'cmdSetRepresentativeFragmentTestEnableNV'+--+-- -   'cmdSetSampleLocationsEnableEXT'+--+-- -   'cmdSetSampleMaskEXT'+--+-- -   'cmdSetShadingRateImageEnableNV'+--+-- -   'cmdSetTessellationDomainOriginEXT'+--+-- -   'cmdSetViewportSwizzleNV'+--+-- -   'cmdSetViewportWScalingEnableNV'+--+-- == New Structures+--+-- -   'ColorBlendAdvancedEXT'+--+-- -   'ColorBlendEquationEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceExtendedDynamicState3FeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceExtendedDynamicState3PropertiesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME'+--+-- -   'EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.DynamicState.DynamicState':+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_POLYGON_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV'+--+--     -   'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT'+--+-- == Issues+--+-- 1) What about the VkPipelineMultisampleStateCreateInfo state+-- @sampleShadingEnable@ and @minSampleShading@?+--+-- [UNRESOLVED]+--+--     -   @sampleShadingEnable@ and @minSampleShading@ are required when+--         compiling the fragment shader, and it is not meaningful to set+--         them dynamically since they always need to match the fragment+--         shader state, so this hardware state may as well just come from+--         the pipeline with the fragment shader.+--+-- == Version History+--+-- -   Revision 2, 2022-07-18 (Piers Daniell)+--+--     -   Added rasterizationSamples+--+-- -   Revision 1, 2022-05-18 (Piers Daniell)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'ColorBlendAdvancedEXT', 'ColorBlendEquationEXT',+-- 'PhysicalDeviceExtendedDynamicState3FeaturesEXT',+-- 'PhysicalDeviceExtendedDynamicState3PropertiesEXT',+-- 'cmdSetAlphaToCoverageEnableEXT', 'cmdSetAlphaToOneEnableEXT',+-- 'cmdSetColorBlendAdvancedEXT', 'cmdSetColorBlendEnableEXT',+-- 'cmdSetColorBlendEquationEXT', 'cmdSetColorWriteMaskEXT',+-- 'cmdSetConservativeRasterizationModeEXT',+-- 'cmdSetCoverageModulationModeNV',+-- 'cmdSetCoverageModulationTableEnableNV',+-- 'cmdSetCoverageModulationTableNV', 'cmdSetCoverageReductionModeNV',+-- 'cmdSetCoverageToColorEnableNV', 'cmdSetCoverageToColorLocationNV',+-- 'cmdSetDepthClampEnableEXT', 'cmdSetDepthClipEnableEXT',+-- 'cmdSetDepthClipNegativeOneToOneEXT',+-- 'cmdSetExtraPrimitiveOverestimationSizeEXT',+-- 'cmdSetLineRasterizationModeEXT', 'cmdSetLineStippleEnableEXT',+-- 'cmdSetLogicOpEnableEXT', 'cmdSetPolygonModeEXT',+-- 'cmdSetProvokingVertexModeEXT', 'cmdSetRasterizationSamplesEXT',+-- 'cmdSetRasterizationStreamEXT',+-- 'cmdSetRepresentativeFragmentTestEnableNV',+-- 'cmdSetSampleLocationsEnableEXT', 'cmdSetSampleMaskEXT',+-- 'cmdSetShadingRateImageEnableNV', 'cmdSetTessellationDomainOriginEXT',+-- 'cmdSetViewportSwizzleNV', 'cmdSetViewportWScalingEnableNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_extended_dynamic_state3 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_state3  ( ColorBlendAdvancedEXT+                                                         , ColorBlendEquationEXT+                                                         , PhysicalDeviceExtendedDynamicState3FeaturesEXT+                                                         , PhysicalDeviceExtendedDynamicState3PropertiesEXT+                                                         ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data ColorBlendAdvancedEXT++instance ToCStruct ColorBlendAdvancedEXT+instance Show ColorBlendAdvancedEXT++instance FromCStruct ColorBlendAdvancedEXT+++data ColorBlendEquationEXT++instance ToCStruct ColorBlendEquationEXT+instance Show ColorBlendEquationEXT++instance FromCStruct ColorBlendEquationEXT+++data PhysicalDeviceExtendedDynamicState3FeaturesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT+instance Show PhysicalDeviceExtendedDynamicState3FeaturesEXT++instance FromCStruct PhysicalDeviceExtendedDynamicState3FeaturesEXT+++data PhysicalDeviceExtendedDynamicState3PropertiesEXT++instance ToCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT+instance Show PhysicalDeviceExtendedDynamicState3PropertiesEXT++instance FromCStruct PhysicalDeviceExtendedDynamicState3PropertiesEXT+
src/Vulkan/Extensions/VK_EXT_external_memory_host.hs view
@@ -303,13 +303,19 @@                                   -> -- | @pHostPointer@ is the host pointer to import from.                                      ("hostPointer" ::: Ptr ())                                   -> io (MemoryHostPointerPropertiesEXT)-getMemoryHostPointerPropertiesEXT device handleType hostPointer = liftIO . evalContT $ do+getMemoryHostPointerPropertiesEXT device+                                    handleType+                                    hostPointer = liftIO . evalContT $ do   let vkGetMemoryHostPointerPropertiesEXTPtr = pVkGetMemoryHostPointerPropertiesEXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetMemoryHostPointerPropertiesEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryHostPointerPropertiesEXT is null" Nothing Nothing   let vkGetMemoryHostPointerPropertiesEXT' = mkVkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXTPtr   pPMemoryHostPointerProperties <- ContT (withZeroCStruct @MemoryHostPointerPropertiesEXT)-  r <- lift $ traceAroundEvent "vkGetMemoryHostPointerPropertiesEXT" (vkGetMemoryHostPointerPropertiesEXT' (deviceHandle (device)) (handleType) (hostPointer) (pPMemoryHostPointerProperties))+  r <- lift $ traceAroundEvent "vkGetMemoryHostPointerPropertiesEXT" (vkGetMemoryHostPointerPropertiesEXT'+                                                                        (deviceHandle (device))+                                                                        (handleType)+                                                                        (hostPointer)+                                                                        (pPMemoryHostPointerProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMemoryHostPointerProperties <- lift $ peekCStruct @MemoryHostPointerPropertiesEXT pPMemoryHostPointerProperties   pure $ (pMemoryHostPointerProperties)
src/Vulkan/Extensions/VK_EXT_fragment_density_map.hs view
@@ -310,7 +310,9 @@     fragmentDensityMapDynamic <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     fragmentDensityMapNonSubsampledImages <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceFragmentDensityMapFeaturesEXT-             (bool32ToBool fragmentDensityMap) (bool32ToBool fragmentDensityMapDynamic) (bool32ToBool fragmentDensityMapNonSubsampledImages)+             (bool32ToBool fragmentDensityMap)+             (bool32ToBool fragmentDensityMapDynamic)+             (bool32ToBool fragmentDensityMapNonSubsampledImages)  instance Storable PhysicalDeviceFragmentDensityMapFeaturesEXT where   sizeOf ~_ = 32@@ -391,7 +393,9 @@     maxFragmentDensityTexelSize <- peekCStruct @Extent2D ((p `plusPtr` 24 :: Ptr Extent2D))     fragmentDensityInvocations <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))     pure $ PhysicalDeviceFragmentDensityMapPropertiesEXT-             minFragmentDensityTexelSize maxFragmentDensityTexelSize (bool32ToBool fragmentDensityInvocations)+             minFragmentDensityTexelSize+             maxFragmentDensityTexelSize+             (bool32ToBool fragmentDensityInvocations)  instance Storable PhysicalDeviceFragmentDensityMapPropertiesEXT where   sizeOf ~_ = 40
src/Vulkan/Extensions/VK_EXT_fragment_density_map2.hs view
@@ -285,7 +285,10 @@     maxSubsampledArrayLayers <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     maxDescriptorSetSubsampledSamplers <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))     pure $ PhysicalDeviceFragmentDensityMap2PropertiesEXT-             (bool32ToBool subsampledLoads) (bool32ToBool subsampledCoarseReconstructionEarlyAccess) maxSubsampledArrayLayers maxDescriptorSetSubsampledSamplers+             (bool32ToBool subsampledLoads)+             (bool32ToBool subsampledCoarseReconstructionEarlyAccess)+             maxSubsampledArrayLayers+             maxDescriptorSetSubsampledSamplers  instance Storable PhysicalDeviceFragmentDensityMap2PropertiesEXT where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_EXT_fragment_shader_interlock.hs view
@@ -226,7 +226,9 @@     fragmentShaderPixelInterlock <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     fragmentShaderShadingRateInterlock <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceFragmentShaderInterlockFeaturesEXT-             (bool32ToBool fragmentShaderSampleInterlock) (bool32ToBool fragmentShaderPixelInterlock) (bool32ToBool fragmentShaderShadingRateInterlock)+             (bool32ToBool fragmentShaderSampleInterlock)+             (bool32ToBool fragmentShaderPixelInterlock)+             (bool32ToBool fragmentShaderShadingRateInterlock)  instance Storable PhysicalDeviceFragmentShaderInterlockFeaturesEXT where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -444,7 +444,9 @@ -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_surface.PresentModeKHR' getPhysicalDeviceSurfacePresentModes2EXT :: forall a io-                                          . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, MonadIO io)+                                          . ( Extendss PhysicalDeviceSurfaceInfo2KHR a+                                            , PokeChain a+                                            , MonadIO io )                                          => -- | @physicalDevice@ is the physical device that will be associated with the                                             -- swapchain to be created, as described for                                             -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.@@ -455,7 +457,8 @@                                             -- be consumed by 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.                                             (PhysicalDeviceSurfaceInfo2KHR a)                                          -> io (Result, ("presentModes" ::: Vector PresentModeKHR))-getPhysicalDeviceSurfacePresentModes2EXT physicalDevice surfaceInfo = liftIO . evalContT $ do+getPhysicalDeviceSurfacePresentModes2EXT physicalDevice+                                           surfaceInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfacePresentModes2EXTPtr = pVkGetPhysicalDeviceSurfacePresentModes2EXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfacePresentModes2EXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfacePresentModes2EXT is null" Nothing Nothing@@ -464,11 +467,19 @@   pSurfaceInfo <- ContT $ withCStruct (surfaceInfo)   let x9 = forgetExtensions pSurfaceInfo   pPPresentModeCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModes2EXT" (vkGetPhysicalDeviceSurfacePresentModes2EXT' physicalDevice' x9 (pPPresentModeCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModes2EXT" (vkGetPhysicalDeviceSurfacePresentModes2EXT'+                                                                               physicalDevice'+                                                                               x9+                                                                               (pPPresentModeCount)+                                                                               (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPresentModeCount <- lift $ peek @Word32 pPPresentModeCount   pPPresentModes <- ContT $ bracket (callocBytes @PresentModeKHR ((fromIntegral (pPresentModeCount)) * 4)) free-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModes2EXT" (vkGetPhysicalDeviceSurfacePresentModes2EXT' physicalDevice' x9 (pPPresentModeCount) (pPPresentModes))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModes2EXT" (vkGetPhysicalDeviceSurfacePresentModes2EXT'+                                                                                physicalDevice'+                                                                                x9+                                                                                (pPPresentModeCount)+                                                                                (pPPresentModes))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPresentModeCount' <- lift $ peek @Word32 pPPresentModeCount   pPresentModes' <- lift $ generateM (fromIntegral (pPresentModeCount')) (\i -> peek @PresentModeKHR ((pPPresentModes `advancePtrBytes` (4 * (i)) :: Ptr PresentModeKHR)))@@ -515,7 +526,9 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.DeviceGroupPresentModeFlagsKHR', -- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.PhysicalDeviceSurfaceInfo2KHR' getDeviceGroupSurfacePresentModes2EXT :: forall a io-                                       . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, MonadIO io)+                                       . ( Extendss PhysicalDeviceSurfaceInfo2KHR a+                                         , PokeChain a+                                         , MonadIO io )                                       => -- | @device@ is the logical device.                                          --                                          -- #VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter# @device@@@ -532,14 +545,18 @@                                          -- structure                                          (PhysicalDeviceSurfaceInfo2KHR a)                                       -> io (("modes" ::: DeviceGroupPresentModeFlagsKHR))-getDeviceGroupSurfacePresentModes2EXT device surfaceInfo = liftIO . evalContT $ do+getDeviceGroupSurfacePresentModes2EXT device+                                        surfaceInfo = liftIO . evalContT $ do   let vkGetDeviceGroupSurfacePresentModes2EXTPtr = pVkGetDeviceGroupSurfacePresentModes2EXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetDeviceGroupSurfacePresentModes2EXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupSurfacePresentModes2EXT is null" Nothing Nothing   let vkGetDeviceGroupSurfacePresentModes2EXT' = mkVkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXTPtr   pSurfaceInfo <- ContT $ withCStruct (surfaceInfo)   pPModes <- ContT $ bracket (callocBytes @DeviceGroupPresentModeFlagsKHR 4) free-  r <- lift $ traceAroundEvent "vkGetDeviceGroupSurfacePresentModes2EXT" (vkGetDeviceGroupSurfacePresentModes2EXT' (deviceHandle (device)) (forgetExtensions pSurfaceInfo) (pPModes))+  r <- lift $ traceAroundEvent "vkGetDeviceGroupSurfacePresentModes2EXT" (vkGetDeviceGroupSurfacePresentModes2EXT'+                                                                            (deviceHandle (device))+                                                                            (forgetExtensions pSurfaceInfo)+                                                                            (pPModes))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pModes <- lift $ peek @DeviceGroupPresentModeFlagsKHR pPModes   pure $ (pModes)@@ -632,7 +649,9 @@   unless (vkAcquireFullScreenExclusiveModeEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireFullScreenExclusiveModeEXT is null" Nothing Nothing   let vkAcquireFullScreenExclusiveModeEXT' = mkVkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXTPtr-  r <- traceAroundEvent "vkAcquireFullScreenExclusiveModeEXT" (vkAcquireFullScreenExclusiveModeEXT' (deviceHandle (device)) (swapchain))+  r <- traceAroundEvent "vkAcquireFullScreenExclusiveModeEXT" (vkAcquireFullScreenExclusiveModeEXT'+                                                                 (deviceHandle (device))+                                                                 (swapchain))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -682,7 +701,9 @@   unless (vkReleaseFullScreenExclusiveModeEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseFullScreenExclusiveModeEXT is null" Nothing Nothing   let vkReleaseFullScreenExclusiveModeEXT' = mkVkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXTPtr-  r <- traceAroundEvent "vkReleaseFullScreenExclusiveModeEXT" (vkReleaseFullScreenExclusiveModeEXT' (deviceHandle (device)) (swapchain))+  r <- traceAroundEvent "vkReleaseFullScreenExclusiveModeEXT" (vkReleaseFullScreenExclusiveModeEXT'+                                                                 (deviceHandle (device))+                                                                 (swapchain))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -896,28 +917,35 @@ -- | 'FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT' indicates the implementation -- /should/ determine the appropriate full-screen method by whatever means -- it deems appropriate.-pattern FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT                = FullScreenExclusiveEXT 0+pattern FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = FullScreenExclusiveEXT 0+ -- | 'FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT' indicates the implementation /may/ -- use full-screen exclusive mechanisms when available. Such mechanisms -- /may/ result in better performance and\/or the availability of different -- presentation capabilities, but /may/ require a more disruptive -- transition during swapchain initialization, first presentation and\/or -- destruction.-pattern FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT                = FullScreenExclusiveEXT 1+pattern FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = FullScreenExclusiveEXT 1+ -- | 'FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT' indicates the implementation -- /should/ avoid using full-screen mechanisms which rely on disruptive -- transitions.-pattern FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT             = FullScreenExclusiveEXT 2+pattern FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = FullScreenExclusiveEXT 2+ -- | 'FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT' indicates the -- application will manage full-screen exclusive mode by using the -- 'acquireFullScreenExclusiveModeEXT' and -- 'releaseFullScreenExclusiveModeEXT' commands. pattern FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = FullScreenExclusiveEXT 3-{-# complete FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT,-             FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT,-             FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT,-             FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT :: FullScreenExclusiveEXT #-} +{-# COMPLETE+  FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT+  , FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT+  , FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT+  , FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT ::+    FullScreenExclusiveEXT+  #-}+ conNameFullScreenExclusiveEXT :: String conNameFullScreenExclusiveEXT = "FullScreenExclusiveEXT" @@ -926,25 +954,40 @@  showTableFullScreenExclusiveEXT :: [(FullScreenExclusiveEXT, String)] showTableFullScreenExclusiveEXT =-  [ (FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT               , "DEFAULT_EXT")-  , (FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT               , "ALLOWED_EXT")-  , (FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT            , "DISALLOWED_EXT")-  , (FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, "APPLICATION_CONTROLLED_EXT")+  [+    ( FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT+    , "DEFAULT_EXT"+    )+  ,+    ( FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT+    , "ALLOWED_EXT"+    )+  ,+    ( FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT+    , "DISALLOWED_EXT"+    )+  ,+    ( FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT+    , "APPLICATION_CONTROLLED_EXT"+    )   ]  instance Show FullScreenExclusiveEXT where-  showsPrec = enumShowsPrec enumPrefixFullScreenExclusiveEXT-                            showTableFullScreenExclusiveEXT-                            conNameFullScreenExclusiveEXT-                            (\(FullScreenExclusiveEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixFullScreenExclusiveEXT+      showTableFullScreenExclusiveEXT+      conNameFullScreenExclusiveEXT+      (\(FullScreenExclusiveEXT x) -> x)+      (showsPrec 11)  instance Read FullScreenExclusiveEXT where-  readPrec = enumReadPrec enumPrefixFullScreenExclusiveEXT-                          showTableFullScreenExclusiveEXT-                          conNameFullScreenExclusiveEXT-                          FullScreenExclusiveEXT-+  readPrec =+    enumReadPrec+      enumPrefixFullScreenExclusiveEXT+      showTableFullScreenExclusiveEXT+      conNameFullScreenExclusiveEXT+      FullScreenExclusiveEXT  type EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION = 4 
src/Vulkan/Extensions/VK_EXT_graphics_pipeline_library.hs view
@@ -338,7 +338,8 @@     graphicsPipelineLibraryFastLinking <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     graphicsPipelineLibraryIndependentInterpolationDecoration <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT-             (bool32ToBool graphicsPipelineLibraryFastLinking) (bool32ToBool graphicsPipelineLibraryIndependentInterpolationDecoration)+             (bool32ToBool graphicsPipelineLibraryFastLinking)+             (bool32ToBool graphicsPipelineLibraryIndependentInterpolationDecoration)  instance Storable PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT where   sizeOf ~_ = 24@@ -361,7 +362,9 @@ -- @pNext@ chain of 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo', it -- specifies the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets subsets of the graphics pipeline>--- being created.+-- being created, excluding any subsets from linked pipeline libraries. If+-- the pipeline is created with pipeline libraries, state from those+-- libraries is aggregated with said subset. -- -- If this structure is omitted, and either -- 'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@flags@ includes@@ -445,15 +448,18 @@ -- | 'GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT' specifies -- that a pipeline will include -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-vertex-input vertex input interface state>.-pattern GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT    = GraphicsPipelineLibraryFlagBitsEXT 0x00000001+pattern GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000001+ -- | 'GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT' specifies -- that a pipeline will include -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-pre-rasterization pre-rasterization shader state>. pattern GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000002+ -- | 'GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT' specifies that a -- pipeline will include -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-shader fragment shader state>.-pattern GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT           = GraphicsPipelineLibraryFlagBitsEXT 0x00000004+pattern GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = GraphicsPipelineLibraryFlagBitsEXT 0x00000004+ -- | 'GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT' specifies -- that a pipeline will include -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-graphics-subsets-fragment-output fragment output interface state>.@@ -467,25 +473,40 @@  showTableGraphicsPipelineLibraryFlagBitsEXT :: [(GraphicsPipelineLibraryFlagBitsEXT, String)] showTableGraphicsPipelineLibraryFlagBitsEXT =-  [ (GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT   , "VERTEX_INPUT_INTERFACE_BIT_EXT")-  , (GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT, "PRE_RASTERIZATION_SHADERS_BIT_EXT")-  , (GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT          , "FRAGMENT_SHADER_BIT_EXT")-  , (GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT, "FRAGMENT_OUTPUT_INTERFACE_BIT_EXT")+  [+    ( GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT+    , "VERTEX_INPUT_INTERFACE_BIT_EXT"+    )+  ,+    ( GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT+    , "PRE_RASTERIZATION_SHADERS_BIT_EXT"+    )+  ,+    ( GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT+    , "FRAGMENT_SHADER_BIT_EXT"+    )+  ,+    ( GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT+    , "FRAGMENT_OUTPUT_INTERFACE_BIT_EXT"+    )   ]  instance Show GraphicsPipelineLibraryFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixGraphicsPipelineLibraryFlagBitsEXT-                            showTableGraphicsPipelineLibraryFlagBitsEXT-                            conNameGraphicsPipelineLibraryFlagBitsEXT-                            (\(GraphicsPipelineLibraryFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixGraphicsPipelineLibraryFlagBitsEXT+      showTableGraphicsPipelineLibraryFlagBitsEXT+      conNameGraphicsPipelineLibraryFlagBitsEXT+      (\(GraphicsPipelineLibraryFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read GraphicsPipelineLibraryFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixGraphicsPipelineLibraryFlagBitsEXT-                          showTableGraphicsPipelineLibraryFlagBitsEXT-                          conNameGraphicsPipelineLibraryFlagBitsEXT-                          GraphicsPipelineLibraryFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixGraphicsPipelineLibraryFlagBitsEXT+      showTableGraphicsPipelineLibraryFlagBitsEXT+      conNameGraphicsPipelineLibraryFlagBitsEXT+      GraphicsPipelineLibraryFlagBitsEXT  type EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -241,7 +241,11 @@   lift $ Data.Vector.imapM_ (\i e -> poke (pPSwapchains `plusPtr` (8 * (i)) :: Ptr SwapchainKHR) (e)) (swapchains)   pPMetadata <- ContT $ allocaBytes @HdrMetadataEXT ((Data.Vector.length (metadata)) * 64)   lift $ Data.Vector.imapM_ (\i e -> poke (pPMetadata `plusPtr` (64 * (i)) :: Ptr HdrMetadataEXT) (e)) (metadata)-  lift $ traceAroundEvent "vkSetHdrMetadataEXT" (vkSetHdrMetadataEXT' (deviceHandle (device)) ((fromIntegral pSwapchainsLength :: Word32)) (pPSwapchains) (pPMetadata))+  lift $ traceAroundEvent "vkSetHdrMetadataEXT" (vkSetHdrMetadataEXT'+                                                   (deviceHandle (device))+                                                   ((fromIntegral pSwapchainsLength :: Word32))+                                                   (pPSwapchains)+                                                   (pPMetadata))   pure $ ()  @@ -383,7 +387,14 @@     maxContentLightLevel <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))     maxFrameAverageLightLevel <- peek @CFloat ((p `plusPtr` 60 :: Ptr CFloat))     pure $ HdrMetadataEXT-             displayPrimaryRed displayPrimaryGreen displayPrimaryBlue whitePoint (coerce @CFloat @Float maxLuminance) (coerce @CFloat @Float minLuminance) (coerce @CFloat @Float maxContentLightLevel) (coerce @CFloat @Float maxFrameAverageLightLevel)+             displayPrimaryRed+             displayPrimaryGreen+             displayPrimaryBlue+             whitePoint+             (coerce @CFloat @Float maxLuminance)+             (coerce @CFloat @Float minLuminance)+             (coerce @CFloat @Float maxContentLightLevel)+             (coerce @CFloat @Float maxFrameAverageLightLevel)  instance Storable HdrMetadataEXT where   sizeOf ~_ = 64
src/Vulkan/Extensions/VK_EXT_headless_surface.hs view
@@ -229,7 +229,9 @@                             -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                             ("allocator" ::: Maybe AllocationCallbacks)                          -> io (SurfaceKHR)-createHeadlessSurfaceEXT instance' createInfo allocator = liftIO . evalContT $ do+createHeadlessSurfaceEXT instance'+                           createInfo+                           allocator = liftIO . evalContT $ do   let vkCreateHeadlessSurfaceEXTPtr = pVkCreateHeadlessSurfaceEXT (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateHeadlessSurfaceEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateHeadlessSurfaceEXT is null" Nothing Nothing@@ -239,7 +241,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateHeadlessSurfaceEXT" (vkCreateHeadlessSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateHeadlessSurfaceEXT" (vkCreateHeadlessSurfaceEXT'+                                                               (instanceHandle (instance'))+                                                               pCreateInfo+                                                               pAllocator+                                                               (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -313,8 +319,6 @@ newtype HeadlessSurfaceCreateFlagsEXT = HeadlessSurfaceCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameHeadlessSurfaceCreateFlagsEXT :: String conNameHeadlessSurfaceCreateFlagsEXT = "HeadlessSurfaceCreateFlagsEXT" @@ -325,18 +329,21 @@ showTableHeadlessSurfaceCreateFlagsEXT = []  instance Show HeadlessSurfaceCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixHeadlessSurfaceCreateFlagsEXT-                            showTableHeadlessSurfaceCreateFlagsEXT-                            conNameHeadlessSurfaceCreateFlagsEXT-                            (\(HeadlessSurfaceCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixHeadlessSurfaceCreateFlagsEXT+      showTableHeadlessSurfaceCreateFlagsEXT+      conNameHeadlessSurfaceCreateFlagsEXT+      (\(HeadlessSurfaceCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read HeadlessSurfaceCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixHeadlessSurfaceCreateFlagsEXT-                          showTableHeadlessSurfaceCreateFlagsEXT-                          conNameHeadlessSurfaceCreateFlagsEXT-                          HeadlessSurfaceCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixHeadlessSurfaceCreateFlagsEXT+      showTableHeadlessSurfaceCreateFlagsEXT+      conNameHeadlessSurfaceCreateFlagsEXT+      HeadlessSurfaceCreateFlagsEXT  type EXT_HEADLESS_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_image_compression_control.hs view
@@ -385,7 +385,10 @@ -- 'Vulkan.Core10.Handles.Device', 'Vulkan.Core10.Handles.Image', -- 'ImageSubresource2EXT', 'SubresourceLayout2EXT' getImageSubresourceLayout2EXT :: forall a io-                               . (Extendss SubresourceLayout2EXT a, PokeChain a, PeekChain a, MonadIO io)+                               . ( Extendss SubresourceLayout2EXT a+                                 , PokeChain a+                                 , PeekChain a+                                 , MonadIO io )                               => -- | @device@ is the logical device that owns the image.                                  Device                               -> -- | @image@ is the image whose layout is being queried.@@ -401,7 +404,11 @@   let vkGetImageSubresourceLayout2EXT' = mkVkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXTPtr   pSubresource <- ContT $ withCStruct (subresource)   pPLayout <- ContT (withZeroCStruct @(SubresourceLayout2EXT _))-  lift $ traceAroundEvent "vkGetImageSubresourceLayout2EXT" (vkGetImageSubresourceLayout2EXT' (deviceHandle (device)) (image) pSubresource (forgetExtensions (pPLayout)))+  lift $ traceAroundEvent "vkGetImageSubresourceLayout2EXT" (vkGetImageSubresourceLayout2EXT'+                                                               (deviceHandle (device))+                                                               (image)+                                                               pSubresource+                                                               (forgetExtensions (pPLayout)))   pLayout <- lift $ peekCStruct @(SubresourceLayout2EXT _) pPLayout   pure $ (pLayout) @@ -735,7 +742,8 @@     | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f     | otherwise = Nothing -instance (Extendss SubresourceLayout2EXT es, PokeChain es) => ToCStruct (SubresourceLayout2EXT es) where+instance ( Extendss SubresourceLayout2EXT es+         , PokeChain es ) => ToCStruct (SubresourceLayout2EXT es) where   withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SubresourceLayout2EXT{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT)@@ -752,7 +760,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr SubresourceLayout)) (zero)     lift $ f -instance (Extendss SubresourceLayout2EXT es, PeekChain es) => FromCStruct (SubresourceLayout2EXT es) where+instance ( Extendss SubresourceLayout2EXT es+         , PeekChain es ) => FromCStruct (SubresourceLayout2EXT es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -795,19 +804,22 @@ -- | 'IMAGE_COMPRESSION_DEFAULT_EXT' specifies that the default image -- compression setting is used. Implementations /must/ not apply fixed-rate -- compression.-pattern IMAGE_COMPRESSION_DEFAULT_EXT             = ImageCompressionFlagBitsEXT 0x00000000+pattern IMAGE_COMPRESSION_DEFAULT_EXT = ImageCompressionFlagBitsEXT 0x00000000+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT' specifies that the -- implementation /may/ choose any supported fixed-rate compression setting -- in an implementation-defined manner based on the properties of the -- image.-pattern IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT  = ImageCompressionFlagBitsEXT 0x00000001+pattern IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = ImageCompressionFlagBitsEXT 0x00000001+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT' specifies that fixed-rate -- compression /may/ be used and that the allowed compression rates are -- specified by 'ImageCompressionControlEXT'::@pFixedRateFlags@. pattern IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = ImageCompressionFlagBitsEXT 0x00000002+ -- | 'IMAGE_COMPRESSION_DISABLED_EXT' specifies that all lossless and -- fixed-rate compression /should/ be disabled.-pattern IMAGE_COMPRESSION_DISABLED_EXT            = ImageCompressionFlagBitsEXT 0x00000004+pattern IMAGE_COMPRESSION_DISABLED_EXT = ImageCompressionFlagBitsEXT 0x00000004  conNameImageCompressionFlagBitsEXT :: String conNameImageCompressionFlagBitsEXT = "ImageCompressionFlagBitsEXT"@@ -817,25 +829,40 @@  showTableImageCompressionFlagBitsEXT :: [(ImageCompressionFlagBitsEXT, String)] showTableImageCompressionFlagBitsEXT =-  [ (IMAGE_COMPRESSION_DEFAULT_EXT            , "DEFAULT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT , "FIXED_RATE_DEFAULT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT, "FIXED_RATE_EXPLICIT_EXT")-  , (IMAGE_COMPRESSION_DISABLED_EXT           , "DISABLED_EXT")+  [+    ( IMAGE_COMPRESSION_DEFAULT_EXT+    , "DEFAULT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT+    , "FIXED_RATE_DEFAULT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT+    , "FIXED_RATE_EXPLICIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_DISABLED_EXT+    , "DISABLED_EXT"+    )   ]  instance Show ImageCompressionFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixImageCompressionFlagBitsEXT-                            showTableImageCompressionFlagBitsEXT-                            conNameImageCompressionFlagBitsEXT-                            (\(ImageCompressionFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageCompressionFlagBitsEXT+      showTableImageCompressionFlagBitsEXT+      conNameImageCompressionFlagBitsEXT+      (\(ImageCompressionFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageCompressionFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixImageCompressionFlagBitsEXT-                          showTableImageCompressionFlagBitsEXT-                          conNameImageCompressionFlagBitsEXT-                          ImageCompressionFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixImageCompressionFlagBitsEXT+      showTableImageCompressionFlagBitsEXT+      conNameImageCompressionFlagBitsEXT+      ImageCompressionFlagBitsEXT  type ImageCompressionFixedRateFlagsEXT = ImageCompressionFixedRateFlagBitsEXT @@ -879,66 +906,90 @@  -- | 'IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT' specifies that fixed-rate -- compression /must/ not be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT      = ImageCompressionFixedRateFlagBitsEXT 0x00000000+pattern IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000000+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [1,2) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000001+pattern IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000001+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [2,3) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000002+pattern IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000002+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [3,4) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000004+pattern IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000004+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [4,5) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000008+pattern IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000008+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [5,6) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000010+pattern IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000010+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [6,7) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000020+pattern IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000020+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [7,8) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000040+pattern IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000040+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [8,9) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000080+pattern IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000080+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [9,10) bits per component /may/ be used.-pattern IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT  = ImageCompressionFixedRateFlagBitsEXT 0x00000100+pattern IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000100+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [10,11) bits per component /may/ be used. pattern IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000200+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of [11,12) bits per component /may/ be used. pattern IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000400+ -- | 'IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT' specifies that fixed-rate -- compression with a bitrate of at least 12 bits per component /may/ be -- used. pattern IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00000800+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00001000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00002000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00004000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00008000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00010000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00020000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00040000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00080000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00100000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00200000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00400000+ -- No documentation found for Nested "VkImageCompressionFixedRateFlagBitsEXT" "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT" pattern IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = ImageCompressionFixedRateFlagBitsEXT 0x00800000 @@ -950,46 +1001,124 @@  showTableImageCompressionFixedRateFlagBitsEXT :: [(ImageCompressionFixedRateFlagBitsEXT, String)] showTableImageCompressionFixedRateFlagBitsEXT =-  [ (IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT     , "NONE_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT , "1BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT , "2BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT , "3BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT , "4BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT , "5BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT , "6BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT , "7BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT , "8BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT , "9BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT, "10BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT, "11BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT, "12BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT, "13BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT, "14BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT, "15BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT, "16BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT, "17BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT, "18BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT, "19BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT, "20BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT, "21BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT, "22BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT, "23BPC_BIT_EXT")-  , (IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT, "24BPC_BIT_EXT")+  [+    ( IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT+    , "NONE_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT+    , "1BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT+    , "2BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT+    , "3BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT+    , "4BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT+    , "5BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT+    , "6BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT+    , "7BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT+    , "8BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT+    , "9BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT+    , "10BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT+    , "11BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT+    , "12BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT+    , "13BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT+    , "14BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT+    , "15BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT+    , "16BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT+    , "17BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT+    , "18BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT+    , "19BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT+    , "20BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT+    , "21BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT+    , "22BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT+    , "23BPC_BIT_EXT"+    )+  ,+    ( IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT+    , "24BPC_BIT_EXT"+    )   ]  instance Show ImageCompressionFixedRateFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixImageCompressionFixedRateFlagBitsEXT-                            showTableImageCompressionFixedRateFlagBitsEXT-                            conNameImageCompressionFixedRateFlagBitsEXT-                            (\(ImageCompressionFixedRateFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageCompressionFixedRateFlagBitsEXT+      showTableImageCompressionFixedRateFlagBitsEXT+      conNameImageCompressionFixedRateFlagBitsEXT+      (\(ImageCompressionFixedRateFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageCompressionFixedRateFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixImageCompressionFixedRateFlagBitsEXT-                          showTableImageCompressionFixedRateFlagBitsEXT-                          conNameImageCompressionFixedRateFlagBitsEXT-                          ImageCompressionFixedRateFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixImageCompressionFixedRateFlagBitsEXT+      showTableImageCompressionFixedRateFlagBitsEXT+      conNameImageCompressionFixedRateFlagBitsEXT+      ImageCompressionFixedRateFlagBitsEXT  type EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_image_compression_control.hs-boot view
@@ -197,8 +197,10 @@ type role SubresourceLayout2EXT nominal data SubresourceLayout2EXT (es :: [Type]) -instance (Extendss SubresourceLayout2EXT es, PokeChain es) => ToCStruct (SubresourceLayout2EXT es)+instance ( Extendss SubresourceLayout2EXT es+         , PokeChain es ) => ToCStruct (SubresourceLayout2EXT es) instance Show (Chain es) => Show (SubresourceLayout2EXT es) -instance (Extendss SubresourceLayout2EXT es, PeekChain es) => FromCStruct (SubresourceLayout2EXT es)+instance ( Extendss SubresourceLayout2EXT es+         , PeekChain es ) => FromCStruct (SubresourceLayout2EXT es) 
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs view
@@ -269,8 +269,8 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- framebuffer with+-- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/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. --@@ -377,8 +377,8 @@ -- __DISCUSSION__: Prior art, such as -- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^, -- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,--- and @struct--- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- and+-- @struct gbm_import_fd_modifier_data@<https://registry.khronos.org/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@@ -403,8 +403,8 @@ -- __DISCUSSION__: Prior art, such as -- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^, -- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,--- and @struct--- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- and+-- @struct gbm_import_fd_modifier_data@<https://registry.khronos.org/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.@@ -521,8 +521,7 @@ --     <https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export> -- -- 4.  #VK_EXT_image_drm_format_modifier-fn4#---     <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct---     drm_mode_fb_cmd2>+--     <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct drm_mode_fb_cmd2> -- -- 5.  #VK_EXT_image_drm_format_modifier-fn5# --     <https://cgit.freedesktop.org/mesa/mesa/tree/src/gbm/main/gbm.h?id=refs/tags/mesa-18.0.0-rc1 gbm.h>@@ -678,7 +677,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageDrmFormatModifierPropertiesEXT is null" Nothing Nothing   let vkGetImageDrmFormatModifierPropertiesEXT' = mkVkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXTPtr   pPProperties <- ContT (withZeroCStruct @ImageDrmFormatModifierPropertiesEXT)-  r <- lift $ traceAroundEvent "vkGetImageDrmFormatModifierPropertiesEXT" (vkGetImageDrmFormatModifierPropertiesEXT' (deviceHandle (device)) (image) (pPProperties))+  r <- lift $ traceAroundEvent "vkGetImageDrmFormatModifierPropertiesEXT" (vkGetImageDrmFormatModifierPropertiesEXT'+                                                                             (deviceHandle (device))+                                                                             (image)+                                                                             (pPProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pProperties <- lift $ peekCStruct @ImageDrmFormatModifierPropertiesEXT pPProperties   pure $ (pProperties)@@ -883,7 +885,9 @@     drmFormatModifierPlaneCount <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))     drmFormatModifierTilingFeatures <- peek @FormatFeatureFlags ((p `plusPtr` 12 :: Ptr FormatFeatureFlags))     pure $ DrmFormatModifierPropertiesEXT-             drmFormatModifier drmFormatModifierPlaneCount drmFormatModifierTilingFeatures+             drmFormatModifier+             drmFormatModifierPlaneCount+             drmFormatModifierTilingFeatures  instance Storable DrmFormatModifierPropertiesEXT where   sizeOf ~_ = 16@@ -1382,7 +1386,9 @@     drmFormatModifierPlaneCount <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))     drmFormatModifierTilingFeatures <- peek @FormatFeatureFlags2 ((p `plusPtr` 16 :: Ptr FormatFeatureFlags2))     pure $ DrmFormatModifierProperties2EXT-             drmFormatModifier drmFormatModifierPlaneCount drmFormatModifierTilingFeatures+             drmFormatModifier+             drmFormatModifierPlaneCount+             drmFormatModifierTilingFeatures  instance Storable DrmFormatModifierProperties2EXT where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_EXT_image_drm_format_modifier.hs-boot view
@@ -269,8 +269,8 @@ -- 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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,+-- framebuffer with+-- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/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. --@@ -377,8 +377,8 @@ -- __DISCUSSION__: Prior art, such as -- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^, -- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,--- and @struct--- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- and+-- @struct gbm_import_fd_modifier_data@<https://registry.khronos.org/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@@ -403,8 +403,8 @@ -- __DISCUSSION__: Prior art, such as -- @EGL_EXT_image_dma_buf_import_modifiers@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn2 2>^, -- @struct drm_mode_fb_cmd2@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn4 4>^,--- and @struct--- gbm_import_fd_modifier_data@<https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_image_drm_format_modifier-fn5 5>^,+-- and+-- @struct gbm_import_fd_modifier_data@<https://registry.khronos.org/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.@@ -521,8 +521,7 @@ --     <https://registry.khronos.org/EGL/extensions/MESA/EGL_MESA_image_dma_buf_export.txt EGL_MESA_image_dma_buf_export> -- -- 4.  #VK_EXT_image_drm_format_modifier-fn4#---     <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct---     drm_mode_fb_cmd2>+--     <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/drm/drm_mode.h?id=refs/tags/v4.10#n392 struct drm_mode_fb_cmd2> -- -- 5.  #VK_EXT_image_drm_format_modifier-fn5# --     <https://cgit.freedesktop.org/mesa/mesa/tree/src/gbm/main/gbm.h?id=refs/tags/mesa-18.0.0-rc1 gbm.h>
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs view
@@ -273,12 +273,17 @@                         -- rasterization.                         ("lineStipplePattern" ::: Word16)                      -> io ()-cmdSetLineStippleEXT commandBuffer lineStippleFactor lineStipplePattern = liftIO $ do+cmdSetLineStippleEXT commandBuffer+                       lineStippleFactor+                       lineStipplePattern = liftIO $ do   let vkCmdSetLineStippleEXTPtr = pVkCmdSetLineStippleEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdSetLineStippleEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetLineStippleEXT is null" Nothing Nothing   let vkCmdSetLineStippleEXT' = mkVkCmdSetLineStippleEXT vkCmdSetLineStippleEXTPtr-  traceAroundEvent "vkCmdSetLineStippleEXT" (vkCmdSetLineStippleEXT' (commandBufferHandle (commandBuffer)) (lineStippleFactor) (lineStipplePattern))+  traceAroundEvent "vkCmdSetLineStippleEXT" (vkCmdSetLineStippleEXT'+                                               (commandBufferHandle (commandBuffer))+                                               (lineStippleFactor)+                                               (lineStipplePattern))   pure $ ()  @@ -377,7 +382,12 @@     stippledBresenhamLines <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))     stippledSmoothLines <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))     pure $ PhysicalDeviceLineRasterizationFeaturesEXT-             (bool32ToBool rectangularLines) (bool32ToBool bresenhamLines) (bool32ToBool smoothLines) (bool32ToBool stippledRectangularLines) (bool32ToBool stippledBresenhamLines) (bool32ToBool stippledSmoothLines)+             (bool32ToBool rectangularLines)+             (bool32ToBool bresenhamLines)+             (bool32ToBool smoothLines)+             (bool32ToBool stippledRectangularLines)+             (bool32ToBool stippledBresenhamLines)+             (bool32ToBool stippledSmoothLines)  instance Storable PhysicalDeviceLineRasterizationFeaturesEXT where   sizeOf ~_ = 40@@ -579,7 +589,10 @@     lineStippleFactor <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     lineStipplePattern <- peek @Word16 ((p `plusPtr` 28 :: Ptr Word16))     pure $ PipelineRasterizationLineStateCreateInfoEXT-             lineRasterizationMode (bool32ToBool stippledLineEnable) lineStippleFactor lineStipplePattern+             lineRasterizationMode+             (bool32ToBool stippledLineEnable)+             lineStippleFactor+             lineStipplePattern  instance Storable PipelineRasterizationLineStateCreateInfoEXT where   sizeOf ~_ = 32@@ -600,7 +613,8 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_line_rasterization VK_EXT_line_rasterization>,--- 'PipelineRasterizationLineStateCreateInfoEXT'+-- 'PipelineRasterizationLineStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetLineRasterizationModeEXT' newtype LineRasterizationModeEXT = LineRasterizationModeEXT Int32   deriving newtype (Eq, Ord, Storable, Zero) @@ -610,25 +624,32 @@ -- is 'Vulkan.Core10.FundamentalTypes.TRUE', otherwise lines are drawn as -- non-@strictLines@ parallelograms. Both of these modes are defined in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-basic Basic Line Segment Rasterization>.-pattern LINE_RASTERIZATION_MODE_DEFAULT_EXT            = LineRasterizationModeEXT 0+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-pattern LINE_RASTERIZATION_MODE_RECTANGULAR_EXT        = LineRasterizationModeEXT 1+pattern LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = LineRasterizationModeEXT 1+ -- | 'LINE_RASTERIZATION_MODE_BRESENHAM_EXT' specifies lines drawn by -- determining which pixel diamonds the line intersects and exits, as -- defined in -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-lines-bresenham Bresenham Line Segment Rasterization>.-pattern LINE_RASTERIZATION_MODE_BRESENHAM_EXT          = LineRasterizationModeEXT 2+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://registry.khronos.org/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,-             LINE_RASTERIZATION_MODE_BRESENHAM_EXT,-             LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT :: LineRasterizationModeEXT #-} +{-# COMPLETE+  LINE_RASTERIZATION_MODE_DEFAULT_EXT+  , LINE_RASTERIZATION_MODE_RECTANGULAR_EXT+  , LINE_RASTERIZATION_MODE_BRESENHAM_EXT+  , LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT ::+    LineRasterizationModeEXT+  #-}+ conNameLineRasterizationModeEXT :: String conNameLineRasterizationModeEXT = "LineRasterizationModeEXT" @@ -637,25 +658,40 @@  showTableLineRasterizationModeEXT :: [(LineRasterizationModeEXT, String)] showTableLineRasterizationModeEXT =-  [ (LINE_RASTERIZATION_MODE_DEFAULT_EXT           , "DEFAULT_EXT")-  , (LINE_RASTERIZATION_MODE_RECTANGULAR_EXT       , "RECTANGULAR_EXT")-  , (LINE_RASTERIZATION_MODE_BRESENHAM_EXT         , "BRESENHAM_EXT")-  , (LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, "RECTANGULAR_SMOOTH_EXT")+  [+    ( LINE_RASTERIZATION_MODE_DEFAULT_EXT+    , "DEFAULT_EXT"+    )+  ,+    ( LINE_RASTERIZATION_MODE_RECTANGULAR_EXT+    , "RECTANGULAR_EXT"+    )+  ,+    ( LINE_RASTERIZATION_MODE_BRESENHAM_EXT+    , "BRESENHAM_EXT"+    )+  ,+    ( LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT+    , "RECTANGULAR_SMOOTH_EXT"+    )   ]  instance Show LineRasterizationModeEXT where-  showsPrec = enumShowsPrec enumPrefixLineRasterizationModeEXT-                            showTableLineRasterizationModeEXT-                            conNameLineRasterizationModeEXT-                            (\(LineRasterizationModeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixLineRasterizationModeEXT+      showTableLineRasterizationModeEXT+      conNameLineRasterizationModeEXT+      (\(LineRasterizationModeEXT x) -> x)+      (showsPrec 11)  instance Read LineRasterizationModeEXT where-  readPrec = enumReadPrec enumPrefixLineRasterizationModeEXT-                          showTableLineRasterizationModeEXT-                          conNameLineRasterizationModeEXT-                          LineRasterizationModeEXT-+  readPrec =+    enumReadPrec+      enumPrefixLineRasterizationModeEXT+      showTableLineRasterizationModeEXT+      conNameLineRasterizationModeEXT+      LineRasterizationModeEXT  type EXT_LINE_RASTERIZATION_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_line_rasterization.hs-boot view
@@ -135,6 +135,7 @@ module Vulkan.Extensions.VK_EXT_line_rasterization  ( PhysicalDeviceLineRasterizationFeaturesEXT                                                     , PhysicalDeviceLineRasterizationPropertiesEXT                                                     , PipelineRasterizationLineStateCreateInfoEXT+                                                    , LineRasterizationModeEXT                                                     ) where  import Vulkan.CStruct (FromCStruct)@@ -163,4 +164,7 @@ instance Show PipelineRasterizationLineStateCreateInfoEXT  instance FromCStruct PipelineRasterizationLineStateCreateInfoEXT+++data LineRasterizationModeEXT 
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -708,3252 +708,4424 @@ --     by the current subpass /must/ be bound to the pipeline via a --     descriptor set ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawMeshTasksEXT-None-06538# If any recorded command in---     the current subpass will write to an image subresource as an---     attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawMeshTasksEXT-None-06539# If any recorded command in---     the current subpass will read from an image subresource used as an---     attachment in any way other than as an attachment, this command---     /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawMeshTasksEXT-None-06886# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawMeshTasksEXT-None-06887# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-06666# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksEXT-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-attachmentCount-06667# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawMeshTasksEXT-attachmentCount-06815# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #VUID-vkCmdDrawMeshTasksEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawMeshTasksEXT-stage-07073# If the currently bound---     pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     contains a shader using the @TaskEXT@ @Execution@ @Model@,---     @groupCountX@ /must/ be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     contains a shader using the @TaskEXT@ @Execution@ @Model@,---     @groupCountY@ /must/ be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     contains a shader using the @TaskEXT@ @Execution@ @Model@,---     @groupCountZ@ /must/ be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     contains a shader using the @TaskEXT@ @Execution@ @Model@, The---     product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be---     less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,---     @groupCountX@ /must/ be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0]------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,---     @groupCountY@ /must/ be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1]------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,---     @groupCountZ@ /must/ be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2]------ -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329# If the current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,---     The product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/---     be less than or equal to---     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupTotalCount@------ -   #VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087# The current pipeline---     bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     /must/ contain a shader stage using the @MeshEXT@ @Execution@---     @Model@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawMeshTasksEXT-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdDrawMeshTasksEXT-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDrawMeshTasksEXT :: 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 ()-cmdDrawMeshTasksEXT commandBuffer groupCountX groupCountY groupCountZ = liftIO $ do-  let vkCmdDrawMeshTasksEXTPtr = pVkCmdDrawMeshTasksEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawMeshTasksEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksEXT is null" Nothing Nothing-  let vkCmdDrawMeshTasksEXT' = mkVkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXTPtr-  traceAroundEvent "vkCmdDrawMeshTasksEXT" (vkCmdDrawMeshTasksEXT' (commandBufferHandle (commandBuffer)) (groupCountX) (groupCountY) (groupCountZ))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawMeshTasksIndirectEXT-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a--- command buffer------ = Description------ 'cmdDrawMeshTasksIndirectEXT' behaves similarly to 'cmdDrawMeshTasksEXT'--- 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 'DrawMeshTasksIndirectCommandEXT' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02699# Descriptors in each---     bound descriptor set, specified via---     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectEXT-None-02700# A valid pipeline---     /must/ be bound to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935# If any---     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command accesses a uniform buffer,---     and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936# If any---     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command accesses a storage buffer,---     and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971#---     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972#---     If @OpImageWeightedSampleQCOM@ uses a---     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974#---     If @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975#---     If @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976#---     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977#---     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978#---     If any command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288# Any shader---     invocation executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02686# Every input---     attachment used by the current subpass /must/ be bound to the---     pipeline via a descriptor set------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538# If any recorded---     command in the current subpass will write to an image subresource as---     an attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539# If any recorded---     command in the current subpass will read from an image subresource---     used as an attachment in any way other than as an attachment, this---     command /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886# If the current---     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887# If the current---     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-06666# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectEXT-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-06667# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-06815# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073# If the currently---     bound pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708# If @buffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709# @buffer@ /must/---     have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710# @offset@ /must/ be---     a multiple of @4@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711#---     @commandBuffer@ /must/ not be a protected command buffer------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>---     feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719# @drawCount@---     /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088# If @drawCount@---     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/---     be greater than or equal to---     @sizeof@('DrawMeshTasksIndirectCommandEXT')------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089# If @drawCount@---     is equal to @1@, (@offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090# If @drawCount@---     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091# The current---     pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     /must/ contain a shader stage using the @MeshEXT@ @Execution@---     @Model@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter# @buffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass# This command /must/---     only be called inside of a render pass instance------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding# This command /must/---     only be called outside of a video coding scope------ -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawMeshTasksIndirectEXT :: 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 ()-cmdDrawMeshTasksIndirectEXT commandBuffer buffer offset drawCount stride = liftIO $ do-  let vkCmdDrawMeshTasksIndirectEXTPtr = pVkCmdDrawMeshTasksIndirectEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawMeshTasksIndirectEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectEXT is null" Nothing Nothing-  let vkCmdDrawMeshTasksIndirectEXT' = mkVkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXTPtr-  traceAroundEvent "vkCmdDrawMeshTasksIndirectEXT" (vkCmdDrawMeshTasksIndirectEXT' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawMeshTasksIndirectCountEXT-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw--- with the draw count sourced from a buffer------ = Description------ 'cmdDrawMeshTasksIndirectCountEXT' behaves similarly to--- 'cmdDrawMeshTasksIndirectEXT' except that the draw count is read by the--- device from a buffer during execution. The command will read an unsigned--- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use--- this as the draw count.------ == Valid Usage------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695#---     Any 'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02699# Descriptors in---     each bound descriptor set, specified via---     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectCountEXT-None-02700# A valid---     pipeline /must/ be bound to the pipeline bind point used by this---     command------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935# If---     any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to---     the pipeline bind point used by this command accesses a uniform---     buffer, and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936# If---     any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to---     the pipeline bind point used by this command accesses a storage---     buffer, and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971#---     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972#---     If @OpImageWeightedSampleQCOM@ uses a---     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973#---     If @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974#---     If @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975#---     If @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976#---     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977#---     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978#---     If any command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288# Any shader---     invocation executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02686# Every input---     attachment used by the current subpass /must/ be bound to the---     pipeline via a descriptor set------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537# Memory backing---     image subresources used as attachments in the current render pass---     /must/ not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538# If any recorded---     command in the current subpass will write to an image subresource as---     an attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539# If any recorded---     command in the current subpass will read from an image subresource---     used as an attachment in any way other than as an attachment, this---     command /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886# If the current---     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887# If the current---     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-06666# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountEXT-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-06667# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-06815# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073# If the---     currently bound pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708# If @buffer@---     is non-sparse then it /must/ be bound completely and contiguously to---     a single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709# @buffer@---     /must/ have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710# @offset@---     /must/ be a multiple of @4@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711#---     @commandBuffer@ /must/ not be a protected command buffer------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714# If---     @countBuffer@ is non-sparse then it /must/ be bound completely and---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715#---     @countBuffer@ /must/ have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716#---     @countBufferOffset@ /must/ be a multiple of @4@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717# The---     count stored in @countBuffer@ /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129#---     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or---     equal to the size of @countBuffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>---     is not enabled this function /must/ not be used------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096# @stride@---     /must/ be a multiple of @4@ and /must/ be greater than or equal to---     @sizeof@('DrawMeshTasksIndirectCommandEXT')------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097# If---     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×---     (@maxDrawCount@ - 1) + @offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098# If the---     count stored in @countBuffer@ is equal to @1@, (@offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099# If the---     count stored in @countBuffer@ is greater than @1@, (@stride@ ×---     (@drawCount@ - 1) + @offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100# The current---     pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     /must/ contain a shader stage using the @MeshEXT@ @Execution@---     @Model@------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter# @buffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter#---     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'---     handle------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass# This command---     /must/ only be called inside of a render pass instance------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding# This command---     /must/ only be called outside of a video coding scope------ -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent# Each of---     @buffer@, @commandBuffer@, and @countBuffer@ /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawMeshTasksIndirectCountEXT :: 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)-                                 -> -- | @countBuffer@ is the buffer containing the draw count.-                                    ("countBuffer" ::: Buffer)-                                 -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw-                                    -- count begins.-                                    ("countBufferOffset" ::: DeviceSize)-                                 -> -- | @maxDrawCount@ specifies the maximum number of draws that will be-                                    -- executed. The actual number of executed draw calls is the minimum of the-                                    -- count specified in @countBuffer@ and @maxDrawCount@.-                                    ("maxDrawCount" ::: Word32)-                                 -> -- | @stride@ is the byte stride between successive sets of draw parameters.-                                    ("stride" ::: Word32)-                                 -> io ()-cmdDrawMeshTasksIndirectCountEXT commandBuffer buffer offset countBuffer countBufferOffset maxDrawCount stride = liftIO $ do-  let vkCmdDrawMeshTasksIndirectCountEXTPtr = pVkCmdDrawMeshTasksIndirectCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawMeshTasksIndirectCountEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountEXT is null" Nothing Nothing-  let vkCmdDrawMeshTasksIndirectCountEXT' = mkVkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXTPtr-  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountEXT" (vkCmdDrawMeshTasksIndirectCountEXT' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride))-  pure $ ()----- | VkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh--- shading features that can be supported by an implementation------ = Description------ If the 'PhysicalDeviceMeshShaderFeaturesEXT' 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. 'PhysicalDeviceMeshShaderFeaturesEXT' /can/ also be used in--- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to--- selectively enable these features.------ The corresponding features of the--- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV'--- structure /must/ match those in 'PhysicalDeviceMeshShaderFeaturesEXT'.------ == Valid Usage------ -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032#---     If @multiviewMeshShader@ is enabled then---     'Vulkan.Extensions.VK_KHR_multiview.PhysicalDeviceMultiviewFeaturesKHR'::@multiview@---     /must/ also be enabled------ -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033#---     If @primitiveFragmentShadingRateMeshShader@ is enabled then---     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR'::@primitiveFragmentShadingRate@---     /must/ also be enabled------ == Valid Usage (Implicit)------ -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType# @sType@---     /must/ be---     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMeshShaderFeaturesEXT = PhysicalDeviceMeshShaderFeaturesEXT-  { -- | #features-taskShader# @taskShader@ specifies whether task shaders are-    -- supported. If this feature is not enabled, the-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' and-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'-    -- enum values /must/ not be used.-    taskShader :: Bool-  , -- | #features-meshShader# @meshShader@ specifies whether mesh shaders are-    -- supported. If this feature is not enabled, the-    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' and-    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'-    -- enum values /must/ not be used.-    meshShader :: Bool-  , -- | #features-multiview-mesh# @multiviewMeshShader@ specifies whether the-    -- implementation supports-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>-    -- rendering within a render pass, with mesh shaders. If this feature is-    -- not enabled, then a pipeline compiled against a subpass with a non-zero-    -- view mask /must/ not include a mesh shader.-    multiviewMeshShader :: Bool-  , -- | #features-primitiveFragmentShadingRate-mesh#-    -- @primitiveFragmentShadingRateMeshShader@ indicates that the-    -- implementation supports the-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>-    -- in mesh shaders.-    primitiveFragmentShadingRateMeshShader :: Bool-  , -- | #features-meshShaderQueries# @meshShaderQueries@ indicates that the-    -- implementation supports creating query pools using the-    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'-    -- query type and statistic queries containing the-    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'-    -- and-    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'-    -- flags-    meshShaderQueries :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMeshShaderFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceMeshShaderFeaturesEXT--instance ToCStruct PhysicalDeviceMeshShaderFeaturesEXT where-  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceMeshShaderFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (multiviewMeshShader))-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRateMeshShader))-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (meshShaderQueries))-    f-  cStructSize = 40-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))-    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))-    f--instance FromCStruct PhysicalDeviceMeshShaderFeaturesEXT where-  peekCStruct p = do-    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    multiviewMeshShader <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))-    primitiveFragmentShadingRateMeshShader <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))-    meshShaderQueries <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))-    pure $ PhysicalDeviceMeshShaderFeaturesEXT-             (bool32ToBool taskShader) (bool32ToBool meshShader) (bool32ToBool multiviewMeshShader) (bool32ToBool primitiveFragmentShadingRateMeshShader) (bool32ToBool meshShaderQueries)--instance Storable PhysicalDeviceMeshShaderFeaturesEXT where-  sizeOf ~_ = 40-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceMeshShaderFeaturesEXT where-  zero = PhysicalDeviceMeshShaderFeaturesEXT-           zero-           zero-           zero-           zero-           zero----- | VkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh--- shading properties------ = Members------ The members of the 'PhysicalDeviceMeshShaderPropertiesEXT' structure--- describe the following implementation-dependent limits:------ = Description------ If the 'PhysicalDeviceMeshShaderPropertiesEXT' structure is included in--- the @pNext@ chain of--- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',--- it is filled with the implementation-dependent limits.------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMeshShaderPropertiesEXT = PhysicalDeviceMeshShaderPropertiesEXT-  { -- | #limits-maxTaskWorkGroupTotalCount# @maxTaskWorkGroupTotalCount@ is the-    -- maximum number of total local workgroups that /can/ be launched by a-    -- single mesh tasks drawing command. See-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.-    maxTaskWorkGroupTotalCount :: Word32-  , -- | #limits-maxTaskWorkGroupCount# @maxTaskWorkGroupCount@[3] is the maximum-    -- number of local workgroups that /can/ be launched by a single mesh tasks-    -- drawing command. These three values represent the maximum number of-    -- local workgroups for the X, Y, and Z dimensions, respectively. The-    -- workgroup count parameters to the drawing commands /must/ be less than-    -- or equal to the corresponding limit. The product of these dimensions-    -- /must/ be less than or equal to @maxTaskWorkGroupTotalCount@.-    maxTaskWorkGroupCount :: (Word32, Word32, Word32)-  , -- | #limits-maxTaskWorkGroupInvocations# @maxTaskWorkGroupInvocations@ is-    -- the maximum total number of task shader invocations in a single local-    -- workgroup. The product of the X, Y, and Z sizes, as specified by the-    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the-    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than-    -- or equal to this limit.-    maxTaskWorkGroupInvocations :: Word32-  , -- | #limits-maxTaskWorkGroupSize# @maxTaskWorkGroupSize@[3] is the maximum-    -- size of a local task workgroup, per dimension. These three values-    -- represent the maximum local workgroup size in the X, Y, and Z-    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, as specified by-    -- the @LocalSize@ or @LocalSizeId@ execution mode or by the object-    -- decorated by the @WorkgroupSize@ decoration in shader modules, /must/ be-    -- less than or equal to the corresponding limit.-    maxTaskWorkGroupSize :: (Word32, Word32, Word32)-  , -- | #limits-maxTaskPayloadSize# @maxTaskPayloadSize@ is the maximum total-    -- storage size, in bytes, available for variables declared with the-    -- @TaskPayloadWorkgroupEXT@ storage class in shader modules in the task-    -- shader stage.-    maxTaskPayloadSize :: Word32-  , -- | #limits-maxTaskSharedMemorySize# @maxTaskSharedMemorySize@ is the-    -- maximum total storage size, in bytes, available for variables declared-    -- with the @Workgroup@ storage class in shader modules in the task shader-    -- stage.-    maxTaskSharedMemorySize :: Word32-  , -- | #limits-maxTaskPayloadAndSharedMemorySize#-    -- @maxTaskPayloadAndSharedMemorySize@ is the maximum total storage size,-    -- in bytes, available for variables that are declared with the-    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class, in shader-    -- modules in the task shader stage.-    maxTaskPayloadAndSharedMemorySize :: Word32-  , -- | #limits-maxMeshWorkGroupTotalCount# @maxMeshWorkGroupTotalCount@ is the-    -- maximum number of local output tasks a single task shader workgroup can-    -- emit.-    maxMeshWorkGroupTotalCount :: Word32-  , -- | #limits-maxMeshWorkGroupCount# @maxMeshWorkGroupCount@[3] is the maximum-    -- number of local output tasks a single task shader workgroup can emit,-    -- per dimension. These three values represent the maximum number of local-    -- output tasks for the X, Y, and Z dimensions, respectively. The workgroup-    -- count parameters to the @OpEmitMeshTasksEXT@ /must/ be less than or-    -- equal to the corresponding limit. The product of these dimensions /must/-    -- be less than or equal to @maxMeshWorkGroupTotalCount@.-    maxMeshWorkGroupCount :: (Word32, Word32, Word32)-  , -- | #limits-maxMeshWorkGroupInvocations# @maxMeshWorkGroupInvocations@ is-    -- the maximum total number of mesh shader invocations in a single local-    -- workgroup. The product of the X, Y, and Z sizes, as specified by the-    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the-    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than-    -- or equal to this limit.-    maxMeshWorkGroupInvocations :: Word32-  , -- | #limits-maxMeshWorkGroupSize# @maxMeshWorkGroupSize@[3] is the maximum-    -- size of a local mesh workgroup, per dimension. These three values-    -- represent the maximum local workgroup size in the X, Y, and Z-    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, as specified by-    -- the @LocalSize@ or @LocalSizeId@ execution mode or by the object-    -- decorated by the @WorkgroupSize@ decoration in shader modules, /must/ be-    -- less than or equal to the corresponding limit.-    maxMeshWorkGroupSize :: (Word32, Word32, Word32)-  , -- | #limits-maxMeshSharedMemorySize# @maxMeshSharedMemorySize@ is the-    -- maximum total storage size, in bytes, available for variables declared-    -- with the @Workgroup@ storage class in shader modules in the mesh shader-    -- stage.-    maxMeshSharedMemorySize :: Word32-  , -- | #limits-maxMeshPayloadAndSharedMemorySize#-    -- @maxMeshPayloadAndSharedMemorySize@ is the maximum total storage size,-    -- in bytes, available for variables that are declared with the-    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class in shader modules-    -- in the mesh shader stage.-    maxMeshPayloadAndSharedMemorySize :: Word32-  , -- | #limits-maxMeshOutputMemorySize# @maxMeshOutputMemorySize@ is the-    -- maximum total storage size, in bytes, available for output variables in-    -- shader modules in the mesh shader stage, according to the formula in-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.-    maxMeshOutputMemorySize :: Word32-  , -- | #limits-maxMeshPayloadAndOutputMemorySize#-    -- @maxMeshPayloadAndOutputMemorySize@ is the maximum total storage size,-    -- in bytes, available for variables that are declared with the-    -- @TaskPayloadWorkgroupEXT@ storage class, or output variables in shader-    -- modules in the mesh shader stage, according to the formula in-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.-    maxMeshPayloadAndOutputMemorySize :: Word32-  , -- | #limits-maxMeshOutputComponents# @maxMeshOutputComponents@ is the-    -- maximum number of components of output variables which /can/ be output-    -- from the mesh shader stage.-    maxMeshOutputComponents :: Word32-  , -- | #limits-maxMeshOutputVertices# @maxMeshOutputVertices@ is the maximum-    -- number of vertices which /can/ be emitted by a single mesh shader-    -- workgroup.-    maxMeshOutputVertices :: Word32-  , -- | #limits-maxMeshOutputPrimitives# @maxMeshOutputPrimitives@ is the-    -- maximum number of primitives which /can/ be emitted by a single mesh-    -- shader workgroup.-    maxMeshOutputPrimitives :: Word32-  , -- | #limits-maxMeshOutputLayers# @maxMeshOutputLayers@ is one greater than-    -- the maximum layer index that /can/ be output from the mesh shader stage.-    maxMeshOutputLayers :: Word32-  , -- | #limits-maxMeshMultiviewViewCount# @maxMeshMultiviewViewCount@ is one-    -- greater than the maximum view index that /can/ be used by any mesh-    -- shader.-    maxMeshMultiviewViewCount :: Word32-  , -- | #limits-meshOutputPerVertexGranularity# @meshOutputPerVertexGranularity@-    -- is the granularity of vertex allocation. The number of output vertices-    -- allocated for the mesh shader stage is padded to a multiple of this-    -- number. The value can be used to calculate the required storage size for-    -- output variables in shader modules in the mesh shader stage, which-    -- /must/ be less than or equal to @maxMeshOutputMemorySize@.-    meshOutputPerVertexGranularity :: Word32-  , -- | #limits-meshOutputPerPrimitiveGranularity#-    -- @meshOutputPerPrimitiveGranularity@ is the granularity of primitive-    -- allocation. The number of output primitives allocated for the mesh-    -- shader stage is padded to a multiple of this number. The value can be-    -- used to calculate the required storage size for output variables in-    -- shader modules in the mesh shader stage, which /must/ be less than or-    -- equal to @maxMeshOutputMemorySize@.-    meshOutputPerPrimitiveGranularity :: Word32-  , -- | #limits-maxPreferredTaskWorkGroupInvocations#-    -- @maxPreferredTaskWorkGroupInvocations@ is the maximum number of task-    -- shader invocations in a single workgroup that is preferred by the-    -- implementation for optimal performance. The value is guaranteed to be a-    -- multiple of a supported subgroup size for the task shader stage.-    maxPreferredTaskWorkGroupInvocations :: Word32-  , -- | #limits-maxPreferredMeshWorkGroupInvocations#-    -- @maxPreferredMeshWorkGroupInvocations@ is the maximum number of mesh-    -- shader invocations in a single workgroup that is preferred by the-    -- implementation for optimal performance. The value is guaranteed to be a-    -- multiple of a supported subgroup size for the mesh shader stage.-    maxPreferredMeshWorkGroupInvocations :: Word32-  , -- | #limits-prefersLocalInvocationVertexOutput#-    -- @prefersLocalInvocationVertexOutput@ specifies whether writes to the-    -- vertex output array in a mesh shader yield best performance when the-    -- array index matches @LocalInvocationIndex@.-    prefersLocalInvocationVertexOutput :: Bool-  , -- | #limits-prefersLocalInvocationPrimitiveOutput#-    -- @prefersLocalInvocationPrimitiveOutput@ specifies whether writes to the-    -- primitive output array in a mesh shader yield best performance when the-    -- array index matches @LocalInvocationIndex@.-    prefersLocalInvocationPrimitiveOutput :: Bool-  , -- | #limits-prefersCompactVertexOutput# @prefersCompactVertexOutput@-    -- specifies whether output vertices should be compacted after custom-    -- culling in the mesh shader for best performance, otherwise keeping the-    -- vertices at their original location may be better.-    prefersCompactVertexOutput :: Bool-  , -- | #limits-prefersCompactPrimitiveOutput# @prefersCompactPrimitiveOutput@-    -- specifies whether output primitives should be compacted after custom-    -- culling in the mesh shader for best performance, otherwise the use of-    -- @CullPrimitiveEXT@ may be better.-    prefersCompactPrimitiveOutput :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMeshShaderPropertiesEXT)-#endif-deriving instance Show PhysicalDeviceMeshShaderPropertiesEXT--instance ToCStruct PhysicalDeviceMeshShaderPropertiesEXT where-  withCStruct x f = allocaBytes 160 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceMeshShaderPropertiesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTaskWorkGroupTotalCount)-    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))-    case (maxTaskWorkGroupCount) of-      (e0, e1, e2) -> do-        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)-        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTaskWorkGroupInvocations)-    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))-    case (maxTaskWorkGroupSize) of-      (e0, e1, e2) -> do-        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxTaskPayloadSize)-    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxTaskSharedMemorySize)-    poke ((p `plusPtr` 56 :: Ptr Word32)) (maxTaskPayloadAndSharedMemorySize)-    poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshWorkGroupTotalCount)-    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))-    case (maxMeshWorkGroupCount) of-      (e0, e1, e2) -> do-        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)-        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 76 :: Ptr Word32)) (maxMeshWorkGroupInvocations)-    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))-    case (maxMeshWorkGroupSize) of-      (e0, e1, e2) -> do-        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 92 :: Ptr Word32)) (maxMeshSharedMemorySize)-    poke ((p `plusPtr` 96 :: Ptr Word32)) (maxMeshPayloadAndSharedMemorySize)-    poke ((p `plusPtr` 100 :: Ptr Word32)) (maxMeshOutputMemorySize)-    poke ((p `plusPtr` 104 :: Ptr Word32)) (maxMeshPayloadAndOutputMemorySize)-    poke ((p `plusPtr` 108 :: Ptr Word32)) (maxMeshOutputComponents)-    poke ((p `plusPtr` 112 :: Ptr Word32)) (maxMeshOutputVertices)-    poke ((p `plusPtr` 116 :: Ptr Word32)) (maxMeshOutputPrimitives)-    poke ((p `plusPtr` 120 :: Ptr Word32)) (maxMeshOutputLayers)-    poke ((p `plusPtr` 124 :: Ptr Word32)) (maxMeshMultiviewViewCount)-    poke ((p `plusPtr` 128 :: Ptr Word32)) (meshOutputPerVertexGranularity)-    poke ((p `plusPtr` 132 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)-    poke ((p `plusPtr` 136 :: Ptr Word32)) (maxPreferredTaskWorkGroupInvocations)-    poke ((p `plusPtr` 140 :: Ptr Word32)) (maxPreferredMeshWorkGroupInvocations)-    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationVertexOutput))-    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationPrimitiveOutput))-    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (prefersCompactVertexOutput))-    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (prefersCompactPrimitiveOutput))-    f-  cStructSize = 160-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))-    case ((zero, zero, zero)) of-      (e0, e1, e2) -> do-        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)-        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)-    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))-    case ((zero, zero, zero)) of-      (e0, e1, e2) -> do-        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)-    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))-    case ((zero, zero, zero)) of-      (e0, e1, e2) -> do-        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)-        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)-    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))-    case ((zero, zero, zero)) of-      (e0, e1, e2) -> do-        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 92 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 100 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 104 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 108 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 112 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 116 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 120 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 124 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 128 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 132 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 136 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 140 :: Ptr Word32)) (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))-    f--instance FromCStruct PhysicalDeviceMeshShaderPropertiesEXT where-  peekCStruct p = do-    maxTaskWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    let pmaxTaskWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))-    maxTaskWorkGroupCount0 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))-    maxTaskWorkGroupCount1 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))-    maxTaskWorkGroupCount2 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))-    maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))-    maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))-    maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))-    maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))-    maxTaskPayloadSize <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))-    maxTaskSharedMemorySize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))-    maxTaskPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))-    maxMeshWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))-    let pmaxMeshWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))-    maxMeshWorkGroupCount0 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))-    maxMeshWorkGroupCount1 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))-    maxMeshWorkGroupCount2 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))-    maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))-    let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))-    maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))-    maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))-    maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))-    maxMeshSharedMemorySize <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))-    maxMeshPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))-    maxMeshOutputMemorySize <- peek @Word32 ((p `plusPtr` 100 :: Ptr Word32))-    maxMeshPayloadAndOutputMemorySize <- peek @Word32 ((p `plusPtr` 104 :: Ptr Word32))-    maxMeshOutputComponents <- peek @Word32 ((p `plusPtr` 108 :: Ptr Word32))-    maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 112 :: Ptr Word32))-    maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 116 :: Ptr Word32))-    maxMeshOutputLayers <- peek @Word32 ((p `plusPtr` 120 :: Ptr Word32))-    maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 124 :: Ptr Word32))-    meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 128 :: Ptr Word32))-    meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 132 :: Ptr Word32))-    maxPreferredTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 136 :: Ptr Word32))-    maxPreferredMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 140 :: Ptr Word32))-    prefersLocalInvocationVertexOutput <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))-    prefersLocalInvocationPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))-    prefersCompactVertexOutput <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))-    prefersCompactPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))-    pure $ PhysicalDeviceMeshShaderPropertiesEXT-             maxTaskWorkGroupTotalCount ((maxTaskWorkGroupCount0, maxTaskWorkGroupCount1, maxTaskWorkGroupCount2)) maxTaskWorkGroupInvocations ((maxTaskWorkGroupSize0, maxTaskWorkGroupSize1, maxTaskWorkGroupSize2)) maxTaskPayloadSize maxTaskSharedMemorySize maxTaskPayloadAndSharedMemorySize maxMeshWorkGroupTotalCount ((maxMeshWorkGroupCount0, maxMeshWorkGroupCount1, maxMeshWorkGroupCount2)) maxMeshWorkGroupInvocations ((maxMeshWorkGroupSize0, maxMeshWorkGroupSize1, maxMeshWorkGroupSize2)) maxMeshSharedMemorySize maxMeshPayloadAndSharedMemorySize maxMeshOutputMemorySize maxMeshPayloadAndOutputMemorySize maxMeshOutputComponents maxMeshOutputVertices maxMeshOutputPrimitives maxMeshOutputLayers maxMeshMultiviewViewCount meshOutputPerVertexGranularity meshOutputPerPrimitiveGranularity maxPreferredTaskWorkGroupInvocations maxPreferredMeshWorkGroupInvocations (bool32ToBool prefersLocalInvocationVertexOutput) (bool32ToBool prefersLocalInvocationPrimitiveOutput) (bool32ToBool prefersCompactVertexOutput) (bool32ToBool prefersCompactPrimitiveOutput)+-- -   #VUID-vkCmdDrawMeshTasksEXT-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06538# If any recorded command in+--     the current subpass will write to an image subresource as an+--     attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06539# If any recorded command in+--     the current subpass will read from an image subresource used as an+--     attachment in any way other than as an attachment, this command+--     /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-None-06666# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksEXT-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-attachmentCount-06667# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-attachmentCount-06815# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07471# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07476# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07477# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07478# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-firstAttachment-07479# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07482# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07483# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07484# If the+--     bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07485# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07486# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsEnable-07487# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-coverageModulationTableEnable-07488# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-coverageToColorEnable-07490# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMeshTasksEXT-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMeshTasksEXT-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-stage-07073# If the currently bound+--     pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07322# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,+--     @groupCountX@ /must/ be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[0]+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07323# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,+--     @groupCountY@ /must/ be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[1]+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07324# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     contains a shader using the @TaskEXT@ @Execution@ @Model@,+--     @groupCountZ@ /must/ be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupCount@[2]+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07325# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     contains a shader using the @TaskEXT@ @Execution@ @Model@, The+--     product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/ be+--     less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxTaskWorkGroupTotalCount@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07326# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,+--     @groupCountX@ /must/ be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[0]+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07327# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,+--     @groupCountY@ /must/ be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[1]+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07328# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,+--     @groupCountZ@ /must/ be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupCount@[2]+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-TaskEXT-07329# If the current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     does not contain a shader using the @TaskEXT@ @Execution@ @Model@,+--     The product of @groupCountX@, @groupCountY@ and @groupCountZ@ /must/+--     be less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesEXT'::@maxMeshWorkGroupTotalCount@+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-MeshEXT-07087# The current pipeline+--     bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @MeshEXT@ @Execution@+--     @Model@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-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-vkCmdDrawMeshTasksEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawMeshTasksEXT-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawMeshTasksEXT :: 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 ()+cmdDrawMeshTasksEXT commandBuffer+                      groupCountX+                      groupCountY+                      groupCountZ = liftIO $ do+  let vkCmdDrawMeshTasksEXTPtr = pVkCmdDrawMeshTasksEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawMeshTasksEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksEXT is null" Nothing Nothing+  let vkCmdDrawMeshTasksEXT' = mkVkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXTPtr+  traceAroundEvent "vkCmdDrawMeshTasksEXT" (vkCmdDrawMeshTasksEXT'+                                              (commandBufferHandle (commandBuffer))+                                              (groupCountX)+                                              (groupCountY)+                                              (groupCountZ))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawMeshTasksIndirectEXT+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksIndirectEXT - Issue an indirect mesh tasks draw into a+-- command buffer+--+-- = Description+--+-- 'cmdDrawMeshTasksIndirectEXT' behaves similarly to 'cmdDrawMeshTasksEXT'+-- 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 'DrawMeshTasksIndirectCommandEXT' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectEXT-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02699# Descriptors in each+--     bound descriptor set, specified via+--     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectEXT-None-02700# A valid pipeline+--     /must/ be bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-uniformBuffers-06935# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a uniform buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectEXT-storageBuffers-06936# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a storage buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06971#+--     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06972#+--     If @OpImageWeightedSampleQCOM@ uses a+--     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSSDQCOM-06974#+--     If @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06975#+--     If @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageBlockMatchSADQCOM-06976#+--     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06977#+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpImageWeightedSampleQCOM-06978#+--     If any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07288# Any shader+--     invocation executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-02686# Every input+--     attachment used by the current subpass /must/ be bound to the+--     pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06538# If any recorded+--     command in the current subpass will write to an image subresource as+--     an attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06539# If any recorded+--     command in the current subpass will read from an image subresource+--     used as an attachment in any way other than as an attachment, this+--     command /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06886# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-06887# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-None-06666# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectEXT-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-06667# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-attachmentCount-06815# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-pColorBlendEnables-07470# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07471# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07476# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07477# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07478# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-firstAttachment-07479# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07484# If+--     the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07485# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07486# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsEnable-07487# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07489# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-coverageToColorEnable-07490# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-coverageReductionMode-07491# If+--     this @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMeshTasksIndirectEXT-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMeshTasksIndirectEXT-rasterizationSamples-07494# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07495# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-stage-07073# If the currently+--     bound pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02708# If @buffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-02709# @buffer@ /must/+--     have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-offset-02710# @offset@ /must/ be+--     a multiple of @4@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-02711#+--     @commandBuffer@ /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02718# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-02719# @drawCount@+--     /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07088# If @drawCount@+--     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/+--     be greater than or equal to+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07089# If @drawCount@+--     is equal to @1@, (@offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-drawCount-07090# If @drawCount@+--     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-MeshEXT-07091# The current+--     pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @MeshEXT@ @Execution@+--     @Model@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-buffer-parameter# @buffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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-vkCmdDrawMeshTasksIndirectEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-renderpass# This command /must/+--     only be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawMeshTasksIndirectEXT :: 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 ()+cmdDrawMeshTasksIndirectEXT commandBuffer+                              buffer+                              offset+                              drawCount+                              stride = liftIO $ do+  let vkCmdDrawMeshTasksIndirectEXTPtr = pVkCmdDrawMeshTasksIndirectEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawMeshTasksIndirectEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectEXT is null" Nothing Nothing+  let vkCmdDrawMeshTasksIndirectEXT' = mkVkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXTPtr+  traceAroundEvent "vkCmdDrawMeshTasksIndirectEXT" (vkCmdDrawMeshTasksIndirectEXT'+                                                      (commandBufferHandle (commandBuffer))+                                                      (buffer)+                                                      (offset)+                                                      (drawCount)+                                                      (stride))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawMeshTasksIndirectCountEXT+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksIndirectCountEXT - Perform an indirect mesh tasks draw+-- with the draw count sourced from a buffer+--+-- = Description+--+-- 'cmdDrawMeshTasksIndirectCountEXT' behaves similarly to+-- 'cmdDrawMeshTasksIndirectEXT' except that the draw count is read by the+-- device from a buffer during execution. The command will read an unsigned+-- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use+-- this as the draw count.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountEXT-filterCubicMinmax-02695#+--     Any 'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02699# Descriptors in+--     each bound descriptor set, specified via+--     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectCountEXT-None-02700# A valid+--     pipeline /must/ be bound to the pipeline bind point used by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-uniformBuffers-06935# If+--     any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to+--     the pipeline bind point used by this command accesses a uniform+--     buffer, and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountEXT-storageBuffers-06936# If+--     any stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to+--     the pipeline bind point used by this command accesses a storage+--     buffer, and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06971#+--     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06972#+--     If @OpImageWeightedSampleQCOM@ uses a+--     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBoxFilterQCOM-06973#+--     If @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSSDQCOM-06974#+--     If @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06975#+--     If @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageBlockMatchSADQCOM-06976#+--     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06977#+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpImageWeightedSampleQCOM-06978#+--     If any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07288# Any shader+--     invocation executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-02686# Every input+--     attachment used by the current subpass /must/ be bound to the+--     pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-OpTypeImage-07468# If any+--     shader executed by this pipeline accesses an @OpTypeImage@ variable+--     with a @Dim@ operand of @SubpassData@, it /must/ be decorated with+--     an @InputAttachmentIndex@ that corresponds to a valid input+--     attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07469# Input+--     attachment views accessed in a subpass /must/ be created with the+--     same 'Vulkan.Core10.Enums.Format.Format' as the corresponding+--     subpass definition be created with a+--     'Vulkan.Core10.Handles.ImageView' that is an attachment in the+--     currently bound 'Vulkan.Core10.Handles.Framebuffer' at an index that+--     corresponds to a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06537# Memory backing+--     image subresources used as attachments in the current render pass+--     /must/ not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06538# If any recorded+--     command in the current subpass will write to an image subresource as+--     an attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06539# If any recorded+--     command in the current subpass will read from an image subresource+--     used as an attachment in any way other than as an attachment, this+--     command /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06886# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-06887# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-None-06666# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountEXT-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-06667# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-attachmentCount-06815# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-pColorBlendEnables-07470#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07471#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07476# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07477# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07478# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-firstAttachment-07479# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07484#+--     If the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07485#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07486#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsEnable-07487#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07489#+--     If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+--     if current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageToColorEnable-07490#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-coverageReductionMode-07491#+--     If this @VK_NV_coverage_reduction_mode@ extension is enabled, the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMeshTasksIndirectCountEXT-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMeshTasksIndirectCountEXT-rasterizationSamples-07494#+--     If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+--     if the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07495#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07496#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07497#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stippledLineEnable-07498#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stage-07073# If the+--     currently bound pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02708# If @buffer@+--     is non-sparse then it /must/ be bound completely and contiguously to+--     a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-02709# @buffer@+--     /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-offset-02710# @offset@+--     /must/ be a multiple of @4@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-02711#+--     @commandBuffer@ /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02714# If+--     @countBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02715#+--     @countBuffer@ /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-02716#+--     @countBufferOffset@ /must/ be a multiple of @4@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-02717# The+--     count stored in @countBuffer@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBufferOffset-04129#+--     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or+--     equal to the size of @countBuffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-04445# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>+--     is not enabled this function /must/ not be used+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-stride-07096# @stride@+--     /must/ be a multiple of @4@ and /must/ be greater than or equal to+--     @sizeof@('DrawMeshTasksIndirectCommandEXT')+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maxDrawCount-07097# If+--     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×+--     (@maxDrawCount@ - 1) + @offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07098# If the+--     count stored in @countBuffer@ is equal to @1@, (@offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-07099# If the+--     count stored in @countBuffer@ is greater than @1@, (@stride@ ×+--     (@drawCount@ - 1) + @offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandEXT')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-MeshEXT-07100# The current+--     pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @MeshEXT@ @Execution@+--     @Model@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-buffer-parameter# @buffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-countBuffer-parameter#+--     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'+--     handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-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-vkCmdDrawMeshTasksIndirectCountEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-renderpass# This command+--     /must/ only be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-commonparent# Each of+--     @buffer@, @commandBuffer@, and @countBuffer@ /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawMeshTasksIndirectCountEXT :: 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)+                                 -> -- | @countBuffer@ is the buffer containing the draw count.+                                    ("countBuffer" ::: Buffer)+                                 -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw+                                    -- count begins.+                                    ("countBufferOffset" ::: DeviceSize)+                                 -> -- | @maxDrawCount@ specifies the maximum number of draws that will be+                                    -- executed. The actual number of executed draw calls is the minimum of the+                                    -- count specified in @countBuffer@ and @maxDrawCount@.+                                    ("maxDrawCount" ::: Word32)+                                 -> -- | @stride@ is the byte stride between successive sets of draw parameters.+                                    ("stride" ::: Word32)+                                 -> io ()+cmdDrawMeshTasksIndirectCountEXT commandBuffer+                                   buffer+                                   offset+                                   countBuffer+                                   countBufferOffset+                                   maxDrawCount+                                   stride = liftIO $ do+  let vkCmdDrawMeshTasksIndirectCountEXTPtr = pVkCmdDrawMeshTasksIndirectCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawMeshTasksIndirectCountEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountEXT is null" Nothing Nothing+  let vkCmdDrawMeshTasksIndirectCountEXT' = mkVkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXTPtr+  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountEXT" (vkCmdDrawMeshTasksIndirectCountEXT'+                                                           (commandBufferHandle (commandBuffer))+                                                           (buffer)+                                                           (offset)+                                                           (countBuffer)+                                                           (countBufferOffset)+                                                           (maxDrawCount)+                                                           (stride))+  pure $ ()+++-- | VkPhysicalDeviceMeshShaderFeaturesEXT - Structure describing mesh+-- shading features that can be supported by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceMeshShaderFeaturesEXT' 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. 'PhysicalDeviceMeshShaderFeaturesEXT' /can/ also be used in+-- the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- The corresponding features of the+-- 'Vulkan.Extensions.VK_NV_mesh_shader.PhysicalDeviceMeshShaderFeaturesNV'+-- structure /must/ match those in 'PhysicalDeviceMeshShaderFeaturesEXT'.+--+-- == Valid Usage+--+-- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032#+--     If @multiviewMeshShader@ is enabled then+--     'Vulkan.Extensions.VK_KHR_multiview.PhysicalDeviceMultiviewFeaturesKHR'::@multiview@+--     /must/ also be enabled+--+-- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033#+--     If @primitiveFragmentShadingRateMeshShader@ is enabled then+--     'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRateFeaturesKHR'::@primitiveFragmentShadingRate@+--     /must/ also be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType# @sType@+--     /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMeshShaderFeaturesEXT = PhysicalDeviceMeshShaderFeaturesEXT+  { -- | #features-taskShader# @taskShader@ specifies whether task shaders are+    -- supported. If this feature is not enabled, the+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TASK_BIT_EXT' and+    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_TASK_SHADER_BIT_EXT'+    -- enum values /must/ not be used.+    taskShader :: Bool+  , -- | #features-meshShader# @meshShader@ specifies whether mesh shaders are+    -- supported. If this feature is not enabled, the+    -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' and+    -- 'Vulkan.Core10.Enums.PipelineStageFlagBits.PIPELINE_STAGE_MESH_SHADER_BIT_EXT'+    -- enum values /must/ not be used.+    meshShader :: Bool+  , -- | #features-multiview-mesh# @multiviewMeshShader@ specifies whether the+    -- implementation supports+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiview multiview>+    -- rendering within a render pass, with mesh shaders. If this feature is+    -- not enabled, then a pipeline compiled against a subpass with a non-zero+    -- view mask /must/ not include a mesh shader.+    multiviewMeshShader :: Bool+  , -- | #features-primitiveFragmentShadingRate-mesh#+    -- @primitiveFragmentShadingRateMeshShader@ indicates that the+    -- implementation supports the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-fragment-shading-rate-primitive primitive fragment shading rate>+    -- in mesh shaders.+    primitiveFragmentShadingRateMeshShader :: Bool+  , -- | #features-meshShaderQueries# @meshShaderQueries@ indicates that the+    -- implementation supports creating query pools using the+    -- 'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT'+    -- query type and statistic queries containing the+    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT'+    -- and+    -- 'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT'+    -- flags+    meshShaderQueries :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMeshShaderFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceMeshShaderFeaturesEXT++instance ToCStruct PhysicalDeviceMeshShaderFeaturesEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceMeshShaderFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (multiviewMeshShader))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (primitiveFragmentShadingRateMeshShader))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (meshShaderQueries))+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceMeshShaderFeaturesEXT where+  peekCStruct p = do+    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    multiviewMeshShader <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    primitiveFragmentShadingRateMeshShader <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    meshShaderQueries <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    pure $ PhysicalDeviceMeshShaderFeaturesEXT+             (bool32ToBool taskShader)+             (bool32ToBool meshShader)+             (bool32ToBool multiviewMeshShader)+             (bool32ToBool primitiveFragmentShadingRateMeshShader)+             (bool32ToBool meshShaderQueries)++instance Storable PhysicalDeviceMeshShaderFeaturesEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMeshShaderFeaturesEXT where+  zero = PhysicalDeviceMeshShaderFeaturesEXT+           zero+           zero+           zero+           zero+           zero+++-- | VkPhysicalDeviceMeshShaderPropertiesEXT - Structure describing mesh+-- shading properties+--+-- = Members+--+-- The members of the 'PhysicalDeviceMeshShaderPropertiesEXT' structure+-- describe the following implementation-dependent limits:+--+-- = Description+--+-- If the 'PhysicalDeviceMeshShaderPropertiesEXT' structure is included in+-- the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_mesh_shader VK_EXT_mesh_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMeshShaderPropertiesEXT = PhysicalDeviceMeshShaderPropertiesEXT+  { -- | #limits-maxTaskWorkGroupTotalCount# @maxTaskWorkGroupTotalCount@ is the+    -- maximum number of total local workgroups that /can/ be launched by a+    -- single mesh tasks drawing command. See+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing-mesh-shading>.+    maxTaskWorkGroupTotalCount :: Word32+  , -- | #limits-maxTaskWorkGroupCount# @maxTaskWorkGroupCount@[3] is the maximum+    -- number of local workgroups that /can/ be launched by a single mesh tasks+    -- drawing command. These three values represent the maximum number of+    -- local workgroups for the X, Y, and Z dimensions, respectively. The+    -- workgroup count parameters to the drawing commands /must/ be less than+    -- or equal to the corresponding limit. The product of these dimensions+    -- /must/ be less than or equal to @maxTaskWorkGroupTotalCount@.+    maxTaskWorkGroupCount :: (Word32, Word32, Word32)+  , -- | #limits-maxTaskWorkGroupInvocations# @maxTaskWorkGroupInvocations@ is+    -- the maximum total number of task shader invocations in a single local+    -- workgroup. The product of the X, Y, and Z sizes, as specified by the+    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the+    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than+    -- or equal to this limit.+    maxTaskWorkGroupInvocations :: Word32+  , -- | #limits-maxTaskWorkGroupSize# @maxTaskWorkGroupSize@[3] is the maximum+    -- size of a local task workgroup, per dimension. These three values+    -- represent the maximum local workgroup size in the X, Y, and Z+    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, as specified by+    -- the @LocalSize@ or @LocalSizeId@ execution mode or by the object+    -- decorated by the @WorkgroupSize@ decoration in shader modules, /must/ be+    -- less than or equal to the corresponding limit.+    maxTaskWorkGroupSize :: (Word32, Word32, Word32)+  , -- | #limits-maxTaskPayloadSize# @maxTaskPayloadSize@ is the maximum total+    -- storage size, in bytes, available for variables declared with the+    -- @TaskPayloadWorkgroupEXT@ storage class in shader modules in the task+    -- shader stage.+    maxTaskPayloadSize :: Word32+  , -- | #limits-maxTaskSharedMemorySize# @maxTaskSharedMemorySize@ is the+    -- maximum total storage size, in bytes, available for variables declared+    -- with the @Workgroup@ storage class in shader modules in the task shader+    -- stage.+    maxTaskSharedMemorySize :: Word32+  , -- | #limits-maxTaskPayloadAndSharedMemorySize#+    -- @maxTaskPayloadAndSharedMemorySize@ is the maximum total storage size,+    -- in bytes, available for variables that are declared with the+    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class, in shader+    -- modules in the task shader stage.+    maxTaskPayloadAndSharedMemorySize :: Word32+  , -- | #limits-maxMeshWorkGroupTotalCount# @maxMeshWorkGroupTotalCount@ is the+    -- maximum number of local output tasks a single task shader workgroup can+    -- emit.+    maxMeshWorkGroupTotalCount :: Word32+  , -- | #limits-maxMeshWorkGroupCount# @maxMeshWorkGroupCount@[3] is the maximum+    -- number of local output tasks a single task shader workgroup can emit,+    -- per dimension. These three values represent the maximum number of local+    -- output tasks for the X, Y, and Z dimensions, respectively. The workgroup+    -- count parameters to the @OpEmitMeshTasksEXT@ /must/ be less than or+    -- equal to the corresponding limit. The product of these dimensions /must/+    -- be less than or equal to @maxMeshWorkGroupTotalCount@.+    maxMeshWorkGroupCount :: (Word32, Word32, Word32)+  , -- | #limits-maxMeshWorkGroupInvocations# @maxMeshWorkGroupInvocations@ is+    -- the maximum total number of mesh shader invocations in a single local+    -- workgroup. The product of the X, Y, and Z sizes, as specified by the+    -- @LocalSize@ or @LocalSizeId@ execution mode in shader modules or by the+    -- object decorated by the @WorkgroupSize@ decoration, /must/ be less than+    -- or equal to this limit.+    maxMeshWorkGroupInvocations :: Word32+  , -- | #limits-maxMeshWorkGroupSize# @maxMeshWorkGroupSize@[3] is the maximum+    -- size of a local mesh workgroup, per dimension. These three values+    -- represent the maximum local workgroup size in the X, Y, and Z+    -- dimensions, respectively. The @x@, @y@, and @z@ sizes, as specified by+    -- the @LocalSize@ or @LocalSizeId@ execution mode or by the object+    -- decorated by the @WorkgroupSize@ decoration in shader modules, /must/ be+    -- less than or equal to the corresponding limit.+    maxMeshWorkGroupSize :: (Word32, Word32, Word32)+  , -- | #limits-maxMeshSharedMemorySize# @maxMeshSharedMemorySize@ is the+    -- maximum total storage size, in bytes, available for variables declared+    -- with the @Workgroup@ storage class in shader modules in the mesh shader+    -- stage.+    maxMeshSharedMemorySize :: Word32+  , -- | #limits-maxMeshPayloadAndSharedMemorySize#+    -- @maxMeshPayloadAndSharedMemorySize@ is the maximum total storage size,+    -- in bytes, available for variables that are declared with the+    -- @TaskPayloadWorkgroupEXT@ or @Workgroup@ storage class in shader modules+    -- in the mesh shader stage.+    maxMeshPayloadAndSharedMemorySize :: Word32+  , -- | #limits-maxMeshOutputMemorySize# @maxMeshOutputMemorySize@ is the+    -- maximum total storage size, in bytes, available for output variables in+    -- shader modules in the mesh shader stage, according to the formula in+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.+    maxMeshOutputMemorySize :: Word32+  , -- | #limits-maxMeshPayloadAndOutputMemorySize#+    -- @maxMeshPayloadAndOutputMemorySize@ is the maximum total storage size,+    -- in bytes, available for variables that are declared with the+    -- @TaskPayloadWorkgroupEXT@ storage class, or output variables in shader+    -- modules in the mesh shader stage, according to the formula in+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#mesh-output Mesh Shader Output>.+    maxMeshPayloadAndOutputMemorySize :: Word32+  , -- | #limits-maxMeshOutputComponents# @maxMeshOutputComponents@ is the+    -- maximum number of components of output variables which /can/ be output+    -- from the mesh shader stage.+    maxMeshOutputComponents :: Word32+  , -- | #limits-maxMeshOutputVertices# @maxMeshOutputVertices@ is the maximum+    -- number of vertices which /can/ be emitted by a single mesh shader+    -- workgroup.+    maxMeshOutputVertices :: Word32+  , -- | #limits-maxMeshOutputPrimitives# @maxMeshOutputPrimitives@ is the+    -- maximum number of primitives which /can/ be emitted by a single mesh+    -- shader workgroup.+    maxMeshOutputPrimitives :: Word32+  , -- | #limits-maxMeshOutputLayers# @maxMeshOutputLayers@ is one greater than+    -- the maximum layer index that /can/ be output from the mesh shader stage.+    maxMeshOutputLayers :: Word32+  , -- | #limits-maxMeshMultiviewViewCount# @maxMeshMultiviewViewCount@ is one+    -- greater than the maximum view index that /can/ be used by any mesh+    -- shader.+    maxMeshMultiviewViewCount :: Word32+  , -- | #limits-meshOutputPerVertexGranularity# @meshOutputPerVertexGranularity@+    -- is the granularity of vertex allocation. The number of output vertices+    -- allocated for the mesh shader stage is padded to a multiple of this+    -- number. The value can be used to calculate the required storage size for+    -- output variables in shader modules in the mesh shader stage, which+    -- /must/ be less than or equal to @maxMeshOutputMemorySize@.+    meshOutputPerVertexGranularity :: Word32+  , -- | #limits-meshOutputPerPrimitiveGranularity#+    -- @meshOutputPerPrimitiveGranularity@ is the granularity of primitive+    -- allocation. The number of output primitives allocated for the mesh+    -- shader stage is padded to a multiple of this number. The value can be+    -- used to calculate the required storage size for output variables in+    -- shader modules in the mesh shader stage, which /must/ be less than or+    -- equal to @maxMeshOutputMemorySize@.+    meshOutputPerPrimitiveGranularity :: Word32+  , -- | #limits-maxPreferredTaskWorkGroupInvocations#+    -- @maxPreferredTaskWorkGroupInvocations@ is the maximum number of task+    -- shader invocations in a single workgroup that is preferred by the+    -- implementation for optimal performance. The value is guaranteed to be a+    -- multiple of a supported subgroup size for the task shader stage.+    maxPreferredTaskWorkGroupInvocations :: Word32+  , -- | #limits-maxPreferredMeshWorkGroupInvocations#+    -- @maxPreferredMeshWorkGroupInvocations@ is the maximum number of mesh+    -- shader invocations in a single workgroup that is preferred by the+    -- implementation for optimal performance. The value is guaranteed to be a+    -- multiple of a supported subgroup size for the mesh shader stage.+    maxPreferredMeshWorkGroupInvocations :: Word32+  , -- | #limits-prefersLocalInvocationVertexOutput#+    -- @prefersLocalInvocationVertexOutput@ specifies whether writes to the+    -- vertex output array in a mesh shader yield best performance when the+    -- array index matches @LocalInvocationIndex@.+    prefersLocalInvocationVertexOutput :: Bool+  , -- | #limits-prefersLocalInvocationPrimitiveOutput#+    -- @prefersLocalInvocationPrimitiveOutput@ specifies whether writes to the+    -- primitive output array in a mesh shader yield best performance when the+    -- array index matches @LocalInvocationIndex@.+    prefersLocalInvocationPrimitiveOutput :: Bool+  , -- | #limits-prefersCompactVertexOutput# @prefersCompactVertexOutput@+    -- specifies whether output vertices should be compacted after custom+    -- culling in the mesh shader for best performance, otherwise keeping the+    -- vertices at their original location may be better.+    prefersCompactVertexOutput :: Bool+  , -- | #limits-prefersCompactPrimitiveOutput# @prefersCompactPrimitiveOutput@+    -- specifies whether output primitives should be compacted after custom+    -- culling in the mesh shader for best performance, otherwise the use of+    -- @CullPrimitiveEXT@ may be better.+    prefersCompactPrimitiveOutput :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMeshShaderPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceMeshShaderPropertiesEXT++instance ToCStruct PhysicalDeviceMeshShaderPropertiesEXT where+  withCStruct x f = allocaBytes 160 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceMeshShaderPropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxTaskWorkGroupTotalCount)+    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))+    case (maxTaskWorkGroupCount) of+      (e0, e1, e2) -> do+        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)+        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (maxTaskWorkGroupInvocations)+    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))+    case (maxTaskWorkGroupSize) of+      (e0, e1, e2) -> do+        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxTaskPayloadSize)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxTaskSharedMemorySize)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (maxTaskPayloadAndSharedMemorySize)+    poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshWorkGroupTotalCount)+    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))+    case (maxMeshWorkGroupCount) of+      (e0, e1, e2) -> do+        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)+        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 76 :: Ptr Word32)) (maxMeshWorkGroupInvocations)+    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))+    case (maxMeshWorkGroupSize) of+      (e0, e1, e2) -> do+        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 92 :: Ptr Word32)) (maxMeshSharedMemorySize)+    poke ((p `plusPtr` 96 :: Ptr Word32)) (maxMeshPayloadAndSharedMemorySize)+    poke ((p `plusPtr` 100 :: Ptr Word32)) (maxMeshOutputMemorySize)+    poke ((p `plusPtr` 104 :: Ptr Word32)) (maxMeshPayloadAndOutputMemorySize)+    poke ((p `plusPtr` 108 :: Ptr Word32)) (maxMeshOutputComponents)+    poke ((p `plusPtr` 112 :: Ptr Word32)) (maxMeshOutputVertices)+    poke ((p `plusPtr` 116 :: Ptr Word32)) (maxMeshOutputPrimitives)+    poke ((p `plusPtr` 120 :: Ptr Word32)) (maxMeshOutputLayers)+    poke ((p `plusPtr` 124 :: Ptr Word32)) (maxMeshMultiviewViewCount)+    poke ((p `plusPtr` 128 :: Ptr Word32)) (meshOutputPerVertexGranularity)+    poke ((p `plusPtr` 132 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)+    poke ((p `plusPtr` 136 :: Ptr Word32)) (maxPreferredTaskWorkGroupInvocations)+    poke ((p `plusPtr` 140 :: Ptr Word32)) (maxPreferredMeshWorkGroupInvocations)+    poke ((p `plusPtr` 144 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationVertexOutput))+    poke ((p `plusPtr` 148 :: Ptr Bool32)) (boolToBool32 (prefersLocalInvocationPrimitiveOutput))+    poke ((p `plusPtr` 152 :: Ptr Bool32)) (boolToBool32 (prefersCompactVertexOutput))+    poke ((p `plusPtr` 156 :: Ptr Bool32)) (boolToBool32 (prefersCompactPrimitiveOutput))+    f+  cStructSize = 160+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    let pMaxTaskWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxTaskWorkGroupCount' :: Ptr Word32) (e0)+        poke (pMaxTaskWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxTaskWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 32 :: Ptr Word32)) (zero)+    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+    let pMaxMeshWorkGroupCount' = lowerArrayPtr ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxMeshWorkGroupCount' :: Ptr Word32) (e0)+        poke (pMaxMeshWorkGroupCount' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxMeshWorkGroupCount' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)+    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 92 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 96 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 100 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 104 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 108 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 112 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 116 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 120 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 124 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 128 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 132 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 136 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 140 :: Ptr Word32)) (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))+    f++instance FromCStruct PhysicalDeviceMeshShaderPropertiesEXT where+  peekCStruct p = do+    maxTaskWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    let pmaxTaskWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 20 :: Ptr (FixedArray 3 Word32)))+    maxTaskWorkGroupCount0 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))+    maxTaskWorkGroupCount1 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))+    maxTaskWorkGroupCount2 <- peek @Word32 ((pmaxTaskWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))+    maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+    let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 36 :: Ptr (FixedArray 3 Word32)))+    maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+    maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+    maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+    maxTaskPayloadSize <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    maxTaskSharedMemorySize <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+    maxTaskPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+    maxMeshWorkGroupTotalCount <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+    let pmaxMeshWorkGroupCount = lowerArrayPtr @Word32 ((p `plusPtr` 64 :: Ptr (FixedArray 3 Word32)))+    maxMeshWorkGroupCount0 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 0 :: Ptr Word32))+    maxMeshWorkGroupCount1 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 4 :: Ptr Word32))+    maxMeshWorkGroupCount2 <- peek @Word32 ((pmaxMeshWorkGroupCount `advancePtrBytes` 8 :: Ptr Word32))+    maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))+    let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 80 :: Ptr (FixedArray 3 Word32)))+    maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+    maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+    maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+    maxMeshSharedMemorySize <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))+    maxMeshPayloadAndSharedMemorySize <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))+    maxMeshOutputMemorySize <- peek @Word32 ((p `plusPtr` 100 :: Ptr Word32))+    maxMeshPayloadAndOutputMemorySize <- peek @Word32 ((p `plusPtr` 104 :: Ptr Word32))+    maxMeshOutputComponents <- peek @Word32 ((p `plusPtr` 108 :: Ptr Word32))+    maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 112 :: Ptr Word32))+    maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 116 :: Ptr Word32))+    maxMeshOutputLayers <- peek @Word32 ((p `plusPtr` 120 :: Ptr Word32))+    maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 124 :: Ptr Word32))+    meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 128 :: Ptr Word32))+    meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 132 :: Ptr Word32))+    maxPreferredTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 136 :: Ptr Word32))+    maxPreferredMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 140 :: Ptr Word32))+    prefersLocalInvocationVertexOutput <- peek @Bool32 ((p `plusPtr` 144 :: Ptr Bool32))+    prefersLocalInvocationPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 148 :: Ptr Bool32))+    prefersCompactVertexOutput <- peek @Bool32 ((p `plusPtr` 152 :: Ptr Bool32))+    prefersCompactPrimitiveOutput <- peek @Bool32 ((p `plusPtr` 156 :: Ptr Bool32))+    pure $ PhysicalDeviceMeshShaderPropertiesEXT+             maxTaskWorkGroupTotalCount+             (( maxTaskWorkGroupCount0+              , maxTaskWorkGroupCount1+              , maxTaskWorkGroupCount2 ))+             maxTaskWorkGroupInvocations+             (( maxTaskWorkGroupSize0+              , maxTaskWorkGroupSize1+              , maxTaskWorkGroupSize2 ))+             maxTaskPayloadSize+             maxTaskSharedMemorySize+             maxTaskPayloadAndSharedMemorySize+             maxMeshWorkGroupTotalCount+             (( maxMeshWorkGroupCount0+              , maxMeshWorkGroupCount1+              , maxMeshWorkGroupCount2 ))+             maxMeshWorkGroupInvocations+             (( maxMeshWorkGroupSize0+              , maxMeshWorkGroupSize1+              , maxMeshWorkGroupSize2 ))+             maxMeshSharedMemorySize+             maxMeshPayloadAndSharedMemorySize+             maxMeshOutputMemorySize+             maxMeshPayloadAndOutputMemorySize+             maxMeshOutputComponents+             maxMeshOutputVertices+             maxMeshOutputPrimitives+             maxMeshOutputLayers+             maxMeshMultiviewViewCount+             meshOutputPerVertexGranularity+             meshOutputPerPrimitiveGranularity+             maxPreferredTaskWorkGroupInvocations+             maxPreferredMeshWorkGroupInvocations+             (bool32ToBool prefersLocalInvocationVertexOutput)+             (bool32ToBool prefersLocalInvocationPrimitiveOutput)+             (bool32ToBool prefersCompactVertexOutput)+             (bool32ToBool prefersCompactPrimitiveOutput)  instance Storable PhysicalDeviceMeshShaderPropertiesEXT where   sizeOf ~_ = 160
src/Vulkan/Extensions/VK_EXT_metal_objects.hs view
@@ -329,7 +329,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_metal_objects VK_EXT_metal_objects>, -- 'Vulkan.Core10.Handles.Device', 'ExportMetalObjectsInfoEXT' exportMetalObjectsEXT :: forall a io-                       . (Extendss ExportMetalObjectsInfoEXT a, PokeChain a, PeekChain a, MonadIO io)+                       . ( Extendss ExportMetalObjectsInfoEXT a+                         , PokeChain a+                         , PeekChain a+                         , MonadIO io )                       => -- | @device@ is the device that created the Vulkan objects.                          --                          -- #VUID-vkExportMetalObjectsEXT-device-parameter# @device@ /must/ be a@@ -342,7 +345,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkExportMetalObjectsEXT is null" Nothing Nothing   let vkExportMetalObjectsEXT' = mkVkExportMetalObjectsEXT vkExportMetalObjectsEXTPtr   pPMetalObjectsInfo <- ContT (withZeroCStruct @(ExportMetalObjectsInfoEXT _))-  lift $ traceAroundEvent "vkExportMetalObjectsEXT" (vkExportMetalObjectsEXT' (deviceHandle (device)) (forgetExtensions (pPMetalObjectsInfo)))+  lift $ traceAroundEvent "vkExportMetalObjectsEXT" (vkExportMetalObjectsEXT'+                                                       (deviceHandle (device))+                                                       (forgetExtensions (pPMetalObjectsInfo)))   pMetalObjectsInfo <- lift $ peekCStruct @(ExportMetalObjectsInfoEXT _) pPMetalObjectsInfo   pure $ (pMetalObjectsInfo) @@ -593,7 +598,8 @@     | Just Refl <- eqT @e @ExportMetalDeviceInfoEXT = Just f     | otherwise = Nothing -instance (Extendss ExportMetalObjectsInfoEXT es, PokeChain es) => ToCStruct (ExportMetalObjectsInfoEXT es) where+instance ( Extendss ExportMetalObjectsInfoEXT es+         , PokeChain es ) => ToCStruct (ExportMetalObjectsInfoEXT es) where   withCStruct x f = allocaBytes 16 $ \p -> pokeCStruct p x (f p)   pokeCStruct p ExportMetalObjectsInfoEXT{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT)@@ -608,7 +614,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss ExportMetalObjectsInfoEXT es, PeekChain es) => FromCStruct (ExportMetalObjectsInfoEXT es) where+instance ( Extendss ExportMetalObjectsInfoEXT es+         , PeekChain es ) => FromCStruct (ExportMetalObjectsInfoEXT es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -1343,22 +1350,27 @@  -- | 'EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT' indicates a Metal -- @MTLDevice@ may be exported.-pattern EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT        = ExportMetalObjectTypeFlagBitsEXT 0x00000001+pattern EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000001+ -- | 'EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT' indicates a Metal -- @MTLCommandQueue@ may be exported. pattern EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000002+ -- | 'EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT' indicates a Metal -- @MTLBuffer@ may be exported.-pattern EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT        = ExportMetalObjectTypeFlagBitsEXT 0x00000004+pattern EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000004+ -- | 'EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT' indicates a Metal -- @MTLTexture@ may be exported.-pattern EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT       = ExportMetalObjectTypeFlagBitsEXT 0x00000008+pattern EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000008+ -- | 'EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT' indicates a Metal -- @IOSurface@ may be exported.-pattern EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT     = ExportMetalObjectTypeFlagBitsEXT 0x00000010+pattern EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000010+ -- | 'EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT' indicates a Metal -- @MTLSharedEvent@ may be exported.-pattern EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT  = ExportMetalObjectTypeFlagBitsEXT 0x00000020+pattern EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = ExportMetalObjectTypeFlagBitsEXT 0x00000020  conNameExportMetalObjectTypeFlagBitsEXT :: String conNameExportMetalObjectTypeFlagBitsEXT = "ExportMetalObjectTypeFlagBitsEXT"@@ -1368,27 +1380,48 @@  showTableExportMetalObjectTypeFlagBitsEXT :: [(ExportMetalObjectTypeFlagBitsEXT, String)] showTableExportMetalObjectTypeFlagBitsEXT =-  [ (EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT       , "DEVICE_BIT_EXT")-  , (EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT, "COMMAND_QUEUE_BIT_EXT")-  , (EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT       , "BUFFER_BIT_EXT")-  , (EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT      , "TEXTURE_BIT_EXT")-  , (EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT    , "IOSURFACE_BIT_EXT")-  , (EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT , "SHARED_EVENT_BIT_EXT")+  [+    ( EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT+    , "DEVICE_BIT_EXT"+    )+  ,+    ( EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT+    , "COMMAND_QUEUE_BIT_EXT"+    )+  ,+    ( EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT+    , "BUFFER_BIT_EXT"+    )+  ,+    ( EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT+    , "TEXTURE_BIT_EXT"+    )+  ,+    ( EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT+    , "IOSURFACE_BIT_EXT"+    )+  ,+    ( EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT+    , "SHARED_EVENT_BIT_EXT"+    )   ]  instance Show ExportMetalObjectTypeFlagBitsEXT where-  showsPrec = enumShowsPrec enumPrefixExportMetalObjectTypeFlagBitsEXT-                            showTableExportMetalObjectTypeFlagBitsEXT-                            conNameExportMetalObjectTypeFlagBitsEXT-                            (\(ExportMetalObjectTypeFlagBitsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExportMetalObjectTypeFlagBitsEXT+      showTableExportMetalObjectTypeFlagBitsEXT+      conNameExportMetalObjectTypeFlagBitsEXT+      (\(ExportMetalObjectTypeFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExportMetalObjectTypeFlagBitsEXT where-  readPrec = enumReadPrec enumPrefixExportMetalObjectTypeFlagBitsEXT-                          showTableExportMetalObjectTypeFlagBitsEXT-                          conNameExportMetalObjectTypeFlagBitsEXT-                          ExportMetalObjectTypeFlagBitsEXT-+  readPrec =+    enumReadPrec+      enumPrefixExportMetalObjectTypeFlagBitsEXT+      showTableExportMetalObjectTypeFlagBitsEXT+      conNameExportMetalObjectTypeFlagBitsEXT+      ExportMetalObjectTypeFlagBitsEXT  type EXT_METAL_OBJECTS_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_metal_objects.hs-boot view
@@ -264,10 +264,12 @@ type role ExportMetalObjectsInfoEXT nominal data ExportMetalObjectsInfoEXT (es :: [Type]) -instance (Extendss ExportMetalObjectsInfoEXT es, PokeChain es) => ToCStruct (ExportMetalObjectsInfoEXT es)+instance ( Extendss ExportMetalObjectsInfoEXT es+         , PokeChain es ) => ToCStruct (ExportMetalObjectsInfoEXT es) instance Show (Chain es) => Show (ExportMetalObjectsInfoEXT es) -instance (Extendss ExportMetalObjectsInfoEXT es, PeekChain es) => FromCStruct (ExportMetalObjectsInfoEXT es)+instance ( Extendss ExportMetalObjectsInfoEXT es+         , PeekChain es ) => FromCStruct (ExportMetalObjectsInfoEXT es)   data ExportMetalSharedEventInfoEXT
src/Vulkan/Extensions/VK_EXT_metal_surface.hs view
@@ -229,7 +229,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateMetalSurfaceEXT" (vkCreateMetalSurfaceEXT' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateMetalSurfaceEXT" (vkCreateMetalSurfaceEXT'+                                                            (instanceHandle (instance'))+                                                            pCreateInfo+                                                            pAllocator+                                                            (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -311,8 +315,6 @@ newtype MetalSurfaceCreateFlagsEXT = MetalSurfaceCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameMetalSurfaceCreateFlagsEXT :: String conNameMetalSurfaceCreateFlagsEXT = "MetalSurfaceCreateFlagsEXT" @@ -323,18 +325,21 @@ showTableMetalSurfaceCreateFlagsEXT = []  instance Show MetalSurfaceCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixMetalSurfaceCreateFlagsEXT-                            showTableMetalSurfaceCreateFlagsEXT-                            conNameMetalSurfaceCreateFlagsEXT-                            (\(MetalSurfaceCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixMetalSurfaceCreateFlagsEXT+      showTableMetalSurfaceCreateFlagsEXT+      conNameMetalSurfaceCreateFlagsEXT+      (\(MetalSurfaceCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read MetalSurfaceCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixMetalSurfaceCreateFlagsEXT-                          showTableMetalSurfaceCreateFlagsEXT-                          conNameMetalSurfaceCreateFlagsEXT-                          MetalSurfaceCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixMetalSurfaceCreateFlagsEXT+      showTableMetalSurfaceCreateFlagsEXT+      conNameMetalSurfaceCreateFlagsEXT+      MetalSurfaceCreateFlagsEXT  type EXT_METAL_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -574,6 +574,20 @@ --     the current subpass /must/ be bound to the pipeline via a descriptor --     set --+-- -   #VUID-vkCmdDrawMultiEXT-OpTypeImage-07468# If any shader executed by+--     this pipeline accesses an @OpTypeImage@ variable with a @Dim@+--     operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawMultiEXT-None-07469# Input attachment views accessed+--     in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+-- -- -   #VUID-vkCmdDrawMultiEXT-None-06537# Memory backing image --     subresources used as attachments in the current render pass /must/ --     not be written in any way other than as an attachment by this@@ -1084,6 +1098,360 @@ --     created with a non-zero value in --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- -   #VUID-vkCmdDrawMultiEXT-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMultiEXT-rasterizationSamples-07471# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMultiEXT-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMultiEXT-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07475# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMultiEXT-firstAttachment-07476# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMultiEXT-firstAttachment-07477# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMultiEXT-firstAttachment-07478# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMultiEXT-firstAttachment-07479# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMultiEXT-advancedBlendMaxColorAttachments-07480# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07482# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07483# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07484# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMultiEXT-sampleLocationsEnable-07485# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07486# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-07487# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMultiEXT-coverageModulationTableEnable-07488# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMultiEXT-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMultiEXT-coverageToColorEnable-07490# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMultiEXT-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMultiEXT-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMultiEXT-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMultiEXT-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMultiEXT-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMultiEXT-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMultiEXT-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMultiEXT-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMultiEXT-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+-- -- -   #VUID-vkCmdDrawMultiEXT-stage-07073# If the currently bound pipeline --     was created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -1137,13 +1505,13 @@ --     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-vkCmdDrawMultiEXT-primitiveTopology-03420# If the bound---     graphics pipeline state was created with the+-- -   #VUID-vkCmdDrawMultiEXT-dynamicPrimitiveTopologyUnrestricted-07500#+--     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+--     dynamic state enabled and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to --     '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>@@ -1279,14 +1647,24 @@                    -- @pVertexInfo@.                    ("stride" ::: Word32)                 -> io ()-cmdDrawMultiEXT commandBuffer vertexInfo instanceCount firstInstance stride = liftIO . evalContT $ do+cmdDrawMultiEXT commandBuffer+                  vertexInfo+                  instanceCount+                  firstInstance+                  stride = liftIO . evalContT $ do   let vkCmdDrawMultiEXTPtr = pVkCmdDrawMultiEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdDrawMultiEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMultiEXT is null" Nothing Nothing   let vkCmdDrawMultiEXT' = mkVkCmdDrawMultiEXT vkCmdDrawMultiEXTPtr   pPVertexInfo <- ContT $ allocaBytes @MultiDrawInfoEXT ((Data.Vector.length (vertexInfo)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexInfo `plusPtr` (8 * (i)) :: Ptr MultiDrawInfoEXT) (e)) (vertexInfo)-  lift $ traceAroundEvent "vkCmdDrawMultiEXT" (vkCmdDrawMultiEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (vertexInfo)) :: Word32)) (pPVertexInfo) (instanceCount) (firstInstance) (stride))+  lift $ traceAroundEvent "vkCmdDrawMultiEXT" (vkCmdDrawMultiEXT'+                                                 (commandBufferHandle (commandBuffer))+                                                 ((fromIntegral (Data.Vector.length $ (vertexInfo)) :: Word32))+                                                 (pPVertexInfo)+                                                 (instanceCount)+                                                 (firstInstance)+                                                 (stride))   pure $ ()  @@ -1685,6 +2063,20 @@ --     used by the current subpass /must/ be bound to the pipeline via a --     descriptor set --+-- -   #VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+-- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-06537# Memory backing image --     subresources used as attachments in the current render pass /must/ --     not be written in any way other than as an attachment by this@@ -2195,6 +2587,360 @@ --     created with a non-zero value in --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pColorBlendEnables-07470# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07471# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07476# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07477# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07478# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-firstAttachment-07479# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07482# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07483# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07484# If the+--     bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07485# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07486# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-07487# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-coverageToColorEnable-07490# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMultiIndexedEXT-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMultiIndexedEXT-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07495# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+-- -- -   #VUID-vkCmdDrawMultiIndexedEXT-stage-07073# If the currently bound --     pipeline was created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -2248,13 +2994,13 @@ --     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-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420# If the bound---     graphics pipeline state was created with the+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicPrimitiveTopologyUnrestricted-07500#+--     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+--     dynamic state enabled and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to --     '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>@@ -2410,7 +3156,12 @@                           -- 'MultiDrawIndexedInfoEXT'::@offset@ is ignored.                           ("vertexOffset" ::: Maybe Int32)                        -> io ()-cmdDrawMultiIndexedEXT commandBuffer indexInfo instanceCount firstInstance stride vertexOffset = liftIO . evalContT $ do+cmdDrawMultiIndexedEXT commandBuffer+                         indexInfo+                         instanceCount+                         firstInstance+                         stride+                         vertexOffset = liftIO . evalContT $ do   let vkCmdDrawMultiIndexedEXTPtr = pVkCmdDrawMultiIndexedEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdDrawMultiIndexedEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMultiIndexedEXT is null" Nothing Nothing@@ -2420,7 +3171,14 @@   pVertexOffset <- case (vertexOffset) of     Nothing -> pure nullPtr     Just j -> ContT $ with (j)-  lift $ traceAroundEvent "vkCmdDrawMultiIndexedEXT" (vkCmdDrawMultiIndexedEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (indexInfo)) :: Word32)) (pPIndexInfo) (instanceCount) (firstInstance) (stride) pVertexOffset)+  lift $ traceAroundEvent "vkCmdDrawMultiIndexedEXT" (vkCmdDrawMultiIndexedEXT'+                                                        (commandBufferHandle (commandBuffer))+                                                        ((fromIntegral (Data.Vector.length $ (indexInfo)) :: Word32))+                                                        (pPIndexInfo)+                                                        (instanceCount)+                                                        (firstInstance)+                                                        (stride)+                                                        pVertexOffset)   pure $ ()  
src/Vulkan/Extensions/VK_EXT_multisampled_render_to_single_sampled.hs view
@@ -419,7 +419,8 @@     multisampledRenderToSingleSampledEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     rasterizationSamples <- peek @SampleCountFlagBits ((p `plusPtr` 20 :: Ptr SampleCountFlagBits))     pure $ MultisampledRenderToSingleSampledInfoEXT-             (bool32ToBool multisampledRenderToSingleSampledEnable) rasterizationSamples+             (bool32ToBool multisampledRenderToSingleSampledEnable)+             rasterizationSamples  instance Storable MultisampledRenderToSingleSampledInfoEXT where   sizeOf ~_ = 24
+ src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs view
@@ -0,0 +1,3949 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_opacity_micromap - device extension+--+-- == VK_EXT_opacity_micromap+--+-- [__Name String__]+--     @VK_EXT_opacity_micromap@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     397+--+-- [__Revision__]+--     2+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_acceleration_structure@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_synchronization2@ to be enabled for any+--         device-level functionality+--+-- [__Contact__]+--+--     -   Christoph Kubisch+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_opacity_micromap] @pixeljetstream%0A*Here describe the issue or question you have about the VK_EXT_opacity_micromap extension* >+--+--     -   Eric Werness+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_opacity_micromap.adoc VK_EXT_opacity_micromap>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-08-24+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_ray_tracing_opacity_micromap.html SPV_EXT_ray_tracing_opacity_micromap>+--+--     -   This extension provides API support for+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/EXT/GLSL_EXT_ray_tracing_opacity_micromap.txt GLSL_EXT_ray_tracing_opacity_micromap>+--+-- [__Contributors__]+--+--     -   Christoph Kubisch, NVIDIA+--+--     -   Eric Werness, NVIDIA+--+--     -   Josh Barczak, Intel+--+--     -   Stu Smith, AMD+--+-- == Description+--+-- When adding adding transparency to a ray traced scene, an application+-- can choose between further tessellating the geometry or using an any hit+-- shader to allow the ray through specific parts of the geometry. These+-- options have the downside of either significantly increasing memory+-- consumption or adding runtime overhead to run shader code in the middle+-- of traversal, respectively.+--+-- This extension adds the ability to add an /opacity micromap/ to geometry+-- when building an acceleration structure. The opacity micromap compactly+-- encodes opacity information which can be read by the implementation to+-- mark parts of triangles as opaque or transparent. The format is+-- externally visible to allow the application to compress its internal+-- geometry and surface representations into the compressed format ahead of+-- time. The compressed format subdivides each triangle into a set of+-- subtriangles, each of which can be assigned either two or four opacity+-- values. These opacity values can control if a ray hitting that+-- subtriangle is treated as an opaque hit, complete miss, or possible hit,+-- depending on the controls described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap Ray Opacity Micromap>.+--+-- This extension provides:+--+-- -   a 'Vulkan.Extensions.Handles.MicromapEXT' structure to store the+--     micromap,+--+-- -   functions similar to acceleration structure build functions to build+--     the opacity micromap array, and+--+-- -   a structure to extend+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'+--     to attach a micromap to the geometry of the acceleration structure.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.MicromapEXT'+--+-- == New Commands+--+-- -   'buildMicromapsEXT'+--+-- -   'cmdBuildMicromapsEXT'+--+-- -   'cmdCopyMemoryToMicromapEXT'+--+-- -   'cmdCopyMicromapEXT'+--+-- -   'cmdCopyMicromapToMemoryEXT'+--+-- -   'cmdWriteMicromapsPropertiesEXT'+--+-- -   'copyMemoryToMicromapEXT'+--+-- -   'copyMicromapEXT'+--+-- -   'copyMicromapToMemoryEXT'+--+-- -   'createMicromapEXT'+--+-- -   'destroyMicromapEXT'+--+-- -   'getDeviceMicromapCompatibilityEXT'+--+-- -   'getMicromapBuildSizesEXT'+--+-- -   'writeMicromapsPropertiesEXT'+--+-- == New Structures+--+-- -   'CopyMemoryToMicromapInfoEXT'+--+-- -   'CopyMicromapInfoEXT'+--+-- -   'CopyMicromapToMemoryInfoEXT'+--+-- -   'MicromapBuildInfoEXT'+--+-- -   'MicromapBuildSizesInfoEXT'+--+-- -   'MicromapCreateInfoEXT'+--+-- -   'MicromapTriangleEXT'+--+-- -   'MicromapUsageEXT'+--+-- -   'MicromapVersionInfoEXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR':+--+--     -   'AccelerationStructureTrianglesOpacityMicromapEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceOpacityMicromapFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceOpacityMicromapPropertiesEXT'+--+-- == New Enums+--+-- -   'BuildMicromapFlagBitsEXT'+--+-- -   'BuildMicromapModeEXT'+--+-- -   'CopyMicromapModeEXT'+--+-- -   'MicromapCreateFlagBitsEXT'+--+-- -   'MicromapTypeEXT'+--+-- -   'OpacityMicromapFormatEXT'+--+-- -   'OpacityMicromapSpecialIndexEXT'+--+-- == New Bitmasks+--+-- -   'BuildMicromapFlagsEXT'+--+-- -   'MicromapCreateFlagsEXT'+--+-- == New Enum Constants+--+-- -   'EXT_OPACITY_MICROMAP_EXTENSION_NAME'+--+-- -   'EXT_OPACITY_MICROMAP_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT'+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT'+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.GeometryInstanceFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT'+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_MICROMAP_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.QueryType.QueryType':+--+--     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'+--+--     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT'+--+-- == Reference code+--+-- > uint32_t BarycentricsToSpaceFillingCurveIndex(float u, float v, uint32_t level)+-- > {+-- >     u = clamp(u, 0.0f, 1.0f);+-- >     v = clamp(v, 0.0f, 1.0f);+-- >+-- >     uint32_t iu, iv, iw;+-- >+-- >     // Quantize barycentric coordinates+-- >     float fu = u * (1u << level);+-- >     float fv = v * (1u << level);+-- >+-- >     iu = (uint32_t)fu;+-- >     iv = (uint32_t)fv;+-- >+-- >     float uf = fu - float(iu);+-- >     float vf = fv - float(iv);+-- >+-- >     if (iu >= (1u << level)) iu = (1u << level) - 1u;+-- >     if (iv >= (1u << level)) iv = (1u << level) - 1u;+-- >+-- >     uint32_t iuv = iu + iv;+-- >+-- >     if (iuv >= (1u << level))+-- >         iu -= iuv - (1u << level) + 1u;+-- >+-- >     iw = ~(iu + iv);+-- >+-- >     if (uf + vf >= 1.0f && iuv < (1u link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html# level) - 1u) --iw;+-- >+-- >     uint32_t b0 = ~(iu ^ iw);+-- >     b0 &= ((1u << level) - 1u);+-- >     uint32_t t = (iu ^ iv) & b0;+-- >+-- >     uint32_t f = t;+-- >     f ^= f [^] 1u;+-- >     f ^= f >> 2u;+-- >     f ^= f >> 4u;+-- >     f ^= f >> 8u;+-- >     uint32_t b1 = ((f ^ iu) & ~b0) | t;+-- >+-- >     // Interleave bits+-- >     b0 = (b0 | (b0 << 8u)) & 0x00ff00ffu;+-- >     b0 = (b0 | (b0 << 4u)) & 0x0f0f0f0fu;+-- >     b0 = (b0 | (b0 << 2u)) & 0x33333333u;+-- >     b0 = (b0 | (b0 << 1u)) & 0x55555555u;+-- >     b1 = (b1 | (b1 << 8u)) & 0x00ff00ffu;+-- >     b1 = (b1 | (b1 << 4u)) & 0x0f0f0f0fu;+-- >     b1 = (b1 | (b1 << 2u)) & 0x33333333u;+-- >     b1 = (b1 | (b1 << 1u)) & 0x55555555u;+-- >+-- >     return b0 | (b1 << 1u);+-- > }+--+-- == Issues+--+-- (1) Is the build actually similar to an acceleration structure build?+--+-- -   Resolved: The build should be much lighter-weight than an+--     acceleration structure build, but the infrastructure is similar+--     enough that it makes sense to keep the concepts compatible.+--+-- (2) Why does VkMicromapUsageEXT not have type\/pNext?+--+-- -   Resolved: There can be a very large number of these structures, so+--     doubling the size of these can be significant memory consumption.+--     Also, an application may be loading these directly from a file which+--     is more compatible with it being a flat structure. The including+--     structures are extensible and are probably a more suitable place to+--     add extensibility.+--+-- (3) Why is there a SPIR-V extension?+--+-- -   Resolved: There is a ray flag. To be consistent with how the+--     existing ray tracing extensions work that ray flag needs its own+--     extension.+--+-- (4) Should there be indirect micromap build?+--+-- -   Resolved: Not for now. There is more in-depth usage metadata+--     required and it seems less likely that something like a GPU culling+--     system would need to change the counts for a micromap.+--+-- (5) Should micromaps have a micromap device address?+--+-- -   Resolved: There is no need right now (can just use the handle) but+--     that is a bit different from acceleration structures, though the two+--     are not completely parallel in their usage.+--+-- (6) Why are the alignment requirements defined as a mix of hardcoded+-- values and caps?+--+-- -   Resolved: This is most parallel with the definition of+--     @VK_KHR_acceleration_structure@ and maintaining commonality makes it+--     easier for applications to share memory.+--+-- == Version History+--+-- -   Revision 2, 2022-06-22 (Eric Werness)+--+--     -   EXTify and clean up for discussion+--+-- -   Revision 1, 2022-01-01 (Eric Werness)+--+--     -   Initial revision+--+-- == See Also+--+-- 'AccelerationStructureTrianglesOpacityMicromapEXT',+-- 'BuildMicromapFlagBitsEXT', 'BuildMicromapFlagsEXT',+-- 'BuildMicromapModeEXT', 'CopyMemoryToMicromapInfoEXT',+-- 'CopyMicromapInfoEXT', 'CopyMicromapModeEXT',+-- 'CopyMicromapToMemoryInfoEXT', 'MicromapBuildInfoEXT',+-- 'MicromapBuildSizesInfoEXT', 'MicromapCreateFlagBitsEXT',+-- 'MicromapCreateFlagsEXT', 'MicromapCreateInfoEXT',+-- 'Vulkan.Extensions.Handles.MicromapEXT', 'MicromapTriangleEXT',+-- 'MicromapTypeEXT', 'MicromapUsageEXT', 'MicromapVersionInfoEXT',+-- 'OpacityMicromapFormatEXT', 'OpacityMicromapSpecialIndexEXT',+-- 'PhysicalDeviceOpacityMicromapFeaturesEXT',+-- 'PhysicalDeviceOpacityMicromapPropertiesEXT', 'buildMicromapsEXT',+-- 'cmdBuildMicromapsEXT', 'cmdCopyMemoryToMicromapEXT',+-- 'cmdCopyMicromapEXT', 'cmdCopyMicromapToMemoryEXT',+-- 'cmdWriteMicromapsPropertiesEXT', 'copyMemoryToMicromapEXT',+-- 'copyMicromapEXT', 'copyMicromapToMemoryEXT', 'createMicromapEXT',+-- 'destroyMicromapEXT', 'getDeviceMicromapCompatibilityEXT',+-- 'getMicromapBuildSizesEXT', 'writeMicromapsPropertiesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_opacity_micromap 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_opacity_micromap  ( createMicromapEXT+                                                  , withMicromapEXT+                                                  , cmdBuildMicromapsEXT+                                                  , buildMicromapsEXT+                                                  , destroyMicromapEXT+                                                  , cmdCopyMicromapEXT+                                                  , copyMicromapEXT+                                                  , cmdCopyMicromapToMemoryEXT+                                                  , copyMicromapToMemoryEXT+                                                  , cmdCopyMemoryToMicromapEXT+                                                  , copyMemoryToMicromapEXT+                                                  , cmdWriteMicromapsPropertiesEXT+                                                  , writeMicromapsPropertiesEXT+                                                  , getDeviceMicromapCompatibilityEXT+                                                  , getMicromapBuildSizesEXT+                                                  , MicromapBuildInfoEXT(..)+                                                  , MicromapCreateInfoEXT(..)+                                                  , MicromapVersionInfoEXT(..)+                                                  , CopyMicromapInfoEXT(..)+                                                  , CopyMicromapToMemoryInfoEXT(..)+                                                  , CopyMemoryToMicromapInfoEXT(..)+                                                  , MicromapBuildSizesInfoEXT(..)+                                                  , MicromapUsageEXT(..)+                                                  , MicromapTriangleEXT(..)+                                                  , PhysicalDeviceOpacityMicromapFeaturesEXT(..)+                                                  , PhysicalDeviceOpacityMicromapPropertiesEXT(..)+                                                  , AccelerationStructureTrianglesOpacityMicromapEXT(..)+                                                  , MicromapTypeEXT( MICROMAP_TYPE_OPACITY_MICROMAP_EXT+                                                                   , ..+                                                                   )+                                                  , BuildMicromapFlagsEXT+                                                  , BuildMicromapFlagBitsEXT( BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT+                                                                            , BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT+                                                                            , BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT+                                                                            , ..+                                                                            )+                                                  , MicromapCreateFlagsEXT+                                                  , MicromapCreateFlagBitsEXT( MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT+                                                                             , ..+                                                                             )+                                                  , CopyMicromapModeEXT( COPY_MICROMAP_MODE_CLONE_EXT+                                                                       , COPY_MICROMAP_MODE_SERIALIZE_EXT+                                                                       , COPY_MICROMAP_MODE_DESERIALIZE_EXT+                                                                       , COPY_MICROMAP_MODE_COMPACT_EXT+                                                                       , ..+                                                                       )+                                                  , BuildMicromapModeEXT( BUILD_MICROMAP_MODE_BUILD_EXT+                                                                        , ..+                                                                        )+                                                  , OpacityMicromapFormatEXT( OPACITY_MICROMAP_FORMAT_2_STATE_EXT+                                                                            , OPACITY_MICROMAP_FORMAT_4_STATE_EXT+                                                                            , ..+                                                                            )+                                                  , OpacityMicromapSpecialIndexEXT( OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT+                                                                                  , OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT+                                                                                  , OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT+                                                                                  , OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT+                                                                                  , ..+                                                                                  )+                                                  , EXT_OPACITY_MICROMAP_SPEC_VERSION+                                                  , pattern EXT_OPACITY_MICROMAP_SPEC_VERSION+                                                  , EXT_OPACITY_MICROMAP_EXTENSION_NAME+                                                  , pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME+                                                  , DeferredOperationKHR(..)+                                                  , MicromapEXT(..)+                                                  , DeviceOrHostAddressKHR(..)+                                                  , DeviceOrHostAddressConstKHR(..)+                                                  , GeometryInstanceFlagBitsKHR(..)+                                                  , GeometryInstanceFlagsKHR+                                                  , BuildAccelerationStructureFlagBitsKHR(..)+                                                  , BuildAccelerationStructureFlagsKHR+                                                  , AccelerationStructureBuildTypeKHR(..)+                                                  , AccelerationStructureCompatibilityKHR(..)+                                                  ) 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 (castPtr)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showString)+import GHC.Show (showsPrec)+import Numeric (showHex)+import qualified Data.ByteString (length)+import Data.ByteString (packCStringLen)+import Data.ByteString.Unsafe (unsafeUseAsCString)+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 Foreign.C.Types (CSize(..))+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero)+import 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.C.Types (CSize)+import Foreign.C.Types (CSize(CSize))+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Data.Int (Int32)+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word16)+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Word (Word8)+import Data.ByteString (ByteString)+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.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR)+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR)+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR(..))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.FundamentalTypes (Bool32)+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.Extensions.Handles (DeferredOperationKHR)+import Vulkan.Extensions.Handles (DeferredOperationKHR(..))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Core10.FundamentalTypes (DeviceAddress)+import Vulkan.Dynamic (DeviceCmds(pVkBuildMicromapsEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdBuildMicromapsEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMemoryToMicromapEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMicromapEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyMicromapToMemoryEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCmdWriteMicromapsPropertiesEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCopyMemoryToMicromapEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCopyMicromapEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCopyMicromapToMemoryEXT))+import Vulkan.Dynamic (DeviceCmds(pVkCreateMicromapEXT))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyMicromapEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetDeviceMicromapCompatibilityEXT))+import Vulkan.Dynamic (DeviceCmds(pVkGetMicromapBuildSizesEXT))+import Vulkan.Dynamic (DeviceCmds(pVkWriteMicromapsPropertiesEXT))+import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressConstKHR)+import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressKHR)+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Enums.IndexType (IndexType)+import Vulkan.Extensions.Handles (MicromapEXT)+import Vulkan.Extensions.Handles (MicromapEXT(..))+import Vulkan.Core10.Handles (QueryPool)+import Vulkan.Core10.Handles (QueryPool(..))+import Vulkan.Core10.Enums.QueryType (QueryType)+import Vulkan.Core10.Enums.QueryType (QueryType(..))+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_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Core10.APIConstants (pattern UUID_SIZE)+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureBuildTypeKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (AccelerationStructureCompatibilityKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagBitsKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (BuildAccelerationStructureFlagsKHR)+import Vulkan.Extensions.Handles (DeferredOperationKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressConstKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (DeviceOrHostAddressKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryInstanceFlagBitsKHR(..))+import Vulkan.Extensions.VK_KHR_acceleration_structure (GeometryInstanceFlagsKHR)+import Vulkan.Extensions.Handles (MicromapEXT(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateMicromapEXT+  :: FunPtr (Ptr Device_T -> Ptr MicromapCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr MicromapEXT -> IO Result) -> Ptr Device_T -> Ptr MicromapCreateInfoEXT -> Ptr AllocationCallbacks -> Ptr MicromapEXT -> IO Result++-- | vkCreateMicromapEXT - Create a new micromap object+--+-- = Description+--+-- Similar to other objects in Vulkan, the micromap creation merely creates+-- an object with a specific “shape”. The type and quantity of geometry+-- that can be built into a micromap is determined by the parameters of+-- 'MicromapCreateInfoEXT'.+--+-- Populating the data in the object after allocating and binding memory is+-- done with commands such as 'cmdBuildMicromapsEXT', 'buildMicromapsEXT',+-- 'cmdCopyMicromapEXT', and 'copyMicromapEXT'.+--+-- The input buffers passed to micromap build commands will be referenced+-- by the implementation for the duration of the command. Micromaps /must/+-- be fully self-contained. The application /may/ re-use or free any memory+-- which was used by the command as an input or as scratch without+-- affecting the results of a subsequent acceleration structure build using+-- the micromap or traversal of that acceleration structure.+--+-- == Valid Usage+--+-- -   #VUID-vkCreateMicromapEXT-micromap-07430# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromap micromap>+--     feature /must/ be enabled+--+-- -   #VUID-vkCreateMicromapEXT-deviceAddress-07431# If+--     'MicromapCreateInfoEXT'::@deviceAddress@ is not zero, the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapCaptureReplay micromapCaptureReplay>+--     feature /must/ be enabled+--+-- -   #VUID-vkCreateMicromapEXT-device-07432# If @device@ was created with+--     multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCreateMicromapEXT-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCreateMicromapEXT-pCreateInfo-parameter# @pCreateInfo@+--     /must/ be a valid pointer to a valid 'MicromapCreateInfoEXT'+--     structure+--+-- -   #VUID-vkCreateMicromapEXT-pAllocator-parameter# If @pAllocator@ is+--     not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkCreateMicromapEXT-pMicromap-parameter# @pMicromap@ /must/ be+--     a valid pointer to a 'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'MicromapCreateInfoEXT',+-- 'Vulkan.Extensions.Handles.MicromapEXT'+createMicromapEXT :: forall io+                   . (MonadIO io)+                  => -- | @device@ is the logical device that creates the acceleration structure+                     -- object.+                     Device+                  -> -- | @pCreateInfo@ is a pointer to a 'MicromapCreateInfoEXT' structure+                     -- containing parameters affecting creation of the micromap.+                     MicromapCreateInfoEXT+                  -> -- | @pAllocator@ controls host memory allocation as described in the+                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                     -- chapter.+                     ("allocator" ::: Maybe AllocationCallbacks)+                  -> io (MicromapEXT)+createMicromapEXT device createInfo allocator = liftIO . evalContT $ do+  let vkCreateMicromapEXTPtr = pVkCreateMicromapEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCreateMicromapEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateMicromapEXT is null" Nothing Nothing+  let vkCreateMicromapEXT' = mkVkCreateMicromapEXT vkCreateMicromapEXTPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPMicromap <- ContT $ bracket (callocBytes @MicromapEXT 8) free+  r <- lift $ traceAroundEvent "vkCreateMicromapEXT" (vkCreateMicromapEXT'+                                                        (deviceHandle (device))+                                                        pCreateInfo+                                                        pAllocator+                                                        (pPMicromap))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pMicromap <- lift $ peek @MicromapEXT pPMicromap+  pure $ (pMicromap)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createMicromapEXT' and 'destroyMicromapEXT'+--+-- To ensure that 'destroyMicromapEXT' 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.+--+withMicromapEXT :: forall io r . MonadIO io => Device -> MicromapCreateInfoEXT -> Maybe AllocationCallbacks -> (io MicromapEXT -> (MicromapEXT -> io ()) -> r) -> r+withMicromapEXT device pCreateInfo pAllocator b =+  b (createMicromapEXT device pCreateInfo pAllocator)+    (\(o0) -> destroyMicromapEXT device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdBuildMicromapsEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MicromapBuildInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MicromapBuildInfoEXT -> IO ()++-- | vkCmdBuildMicromapsEXT - Build a micromap+--+-- = Description+--+-- The 'cmdBuildMicromapsEXT' command provides the ability to initiate+-- multiple micromaps builds, however there is no ordering or+-- synchronization implied between any of the individual micromap builds.+--+-- Note+--+-- This means that there /cannot/ be any memory aliasing between any+-- micromap memories or scratch memories being used by any of the builds.+--+-- Accesses to the micromap scratch buffers as identified by the+-- 'MicromapBuildInfoEXT'::@scratchData@ buffer device addresses /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- and an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- of 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT' or+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT'.+-- Similarly for accesses to 'MicromapBuildInfoEXT'::@dstMicromap@.+--+-- Accesses to other input buffers as identified by any used values of+-- 'MicromapBuildInfoEXT'::@data@ or+-- 'MicromapBuildInfoEXT'::@triangleArray@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- and an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- of 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_SHADER_READ_BIT'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07461# For each @pInfos@[i],+--     @dstMicromap@ /must/ have been created with a value of+--     'MicromapCreateInfoEXT'::@size@ greater than or equal to the memory+--     size required by the build operation, as returned by+--     'getMicromapBuildSizesEXT' with @pBuildInfo@ = @pInfos@[i]+--+-- -   #VUID-vkCmdBuildMicromapsEXT-mode-07462# The @mode@ member of each+--     element of @pInfos@ /must/ be a valid 'BuildMicromapModeEXT' value+--+-- -   #VUID-vkCmdBuildMicromapsEXT-dstMicromap-07463# The @dstMicromap@+--     member of any element of @pInfos@ /must/ be a valid+--     'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07464# For each element of+--     @pInfos@ its @type@ member /must/ match the value of+--     'MicromapCreateInfoEXT'::@type@ when its @dstMicromap@ was created+--+-- -   #VUID-vkCmdBuildMicromapsEXT-dstMicromap-07465# The range of memory+--     backing the @dstMicromap@ member of any element of @pInfos@ that is+--     accessed by this command /must/ not overlap the memory backing the+--     @dstMicromap@ member of any other element of @pInfos@, which is+--     accessed by this command+--+-- -   #VUID-vkCmdBuildMicromapsEXT-dstMicromap-07466# The range of memory+--     backing the @dstMicromap@ member of any element of @pInfos@ that is+--     accessed by this command /must/ not overlap the memory backing the+--     @scratchData@ member of any element of @pInfos@ (including the same+--     element), which is accessed by this command+--+-- -   #VUID-vkCmdBuildMicromapsEXT-scratchData-07467# The range of memory+--     backing the @scratchData@ member of any element of @pInfos@ that is+--     accessed by this command /must/ not overlap the memory backing the+--     @scratchData@ member of any other element of @pInfos@, which is+--     accessed by this command+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07508# For each element of+--     @pInfos@, the @buffer@ used to create its @dstMicromap@ member+--     /must/ be bound to device memory+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07509# If @pInfos@[i].@mode@ is+--     'BUILD_MICROMAP_MODE_BUILD_EXT', all addresses between+--     @pInfos@[i].@scratchData.deviceAddress@ and+--     @pInfos@[i].@scratchData.deviceAddress@ + N - 1 /must/ be in the+--     buffer device address range of the same buffer, where N is given by+--     the @buildScratchSize@ member of the 'MicromapBuildSizesInfoEXT'+--     structure returned from a call to 'getMicromapBuildSizesEXT' with an+--     identical 'MicromapBuildInfoEXT' structure and primitive count+--+-- -   #VUID-vkCmdBuildMicromapsEXT-data-07510# The buffers from which the+--     buffer device addresses for all of the @data@ and @triangleArray@+--     members of all @pInfos@[i] are queried /must/ have been created with+--     the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'+--     usage flag+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07511# For each element of+--     @pInfos@[i] the buffer from which the buffer device address+--     @pInfos@[i].@scratchData.deviceAddress@ is queried /must/ have been+--     created with+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_STORAGE_BUFFER_BIT'+--     usage flag+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07512# For each element of+--     @pInfos@, its @scratchData.deviceAddress@, @data.deviceAddress@, and+--     @triangleArray.deviceAddress@ members /must/ be valid device+--     addresses obtained from+--     'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.getBufferDeviceAddress'+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07513# For each element of+--     @pInfos@, if @scratchData.deviceAddress@, @data.deviceAddress@, or+--     @triangleArray.deviceAddress@ is the address of a non-sparse buffer+--     then it /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07514# For each element of+--     @pInfos@, its @scratchData.deviceAddress@ member /must/ be a+--     multiple of+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.PhysicalDeviceAccelerationStructurePropertiesKHR'::@minAccelerationStructureScratchOffsetAlignment@+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-07515# For each element of+--     @pInfos@, its @triangleArray.deviceAddress@ and @data.deviceAddress@+--     members /must/ be a multiple of @256@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdBuildMicromapsEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdBuildMicromapsEXT-pInfos-parameter# @pInfos@ /must/ be a+--     valid pointer to an array of @infoCount@ valid+--     'MicromapBuildInfoEXT' structures+--+-- -   #VUID-vkCmdBuildMicromapsEXT-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-vkCmdBuildMicromapsEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdBuildMicromapsEXT-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdBuildMicromapsEXT-videocoding# This command /must/ only+--     be called outside of a video coding scope+--+-- -   #VUID-vkCmdBuildMicromapsEXT-infoCount-arraylength# @infoCount@+--     /must/ be greater than @0@+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'MicromapBuildInfoEXT'+cmdBuildMicromapsEXT :: forall io+                      . (MonadIO io)+                     => -- | @commandBuffer@ is the command buffer into which the command will be+                        -- recorded.+                        CommandBuffer+                     -> -- | @pInfos@ is a pointer to an array of @infoCount@ 'MicromapBuildInfoEXT'+                        -- structures defining the data used to build each micromap.+                        ("infos" ::: Vector MicromapBuildInfoEXT)+                     -> io ()+cmdBuildMicromapsEXT commandBuffer infos = liftIO . evalContT $ do+  let vkCmdBuildMicromapsEXTPtr = pVkCmdBuildMicromapsEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdBuildMicromapsEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBuildMicromapsEXT is null" Nothing Nothing+  let vkCmdBuildMicromapsEXT' = mkVkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXTPtr+  pPInfos <- ContT $ allocaBytes @MicromapBuildInfoEXT ((Data.Vector.length (infos)) * 96)+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPInfos `plusPtr` (96 * (i)) :: Ptr MicromapBuildInfoEXT) (e) . ($ ())) (infos)+  lift $ traceAroundEvent "vkCmdBuildMicromapsEXT" (vkCmdBuildMicromapsEXT'+                                                      (commandBufferHandle (commandBuffer))+                                                      ((fromIntegral (Data.Vector.length $ (infos)) :: Word32))+                                                      (pPInfos))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkBuildMicromapsEXT+  :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Word32 -> Ptr MicromapBuildInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Word32 -> Ptr MicromapBuildInfoEXT -> IO Result++-- | vkBuildMicromapsEXT - Build a micromap on the host+--+-- = Description+--+-- This command fulfills the same task as 'cmdBuildMicromapsEXT' but is+-- executed by the host.+--+-- The 'buildMicromapsEXT' command provides the ability to initiate+-- multiple micromaps builds, however there is no ordering or+-- synchronization implied between any of the individual micromap builds.+--+-- Note+--+-- This means that there /cannot/ be any memory aliasing between any+-- micromap memories or scratch memories being used by any of the builds.+--+-- == Valid Usage+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07461# For each @pInfos@[i],+--     @dstMicromap@ /must/ have been created with a value of+--     'MicromapCreateInfoEXT'::@size@ greater than or equal to the memory+--     size required by the build operation, as returned by+--     'getMicromapBuildSizesEXT' with @pBuildInfo@ = @pInfos@[i]+--+-- -   #VUID-vkBuildMicromapsEXT-mode-07462# The @mode@ member of each+--     element of @pInfos@ /must/ be a valid 'BuildMicromapModeEXT' value+--+-- -   #VUID-vkBuildMicromapsEXT-dstMicromap-07463# The @dstMicromap@+--     member of any element of @pInfos@ /must/ be a valid+--     'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07464# For each element of @pInfos@+--     its @type@ member /must/ match the value of+--     'MicromapCreateInfoEXT'::@type@ when its @dstMicromap@ was created+--+-- -   #VUID-vkBuildMicromapsEXT-dstMicromap-07465# The range of memory+--     backing the @dstMicromap@ member of any element of @pInfos@ that is+--     accessed by this command /must/ not overlap the memory backing the+--     @dstMicromap@ member of any other element of @pInfos@, which is+--     accessed by this command+--+-- -   #VUID-vkBuildMicromapsEXT-dstMicromap-07466# The range of memory+--     backing the @dstMicromap@ member of any element of @pInfos@ that is+--     accessed by this command /must/ not overlap the memory backing the+--     @scratchData@ member of any element of @pInfos@ (including the same+--     element), which is accessed by this command+--+-- -   #VUID-vkBuildMicromapsEXT-scratchData-07467# The range of memory+--     backing the @scratchData@ member of any element of @pInfos@ that is+--     accessed by this command /must/ not overlap the memory backing the+--     @scratchData@ member of any other element of @pInfos@, which is+--     accessed by this command+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07552# For each element of+--     @pInfos@, the @buffer@ used to create its @dstMicromap@ member+--     /must/ be bound to host-visible device memory+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07553# For each element of+--     @pInfos@, all referenced addresses of @pInfos@[i].@data.hostAddress@+--     /must/ be valid host memory+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07554# For each element of+--     @pInfos@, all referenced addresses of+--     @pInfos@[i].@triangleArray.hostAddress@ /must/ be valid host memory+--+-- -   #VUID-vkBuildMicromapsEXT-micromapHostCommands-07555# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands ::micromapHostCommands>+--     feature /must/ be enabled+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07556# If @pInfos@[i].@mode@ is+--     'BUILD_MICROMAP_MODE_BUILD_EXT', all addresses between+--     @pInfos@[i].@scratchData.hostAddress@ and+--     @pInfos@[i].@scratchData.hostAddress@ + N - 1 /must/ be valid host+--     memory, where N is given by the @buildScratchSize@ member of the+--     'MicromapBuildSizesInfoEXT' structure returned from a call to+--     'getMicromapBuildSizesEXT' with an identical 'MicromapBuildInfoEXT'+--     structure and primitive count+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-07557# For each element of+--     @pInfos@, the @buffer@ used to create its @dstMicromap@ member+--     /must/ be bound to memory that was not allocated with multiple+--     instances+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkBuildMicromapsEXT-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkBuildMicromapsEXT-deferredOperation-parameter# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @deferredOperation@ /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' handle+--+-- -   #VUID-vkBuildMicromapsEXT-pInfos-parameter# @pInfos@ /must/ be a+--     valid pointer to an array of @infoCount@ valid+--     'MicromapBuildInfoEXT' structures+--+-- -   #VUID-vkBuildMicromapsEXT-infoCount-arraylength# @infoCount@ /must/+--     be greater than @0@+--+-- -   #VUID-vkBuildMicromapsEXT-deferredOperation-parent# If+--     @deferredOperation@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == 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.OPERATION_DEFERRED_KHR'+--+--     -   'Vulkan.Core10.Enums.Result.OPERATION_NOT_DEFERRED_KHR'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Extensions.Handles.DeferredOperationKHR',+-- 'Vulkan.Core10.Handles.Device', 'MicromapBuildInfoEXT'+buildMicromapsEXT :: forall io+                   . (MonadIO io)+                  => -- | @device@ is the 'Vulkan.Core10.Handles.Device' for which the micromaps+                     -- are being built.+                     Device+                  -> -- | @deferredOperation@ is an optional+                     -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to+                     -- <https://registry.khronos.org/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@ 'MicromapBuildInfoEXT'+                     -- structures defining the geometry used to build each micromap.+                     ("infos" ::: Vector MicromapBuildInfoEXT)+                  -> io (Result)+buildMicromapsEXT device deferredOperation infos = liftIO . evalContT $ do+  let vkBuildMicromapsEXTPtr = pVkBuildMicromapsEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkBuildMicromapsEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBuildMicromapsEXT is null" Nothing Nothing+  let vkBuildMicromapsEXT' = mkVkBuildMicromapsEXT vkBuildMicromapsEXTPtr+  pPInfos <- ContT $ allocaBytes @MicromapBuildInfoEXT ((Data.Vector.length (infos)) * 96)+  Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPInfos `plusPtr` (96 * (i)) :: Ptr MicromapBuildInfoEXT) (e) . ($ ())) (infos)+  r <- lift $ traceAroundEvent "vkBuildMicromapsEXT" (vkBuildMicromapsEXT'+                                                        (deviceHandle (device))+                                                        (deferredOperation)+                                                        ((fromIntegral (Data.Vector.length $ (infos)) :: Word32))+                                                        (pPInfos))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pure $ (r)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyMicromapEXT+  :: FunPtr (Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> MicromapEXT -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyMicromapEXT - Destroy a micromap object+--+-- == Valid Usage+--+-- -   #VUID-vkDestroyMicromapEXT-micromap-07441# All submitted commands+--     that refer to @micromap@ /must/ have completed execution+--+-- -   #VUID-vkDestroyMicromapEXT-micromap-07442# If+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+--     provided when @micromap@ was created, a compatible set of callbacks+--     /must/ be provided here+--+-- -   #VUID-vkDestroyMicromapEXT-micromap-07443# If no+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' were+--     provided when @micromap@ was created, @pAllocator@ /must/ be @NULL@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkDestroyMicromapEXT-device-parameter# @device@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkDestroyMicromapEXT-micromap-parameter# If @micromap@ is not+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @micromap@ /must/ be a+--     valid 'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-vkDestroyMicromapEXT-pAllocator-parameter# If @pAllocator@ is+--     not @NULL@, @pAllocator@ /must/ be a valid pointer to a valid+--     'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks' structure+--+-- -   #VUID-vkDestroyMicromapEXT-micromap-parent# If @micromap@ is a valid+--     handle, it /must/ have been created, allocated, or retrieved from+--     @device@+--+-- == Host Synchronization+--+-- -   Host access to @micromap@ /must/ be externally synchronized+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Extensions.Handles.MicromapEXT'+destroyMicromapEXT :: forall io+                    . (MonadIO io)+                   => -- | @device@ is the logical device that destroys the micromap.+                      Device+                   -> -- | @micromap@ is the micromap to destroy.+                      MicromapEXT+                   -> -- | @pAllocator@ controls host memory allocation as described in the+                      -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                      -- chapter.+                      ("allocator" ::: Maybe AllocationCallbacks)+                   -> io ()+destroyMicromapEXT device micromap allocator = liftIO . evalContT $ do+  let vkDestroyMicromapEXTPtr = pVkDestroyMicromapEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkDestroyMicromapEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyMicromapEXT is null" Nothing Nothing+  let vkDestroyMicromapEXT' = mkVkDestroyMicromapEXT vkDestroyMicromapEXTPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyMicromapEXT" (vkDestroyMicromapEXT'+                                                    (deviceHandle (device))+                                                    (micromap)+                                                    pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyMicromapEXT+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMicromapInfoEXT -> IO ()++-- | vkCmdCopyMicromapEXT - Copy a micromap+--+-- = Description+--+-- This command copies the @pInfo->src@ micromap to the @pInfo->dst@+-- micromap in the manner specified by @pInfo->mode@.+--+-- Accesses to @pInfo->src@ and @pInfo->dst@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- and an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- of 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT' or+-- 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT' as+-- appropriate.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyMicromapEXT-buffer-07529# The @buffer@ used to create+--     @pInfo->src@ /must/ be bound to device memory+--+-- -   #VUID-vkCmdCopyMicromapEXT-buffer-07530# The @buffer@ used to create+--     @pInfo->dst@ /must/ be bound to device memory+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyMicromapEXT-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyMicromapEXT-pInfo-parameter# @pInfo@ /must/ be a+--     valid pointer to a valid 'CopyMicromapInfoEXT' structure+--+-- -   #VUID-vkCmdCopyMicromapEXT-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-vkCmdCopyMicromapEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdCopyMicromapEXT-renderpass# This command /must/ only be+--     called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyMicromapEXT-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyMicromapInfoEXT'+cmdCopyMicromapEXT :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command will be+                      -- recorded.+                      CommandBuffer+                   -> -- | @pInfo@ is a pointer to a 'CopyMicromapInfoEXT' structure defining the+                      -- copy operation.+                      CopyMicromapInfoEXT+                   -> io ()+cmdCopyMicromapEXT commandBuffer info = liftIO . evalContT $ do+  let vkCmdCopyMicromapEXTPtr = pVkCmdCopyMicromapEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyMicromapEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyMicromapEXT is null" Nothing Nothing+  let vkCmdCopyMicromapEXT' = mkVkCmdCopyMicromapEXT vkCmdCopyMicromapEXTPtr+  pInfo <- ContT $ withCStruct (info)+  lift $ traceAroundEvent "vkCmdCopyMicromapEXT" (vkCmdCopyMicromapEXT'+                                                    (commandBufferHandle (commandBuffer))+                                                    pInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCopyMicromapEXT+  :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapInfoEXT -> IO Result++-- | vkCopyMicromapEXT - Copy a micromap on the host+--+-- = Description+--+-- This command fulfills the same task as 'cmdCopyMicromapEXT' but is+-- executed by the host.+--+-- == Valid Usage+--+-- -   #VUID-vkCopyMicromapEXT-deferredOperation-03677# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     it /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' object+--+-- -   #VUID-vkCopyMicromapEXT-deferredOperation-03678# Any previous+--     deferred operation that was associated with @deferredOperation@+--     /must/ be complete+--+-- -   #VUID-vkCopyMicromapEXT-buffer-07558# The @buffer@ used to create+--     @pInfo->src@ /must/ be bound to host-visible device memory+--+-- -   #VUID-vkCopyMicromapEXT-buffer-07559# The @buffer@ used to create+--     @pInfo->dst@ /must/ be bound to host-visible device memory+--+-- -   #VUID-vkCopyMicromapEXT-micromapHostCommands-07560# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands ::micromapHostCommands>+--     feature /must/ be enabled+--+-- -   #VUID-vkCopyMicromapEXT-buffer-07561# The @buffer@ used to create+--     @pInfo->src@ /must/ be bound to memory that was not allocated with+--     multiple instances+--+-- -   #VUID-vkCopyMicromapEXT-buffer-07562# The @buffer@ used to create+--     @pInfo->dst@ /must/ be bound to memory that was not allocated with+--     multiple instances+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCopyMicromapEXT-device-parameter# @device@ /must/ be a valid+--     'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCopyMicromapEXT-deferredOperation-parameter# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @deferredOperation@ /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' handle+--+-- -   #VUID-vkCopyMicromapEXT-pInfo-parameter# @pInfo@ /must/ be a valid+--     pointer to a valid 'CopyMicromapInfoEXT' structure+--+-- -   #VUID-vkCopyMicromapEXT-deferredOperation-parent# If+--     @deferredOperation@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == 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.OPERATION_DEFERRED_KHR'+--+--     -   'Vulkan.Core10.Enums.Result.OPERATION_NOT_DEFERRED_KHR'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMicromapInfoEXT', 'Vulkan.Extensions.Handles.DeferredOperationKHR',+-- 'Vulkan.Core10.Handles.Device'+copyMicromapEXT :: forall io+                 . (MonadIO io)+                => -- | @device@ is the device which owns the micromaps.+                   Device+                -> -- | @deferredOperation@ is an optional+                   -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to+                   -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                   -- for this command.+                   DeferredOperationKHR+                -> -- | @pInfo@ is a pointer to a 'CopyMicromapInfoEXT' structure defining the+                   -- copy operation.+                   CopyMicromapInfoEXT+                -> io (Result)+copyMicromapEXT device deferredOperation info = liftIO . evalContT $ do+  let vkCopyMicromapEXTPtr = pVkCopyMicromapEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCopyMicromapEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMicromapEXT is null" Nothing Nothing+  let vkCopyMicromapEXT' = mkVkCopyMicromapEXT vkCopyMicromapEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkCopyMicromapEXT" (vkCopyMicromapEXT'+                                                      (deviceHandle (device))+                                                      (deferredOperation)+                                                      pInfo)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pure $ (r)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyMicromapToMemoryEXT+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMicromapToMemoryInfoEXT -> IO ()++-- | vkCmdCopyMicromapToMemoryEXT - Copy a micromap to device memory+--+-- = Description+--+-- Accesses to @pInfo->src@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- and an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- of 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT'.+-- Accesses to the buffer indicated by @pInfo->dst.deviceAddress@ /must/ be+-- synchronized with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- pipeline stage and an access type of+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_WRITE_BIT'.+--+-- This command produces the same results as 'copyMicromapToMemoryEXT', but+-- writes its result to a device address, and is executed on the device+-- rather than the host. The output /may/ not necessarily be bit-for-bit+-- identical, but it can be equally used by either+-- 'cmdCopyMemoryToMicromapEXT' or 'copyMemoryToMicromapEXT'.+--+-- The defined header structure for the serialized data consists of:+--+-- -   'Vulkan.Core10.APIConstants.UUID_SIZE' bytes of data matching+--     'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceIDProperties'::@driverUUID@+--+-- -   'Vulkan.Core10.APIConstants.UUID_SIZE' bytes of data identifying the+--     compatibility for comparison using+--     'getDeviceMicromapCompatibilityEXT' The serialized data is written+--     to the buffer (or read from the buffer) according to the host+--     endianness.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07536#+--     @pInfo->dst.deviceAddress@ /must/ be a valid device address for a+--     buffer bound to device memory+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07537#+--     @pInfo->dst.deviceAddress@ /must/ be aligned to @256@ bytes+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-07538# If the buffer+--     pointed to by @pInfo->dst.deviceAddress@ is non-sparse then it+--     /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-buffer-07539# The @buffer@ used+--     to create @pInfo->src@ /must/ be bound to device memory+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-pInfo-parameter# @pInfo@ /must/+--     be a valid pointer to a valid 'CopyMicromapToMemoryInfoEXT'+--     structure+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-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-vkCmdCopyMicromapToMemoryEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-renderpass# This command /must/+--     only be called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyMicromapToMemoryEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyMicromapToMemoryInfoEXT'+cmdCopyMicromapToMemoryEXT :: forall io+                            . (MonadIO io)+                           => -- | @commandBuffer@ is the command buffer into which the command will be+                              -- recorded.+                              CommandBuffer+                           -> -- | @pInfo@ is an a pointer to a 'CopyMicromapToMemoryInfoEXT' structure+                              -- defining the copy operation.+                              CopyMicromapToMemoryInfoEXT+                           -> io ()+cmdCopyMicromapToMemoryEXT commandBuffer info = liftIO . evalContT $ do+  let vkCmdCopyMicromapToMemoryEXTPtr = pVkCmdCopyMicromapToMemoryEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyMicromapToMemoryEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyMicromapToMemoryEXT is null" Nothing Nothing+  let vkCmdCopyMicromapToMemoryEXT' = mkVkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXTPtr+  pInfo <- ContT $ withCStruct (info)+  lift $ traceAroundEvent "vkCmdCopyMicromapToMemoryEXT" (vkCmdCopyMicromapToMemoryEXT'+                                                            (commandBufferHandle (commandBuffer))+                                                            pInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCopyMicromapToMemoryEXT+  :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapToMemoryInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMicromapToMemoryInfoEXT -> IO Result++-- | vkCopyMicromapToMemoryEXT - Serialize a micromap on the host+--+-- = Description+--+-- This command fulfills the same task as 'cmdCopyMicromapToMemoryEXT' but+-- is executed by the host.+--+-- This command produces the same results as 'cmdCopyMicromapToMemoryEXT',+-- but writes its result directly to a host pointer, and is executed on the+-- host rather than the device. The output /may/ not necessarily be+-- bit-for-bit identical, but it can be equally used by either+-- 'cmdCopyMemoryToMicromapEXT' or 'copyMemoryToMicromapEXT'.+--+-- == Valid Usage+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03677# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     it /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' object+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-deferredOperation-03678# Any+--     previous deferred operation that was associated with+--     @deferredOperation@ /must/ be complete+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-buffer-07568# The @buffer@ used to+--     create @pInfo->src@ /must/ be bound to host-visible device memory+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-pInfo-07569#+--     @pInfo->dst.hostAddress@ /must/ be a valid host pointer+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-pInfo-07570#+--     @pInfo->dst.hostAddress@ /must/ be aligned to 16 bytes+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-micromapHostCommands-07571# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands ::micromapHostCommands>+--     feature /must/ be enabled+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-buffer-07572# The @buffer@ used to+--     create @pInfo->src@ /must/ be bound to memory that was not allocated+--     with multiple instances+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-device-parameter# @device@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parameter# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @deferredOperation@ /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' handle+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-pInfo-parameter# @pInfo@ /must/ be a+--     valid pointer to a valid 'CopyMicromapToMemoryInfoEXT' structure+--+-- -   #VUID-vkCopyMicromapToMemoryEXT-deferredOperation-parent# If+--     @deferredOperation@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == 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.OPERATION_DEFERRED_KHR'+--+--     -   'Vulkan.Core10.Enums.Result.OPERATION_NOT_DEFERRED_KHR'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMicromapToMemoryInfoEXT',+-- 'Vulkan.Extensions.Handles.DeferredOperationKHR',+-- 'Vulkan.Core10.Handles.Device'+copyMicromapToMemoryEXT :: forall io+                         . (MonadIO io)+                        => -- | @device@ is the device which owns @pInfo->src@.+                           Device+                        -> -- | @deferredOperation@ is an optional+                           -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to+                           -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                           -- for this command.+                           DeferredOperationKHR+                        -> -- | @pInfo@ is a pointer to a 'CopyMicromapToMemoryInfoEXT' structure+                           -- defining the copy operation.+                           CopyMicromapToMemoryInfoEXT+                        -> io (Result)+copyMicromapToMemoryEXT device deferredOperation info = liftIO . evalContT $ do+  let vkCopyMicromapToMemoryEXTPtr = pVkCopyMicromapToMemoryEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCopyMicromapToMemoryEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMicromapToMemoryEXT is null" Nothing Nothing+  let vkCopyMicromapToMemoryEXT' = mkVkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkCopyMicromapToMemoryEXT" (vkCopyMicromapToMemoryEXT'+                                                              (deviceHandle (device))+                                                              (deferredOperation)+                                                              pInfo)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pure $ (r)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdCopyMemoryToMicromapEXT+  :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyMemoryToMicromapInfoEXT -> IO ()++-- | vkCmdCopyMemoryToMicromapEXT - Copy device memory to a micromap+--+-- = Description+--+-- Accesses to @pInfo->dst@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- and an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- of 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT'.+-- Accesses to the buffer indicated by @pInfo->src.deviceAddress@ /must/ be+-- synchronized with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- pipeline stage and an access type of+-- 'Vulkan.Core10.Enums.AccessFlagBits.ACCESS_TRANSFER_READ_BIT'.+--+-- This command can accept micromaps produced by either+-- 'cmdCopyMicromapToMemoryEXT' or 'copyMicromapToMemoryEXT'.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07543#+--     @pInfo->src.deviceAddress@ /must/ be a valid device address for a+--     buffer bound to device memory+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07544#+--     @pInfo->src.deviceAddress@ /must/ be aligned to @256@ bytes+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-07545# If the buffer+--     pointed to by @pInfo->src.deviceAddress@ is non-sparse then it+--     /must/ be bound completely and contiguously to a single+--     'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-buffer-07546# The @buffer@ used+--     to create @pInfo->dst@ /must/ be bound to device memory+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-pInfo-parameter# @pInfo@ /must/+--     be a valid pointer to a valid 'CopyMemoryToMicromapInfoEXT'+--     structure+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-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-vkCmdCopyMemoryToMicromapEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-renderpass# This command /must/+--     only be called outside of a render pass instance+--+-- -   #VUID-vkCmdCopyMemoryToMicromapEXT-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyMemoryToMicromapInfoEXT'+cmdCopyMemoryToMicromapEXT :: forall io+                            . (MonadIO io)+                           => -- | @commandBuffer@ is the command buffer into which the command will be+                              -- recorded.+                              CommandBuffer+                           -> -- | @pInfo@ is a pointer to a 'CopyMicromapToMemoryInfoEXT' structure+                              -- defining the copy operation.+                              CopyMemoryToMicromapInfoEXT+                           -> io ()+cmdCopyMemoryToMicromapEXT commandBuffer info = liftIO . evalContT $ do+  let vkCmdCopyMemoryToMicromapEXTPtr = pVkCmdCopyMemoryToMicromapEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdCopyMemoryToMicromapEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyMemoryToMicromapEXT is null" Nothing Nothing+  let vkCmdCopyMemoryToMicromapEXT' = mkVkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXTPtr+  pInfo <- ContT $ withCStruct (info)+  lift $ traceAroundEvent "vkCmdCopyMemoryToMicromapEXT" (vkCmdCopyMemoryToMicromapEXT'+                                                            (commandBufferHandle (commandBuffer))+                                                            pInfo)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCopyMemoryToMicromapEXT+  :: FunPtr (Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMemoryToMicromapInfoEXT -> IO Result) -> Ptr Device_T -> DeferredOperationKHR -> Ptr CopyMemoryToMicromapInfoEXT -> IO Result++-- | vkCopyMemoryToMicromapEXT - Deserialize a micromap on the host+--+-- = Description+--+-- This command fulfills the same task as 'cmdCopyMemoryToMicromapEXT' but+-- is executed by the host.+--+-- This command can accept micromaps produced by either+-- 'cmdCopyMicromapToMemoryEXT' or 'copyMicromapToMemoryEXT'.+--+-- == Valid Usage+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03677# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     it /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' object+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-deferredOperation-03678# Any+--     previous deferred operation that was associated with+--     @deferredOperation@ /must/ be complete+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-pInfo-07563#+--     @pInfo->src.hostAddress@ /must/ be a valid host pointer+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-pInfo-07564#+--     @pInfo->src.hostAddress@ /must/ be aligned to 16 bytes+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-buffer-07565# The @buffer@ used to+--     create @pInfo->dst@ /must/ be bound to host-visible device memory+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-micromapHostCommands-07566# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands ::micromapHostCommands>+--     feature /must/ be enabled+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-buffer-07567# The @buffer@ used to+--     create @pInfo->dst@ /must/ be bound to memory that was not allocated+--     with multiple instances+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-device-parameter# @device@ /must/ be+--     a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parameter# If+--     @deferredOperation@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE',+--     @deferredOperation@ /must/ be a valid+--     'Vulkan.Extensions.Handles.DeferredOperationKHR' handle+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-pInfo-parameter# @pInfo@ /must/ be a+--     valid pointer to a valid 'CopyMemoryToMicromapInfoEXT' structure+--+-- -   #VUID-vkCopyMemoryToMicromapEXT-deferredOperation-parent# If+--     @deferredOperation@ is a valid handle, it /must/ have been created,+--     allocated, or retrieved from @device@+--+-- == 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.OPERATION_DEFERRED_KHR'+--+--     -   'Vulkan.Core10.Enums.Result.OPERATION_NOT_DEFERRED_KHR'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMemoryToMicromapInfoEXT',+-- 'Vulkan.Extensions.Handles.DeferredOperationKHR',+-- 'Vulkan.Core10.Handles.Device'+copyMemoryToMicromapEXT :: forall io+                         . (MonadIO io)+                        => -- | @device@ is the device which owns @pInfo->dst@.+                           Device+                        -> -- | @deferredOperation@ is an optional+                           -- 'Vulkan.Extensions.Handles.DeferredOperationKHR' to+                           -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#deferred-host-operations-requesting request deferral>+                           -- for this command.+                           DeferredOperationKHR+                        -> -- | @pInfo@ is a pointer to a 'CopyMemoryToMicromapInfoEXT' structure+                           -- defining the copy operation.+                           CopyMemoryToMicromapInfoEXT+                        -> io (Result)+copyMemoryToMicromapEXT device deferredOperation info = liftIO . evalContT $ do+  let vkCopyMemoryToMicromapEXTPtr = pVkCopyMemoryToMicromapEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCopyMemoryToMicromapEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMemoryToMicromapEXT is null" Nothing Nothing+  let vkCopyMemoryToMicromapEXT' = mkVkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXTPtr+  pInfo <- ContT $ withCStruct (info)+  r <- lift $ traceAroundEvent "vkCopyMemoryToMicromapEXT" (vkCopyMemoryToMicromapEXT'+                                                              (deviceHandle (device))+                                                              (deferredOperation)+                                                              pInfo)+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pure $ (r)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdWriteMicromapsPropertiesEXT+  :: FunPtr (Ptr CommandBuffer_T -> Word32 -> Ptr MicromapEXT -> QueryType -> QueryPool -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Word32 -> Ptr MicromapEXT -> QueryType -> QueryPool -> Word32 -> IO ()++-- | vkCmdWriteMicromapsPropertiesEXT - Write micromap result parameters to+-- query results.+--+-- = Description+--+-- Accesses to any of the micromaps listed in @pMicromaps@ /must/ be+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies synchronized>+-- with the+-- 'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-pipeline-stages pipeline stage>+-- and an+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-access-types access type>+-- of 'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT'.+--+-- -   If @queryType@ is+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT',+--     then the value written out is the number of bytes required by a+--     serialized micromap.+--+-- -   If @queryType@ is+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT',+--     then the value written out is the number of bytes required by a+--     compacted micromap.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07525# @queryPool@+--     /must/ have been created with a @queryType@ matching @queryType@+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-07526# The queries+--     identified by @queryPool@ and @firstQuery@ /must/ be /unavailable/+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-buffer-07527# The @buffer@+--     used to create each micromap in @pMicrmaps@ /must/ be bound to+--     device memory+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-query-07528# The sum of+--     @query@ plus @micromapCount@ /must/ be less than or equal to the+--     number of queries in @queryPool@+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07501# All+--     micromaps in @pMicromaps@ /must/ have been constructed prior to the+--     execution of this command+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-07502# All+--     micromaps in @pMicromaps@ /must/ have been constructed with+--     'BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT' if @queryType@ is+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-07503# @queryType@+--     /must/ be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-pMicromaps-parameter#+--     @pMicromaps@ /must/ be a valid pointer to an array of+--     @micromapCount@ valid 'Vulkan.Extensions.Handles.MicromapEXT'+--     handles+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-queryType-parameter#+--     @queryType@ /must/ be a valid+--     'Vulkan.Core10.Enums.QueryType.QueryType' value+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-queryPool-parameter#+--     @queryPool@ /must/ be a valid 'Vulkan.Core10.Handles.QueryPool'+--     handle+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-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-vkCmdWriteMicromapsPropertiesEXT-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support compute operations+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-renderpass# This command+--     /must/ only be called outside of a render pass instance+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-micromapCount-arraylength#+--     @micromapCount@ /must/ be greater than @0@+--+-- -   #VUID-vkCmdWriteMicromapsPropertiesEXT-commonparent# Each of+--     @commandBuffer@, @queryPool@, and the elements of @pMicromaps@+--     /must/ have been created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Compute                                                                                                               | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Extensions.Handles.MicromapEXT',+-- 'Vulkan.Core10.Handles.QueryPool',+-- 'Vulkan.Core10.Enums.QueryType.QueryType'+cmdWriteMicromapsPropertiesEXT :: forall io+                                . (MonadIO io)+                               => -- | @commandBuffer@ is the command buffer into which the command will be+                                  -- recorded.+                                  CommandBuffer+                               -> -- | @pMicromaps@ is a pointer to an array of existing previously built+                                  -- micromaps.+                                  ("micromaps" ::: Vector MicromapEXT)+                               -> -- | @queryType@ is a 'Vulkan.Core10.Enums.QueryType.QueryType' value+                                  -- specifying the type of queries managed by the pool.+                                  QueryType+                               -> -- | @queryPool@ is the query pool that will manage the results of the query.+                                  QueryPool+                               -> -- | @firstQuery@ is the first query index within the query pool that will+                                  -- contain the @micromapCount@ number of results.+                                  ("firstQuery" ::: Word32)+                               -> io ()+cmdWriteMicromapsPropertiesEXT commandBuffer+                                 micromaps+                                 queryType+                                 queryPool+                                 firstQuery = liftIO . evalContT $ do+  let vkCmdWriteMicromapsPropertiesEXTPtr = pVkCmdWriteMicromapsPropertiesEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdWriteMicromapsPropertiesEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteMicromapsPropertiesEXT is null" Nothing Nothing+  let vkCmdWriteMicromapsPropertiesEXT' = mkVkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXTPtr+  pPMicromaps <- ContT $ allocaBytes @MicromapEXT ((Data.Vector.length (micromaps)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMicromaps `plusPtr` (8 * (i)) :: Ptr MicromapEXT) (e)) (micromaps)+  lift $ traceAroundEvent "vkCmdWriteMicromapsPropertiesEXT" (vkCmdWriteMicromapsPropertiesEXT'+                                                                (commandBufferHandle (commandBuffer))+                                                                ((fromIntegral (Data.Vector.length $ (micromaps)) :: Word32))+                                                                (pPMicromaps)+                                                                (queryType)+                                                                (queryPool)+                                                                (firstQuery))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkWriteMicromapsPropertiesEXT+  :: FunPtr (Ptr Device_T -> Word32 -> Ptr MicromapEXT -> QueryType -> CSize -> Ptr () -> CSize -> IO Result) -> Ptr Device_T -> Word32 -> Ptr MicromapEXT -> QueryType -> CSize -> Ptr () -> CSize -> IO Result++-- | vkWriteMicromapsPropertiesEXT - Query micromap meta-data on the host+--+-- = Description+--+-- This command fulfills the same task as 'cmdWriteMicromapsPropertiesEXT'+-- but is executed by the host.+--+-- == Valid Usage+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07501# All micromaps+--     in @pMicromaps@ /must/ have been constructed prior to the execution+--     of this command+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-07502# All micromaps+--     in @pMicromaps@ /must/ have been constructed with+--     'BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT' if @queryType@ is+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07503# @queryType@+--     /must/ be+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'+--     or+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07573# If @queryType@+--     is+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT',+--     then @stride@ /must/ be a multiple of the size of+--     'Vulkan.Core10.FundamentalTypes.DeviceSize'+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07574# If @queryType@+--     is+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT',+--     then @pData@ /must/ point to a+--     'Vulkan.Core10.FundamentalTypes.DeviceSize'+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-07575# If @queryType@+--     is+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-dataSize-07576# @dataSize@+--     /must/ be greater than or equal to @micromapCount@*@stride@+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-buffer-07577# The @buffer@ used+--     to create each micromap in @pMicromaps@ /must/ be bound to+--     host-visible device memory+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-micromapHostCommands-07578# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapHostCommands ::micromapHostCommands>+--     feature /must/ be enabled+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-buffer-07579# The @buffer@ used+--     to create each micromap in @pMicromaps@ /must/ be bound to memory+--     that was not allocated with multiple instances+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-device-parameter# @device@+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parameter#+--     @pMicromaps@ /must/ be a valid pointer to an array of+--     @micromapCount@ valid 'Vulkan.Extensions.Handles.MicromapEXT'+--     handles+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-queryType-parameter# @queryType@+--     /must/ be a valid 'Vulkan.Core10.Enums.QueryType.QueryType' value+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-pData-parameter# @pData@ /must/+--     be a valid pointer to an array of @dataSize@ bytes+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-micromapCount-arraylength#+--     @micromapCount@ /must/ be greater than @0@+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-dataSize-arraylength# @dataSize@+--     /must/ be greater than @0@+--+-- -   #VUID-vkWriteMicromapsPropertiesEXT-pMicromaps-parent# Each element+--     of @pMicromaps@ /must/ have been created, allocated, or retrieved+--     from @device@+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_DEVICE_MEMORY'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.Device', 'Vulkan.Extensions.Handles.MicromapEXT',+-- 'Vulkan.Core10.Enums.QueryType.QueryType'+writeMicromapsPropertiesEXT :: forall io+                             . (MonadIO io)+                            => -- | @device@ is the device which owns the micromaps in @pMicromaps@.+                               Device+                            -> -- | @pMicromaps@ is a pointer to an array of existing previously built+                               -- micromaps.+                               ("micromaps" ::: Vector MicromapEXT)+                            -> -- | @queryType@ is a 'Vulkan.Core10.Enums.QueryType.QueryType' value+                               -- specifying the property to be queried.+                               QueryType+                            -> -- | @dataSize@ is the size in bytes of the buffer pointed to by @pData@.+                               ("dataSize" ::: Word64)+                            -> -- | @pData@ is a pointer to a user-allocated buffer where the results will+                               -- be written.+                               ("data" ::: Ptr ())+                            -> -- | @stride@ is the stride in bytes between results for individual queries+                               -- within @pData@.+                               ("stride" ::: Word64)+                            -> io ()+writeMicromapsPropertiesEXT device+                              micromaps+                              queryType+                              dataSize+                              data'+                              stride = liftIO . evalContT $ do+  let vkWriteMicromapsPropertiesEXTPtr = pVkWriteMicromapsPropertiesEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkWriteMicromapsPropertiesEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWriteMicromapsPropertiesEXT is null" Nothing Nothing+  let vkWriteMicromapsPropertiesEXT' = mkVkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXTPtr+  pPMicromaps <- ContT $ allocaBytes @MicromapEXT ((Data.Vector.length (micromaps)) * 8)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPMicromaps `plusPtr` (8 * (i)) :: Ptr MicromapEXT) (e)) (micromaps)+  r <- lift $ traceAroundEvent "vkWriteMicromapsPropertiesEXT" (vkWriteMicromapsPropertiesEXT'+                                                                  (deviceHandle (device))+                                                                  ((fromIntegral (Data.Vector.length $ (micromaps)) :: Word32))+                                                                  (pPMicromaps)+                                                                  (queryType)+                                                                  (CSize (dataSize))+                                                                  (data')+                                                                  (CSize (stride)))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetDeviceMicromapCompatibilityEXT+  :: FunPtr (Ptr Device_T -> Ptr MicromapVersionInfoEXT -> Ptr AccelerationStructureCompatibilityKHR -> IO ()) -> Ptr Device_T -> Ptr MicromapVersionInfoEXT -> Ptr AccelerationStructureCompatibilityKHR -> IO ()++-- | vkGetDeviceMicromapCompatibilityEXT - Check if a serialized micromap is+-- compatible with the current device+--+-- == Valid Usage+--+-- -   #VUID-vkGetDeviceMicromapCompatibilityEXT-micromap-07551# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromap micromap>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetDeviceMicromapCompatibilityEXT-device-parameter# @device@+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetDeviceMicromapCompatibilityEXT-pVersionInfo-parameter#+--     @pVersionInfo@ /must/ be a valid pointer to a valid+--     'MicromapVersionInfoEXT' structure+--+-- -   #VUID-vkGetDeviceMicromapCompatibilityEXT-pCompatibility-parameter#+--     @pCompatibility@ /must/ be a valid pointer to a+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCompatibilityKHR'+--     value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureCompatibilityKHR',+-- 'Vulkan.Core10.Handles.Device', 'MicromapVersionInfoEXT'+getDeviceMicromapCompatibilityEXT :: forall io+                                   . (MonadIO io)+                                  => -- | @device@ is the device to check the version against.+                                     Device+                                  -> -- | @pVersionInfo@ is a pointer to a 'MicromapVersionInfoEXT' structure+                                     -- specifying version information to check against the device.+                                     MicromapVersionInfoEXT+                                  -> io (AccelerationStructureCompatibilityKHR)+getDeviceMicromapCompatibilityEXT device versionInfo = liftIO . evalContT $ do+  let vkGetDeviceMicromapCompatibilityEXTPtr = pVkGetDeviceMicromapCompatibilityEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetDeviceMicromapCompatibilityEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceMicromapCompatibilityEXT is null" Nothing Nothing+  let vkGetDeviceMicromapCompatibilityEXT' = mkVkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXTPtr+  pVersionInfo <- ContT $ withCStruct (versionInfo)+  pPCompatibility <- ContT $ bracket (callocBytes @AccelerationStructureCompatibilityKHR 4) free+  lift $ traceAroundEvent "vkGetDeviceMicromapCompatibilityEXT" (vkGetDeviceMicromapCompatibilityEXT'+                                                                   (deviceHandle (device))+                                                                   pVersionInfo+                                                                   (pPCompatibility))+  pCompatibility <- lift $ peek @AccelerationStructureCompatibilityKHR pPCompatibility+  pure $ (pCompatibility)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetMicromapBuildSizesEXT+  :: FunPtr (Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> Ptr MicromapBuildSizesInfoEXT -> IO ()) -> Ptr Device_T -> AccelerationStructureBuildTypeKHR -> Ptr MicromapBuildInfoEXT -> Ptr MicromapBuildSizesInfoEXT -> IO ()++-- | vkGetMicromapBuildSizesEXT - Retrieve the required size for a micromap+--+-- = Description+--+-- The @dstMicromap@ and @mode@ members of @pBuildInfo@ are ignored. Any+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR'+-- members of @pBuildInfo@ are ignored by this command.+--+-- A micromap created with the @micromapSize@ returned by this command+-- supports any build with a 'MicromapBuildInfoEXT' structure subject to+-- the following properties:+--+-- -   The build command is a host build command, and @buildType@ is+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR'+--     or+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR'+--+-- -   The build command is a device build command, and @buildType@ is+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR'+--     or+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR'+--+-- -   For 'MicromapBuildInfoEXT':+--+--     -   Its @type@, and @flags@ members are equal to @pBuildInfo->type@+--         and @pBuildInfo->flags@, respectively.+--+--     -   The sum of usage information in either @pUsageCounts@ or+--         @ppUsageCounts@ is equal to the sum of usage information in+--         either @pBuildInfo->pUsageCounts@ or+--         @pBuildInfo->ppUsageCounts@.+--+-- Similarly, the @buildScratchSize@ value will support any build command+-- specifying the 'BUILD_MICROMAP_MODE_BUILD_EXT' @mode@ under the above+-- conditions.+--+-- == Valid Usage+--+-- -   #VUID-vkGetMicromapBuildSizesEXT-micromap-07439# The+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromap micromap>+--     feature /must/ be enabled+--+-- -   #VUID-vkGetMicromapBuildSizesEXT-device-07440# If @device@ was+--     created with multiple physical devices, then the+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-bufferDeviceAddressMultiDevice bufferDeviceAddressMultiDevice>+--     feature /must/ be enabled+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetMicromapBuildSizesEXT-device-parameter# @device@ /must/+--     be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetMicromapBuildSizesEXT-buildType-parameter# @buildType@+--     /must/ be a valid+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildTypeKHR'+--     value+--+-- -   #VUID-vkGetMicromapBuildSizesEXT-pBuildInfo-parameter# @pBuildInfo@+--     /must/ be a valid pointer to a valid 'MicromapBuildInfoEXT'+--     structure+--+-- -   #VUID-vkGetMicromapBuildSizesEXT-pSizeInfo-parameter# @pSizeInfo@+--     /must/ be a valid pointer to a 'MicromapBuildSizesInfoEXT' structure+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureBuildTypeKHR',+-- 'Vulkan.Core10.Handles.Device', 'MicromapBuildInfoEXT',+-- 'MicromapBuildSizesInfoEXT'+getMicromapBuildSizesEXT :: forall io+                          . (MonadIO io)+                         => -- | @device@ is the logical device that will be used for creating the+                            -- micromap.+                            Device+                         -> -- | @buildType@ defines whether host or device operations (or both) are+                            -- being queried for.+                            AccelerationStructureBuildTypeKHR+                         -> -- | @pBuildInfo@ is a pointer to a 'MicromapBuildInfoEXT' structure+                            -- describing parameters of a build operation.+                            MicromapBuildInfoEXT+                         -> io (("sizeInfo" ::: MicromapBuildSizesInfoEXT))+getMicromapBuildSizesEXT device buildType buildInfo = liftIO . evalContT $ do+  let vkGetMicromapBuildSizesEXTPtr = pVkGetMicromapBuildSizesEXT (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetMicromapBuildSizesEXTPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMicromapBuildSizesEXT is null" Nothing Nothing+  let vkGetMicromapBuildSizesEXT' = mkVkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXTPtr+  pBuildInfo <- ContT $ withCStruct (buildInfo)+  pPSizeInfo <- ContT (withZeroCStruct @MicromapBuildSizesInfoEXT)+  lift $ traceAroundEvent "vkGetMicromapBuildSizesEXT" (vkGetMicromapBuildSizesEXT'+                                                          (deviceHandle (device))+                                                          (buildType)+                                                          pBuildInfo+                                                          (pPSizeInfo))+  pSizeInfo <- lift $ peekCStruct @MicromapBuildSizesInfoEXT pPSizeInfo+  pure $ (pSizeInfo)+++-- | VkMicromapBuildInfoEXT - Structure specifying the data used to build a+-- micromap+--+-- = Description+--+-- Only one of @pUsageCounts@ or @ppUsageCounts@ /can/ be a valid pointer,+-- the other /must/ be @NULL@. The elements of the non-@NULL@ array+-- describe the total counts used to build each micromap. Each element+-- contains a @count@ which is the number of micromap triangles of that+-- @format@ and @subdivisionLevel@ contained in the micromap. Multiple+-- elements with the same @format@ and @subdivisionLevel@ are allowed and+-- the total count for that @format@ and @subdivisionLevel@ is the sum of+-- the @count@ for each element.+--+-- Each micromap triangle refers to one element in @triangleArray@ which+-- contains the @format@ and @subdivisionLevel@ for that particular+-- triangle as well as a @dataOffset@ in bytes which is the location+-- relative to @data@ where that triangle’s micromap data begins. The data+-- at @triangleArray@ is laid out as a 4 byte unsigned integer for the+-- @dataOffset@ followed by a 2 byte unsigned integer for the subdivision+-- level then a 2 byte unsigned integer for the format. In practice,+-- compilers compile 'MicromapTriangleEXT' to match this pattern.+--+-- The data at @data@ is packed as either one bit per element for+-- 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' or two bits per element for+-- 'OPACITY_MICROMAP_FORMAT_4_STATE_EXT' and is packed from LSB to MSB in+-- each byte. The data at each index in those bytes is interpreted as+-- discussed in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap Ray Opacity Micromap>.+--+-- == Valid Usage+--+-- -   #VUID-VkMicromapBuildInfoEXT-pUsageCounts-07516# Only one of+--     @pUsageCounts@ or @ppUsageCounts@ /can/ be a valid pointer, the+--     other /must/ be @NULL@.+--+-- -   #VUID-VkMicromapBuildInfoEXT-type-07517# If @type@ is+--     'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' the @format@ member of+--     'MicromapUsageEXT' /must/ be a valid value from+--     'OpacityMicromapFormatEXT'+--+-- -   #VUID-VkMicromapBuildInfoEXT-type-07518# If @type@ is+--     'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' the @format@ member of+--     'MicromapTriangleEXT' /must/ be a valid value from+--     'OpacityMicromapFormatEXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkMicromapBuildInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT'+--+-- -   #VUID-VkMicromapBuildInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkMicromapBuildInfoEXT-type-parameter# @type@ /must/ be a+--     valid 'MicromapTypeEXT' value+--+-- -   #VUID-VkMicromapBuildInfoEXT-flags-parameter# @flags@ /must/ be a+--     valid combination of 'BuildMicromapFlagBitsEXT' values+--+-- -   #VUID-VkMicromapBuildInfoEXT-pUsageCounts-parameter# If+--     @usageCountsCount@ is not @0@, and @pUsageCounts@ is not @NULL@,+--     @pUsageCounts@ /must/ be a valid pointer to an array of+--     @usageCountsCount@ 'MicromapUsageEXT' structures+--+-- -   #VUID-VkMicromapBuildInfoEXT-ppUsageCounts-parameter# If+--     @usageCountsCount@ is not @0@, and @ppUsageCounts@ is not @NULL@,+--     @ppUsageCounts@ /must/ be a valid pointer to an array of+--     @usageCountsCount@ valid pointers to 'MicromapUsageEXT' structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'BuildMicromapFlagsEXT', 'BuildMicromapModeEXT',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Extensions.Handles.MicromapEXT', 'MicromapTypeEXT',+-- 'MicromapUsageEXT', 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'buildMicromapsEXT', 'cmdBuildMicromapsEXT', 'getMicromapBuildSizesEXT'+data MicromapBuildInfoEXT = MicromapBuildInfoEXT+  { -- | @type@ is a 'MicromapTypeEXT' value specifying the type of micromap+    -- being built.+    type' :: MicromapTypeEXT+  , -- | @flags@ is a bitmask of 'BuildMicromapFlagBitsEXT' specifying additional+    -- parameters of the micromap.+    flags :: BuildMicromapFlagsEXT+  , -- | @mode@ is a 'BuildMicromapModeEXT' value specifying the type of+    -- operation to perform.+    mode :: BuildMicromapModeEXT+  , -- | @dstMicromap@ is a pointer to the target micromap for the build.+    dstMicromap :: MicromapEXT+  , -- | @usageCountsCount@ specifies the number of usage counts structures that+    -- will be used to determine the size of this micromap.+    usageCountsCount :: Word32+  , -- | @pUsageCounts@ is a pointer to an array of 'MicromapUsageEXT'+    -- structures.+    usageCounts :: Vector MicromapUsageEXT+  , -- | @data@ is the device or host address to memory which contains the data+    -- for the micromap.+    data' :: DeviceOrHostAddressConstKHR+  , -- | @scratchData@ is the device or host address to memory that will be used+    -- as scratch memory for the build.+    scratchData :: DeviceOrHostAddressKHR+  , -- | @triangleArray@ is the device or host address to memory containing the+    -- 'MicromapTriangleEXT' data+    triangleArray :: DeviceOrHostAddressConstKHR+  , -- | @triangleArrayStride@ is the stride in bytes between each element of+    -- @triangleArray@+    triangleArrayStride :: DeviceSize+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MicromapBuildInfoEXT)+#endif+deriving instance Show MicromapBuildInfoEXT++instance ToCStruct MicromapBuildInfoEXT where+  withCStruct x f = allocaBytes 96 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MicromapBuildInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr MicromapTypeEXT)) (type')+    lift $ poke ((p `plusPtr` 20 :: Ptr BuildMicromapFlagsEXT)) (flags)+    lift $ poke ((p `plusPtr` 24 :: Ptr BuildMicromapModeEXT)) (mode)+    lift $ poke ((p `plusPtr` 32 :: Ptr MicromapEXT)) (dstMicromap)+    let pUsageCountsLength = Data.Vector.length $ (usageCounts)+    usageCountsCount'' <- lift $ if (usageCountsCount) == 0+      then pure $ fromIntegral pUsageCountsLength+      else do+        unless (fromIntegral pUsageCountsLength == (usageCountsCount) || pUsageCountsLength == 0) $+          throwIO $ IOError Nothing InvalidArgument "" "pUsageCounts must be empty or have 'usageCountsCount' elements" Nothing Nothing+        pure (usageCountsCount)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (usageCountsCount'')+    pUsageCounts'' <- if Data.Vector.null (usageCounts)+      then pure nullPtr+      else do+        pPUsageCounts <- ContT $ allocaBytes @MicromapUsageEXT (((Data.Vector.length (usageCounts))) * 12)+        lift $ Data.Vector.imapM_ (\i e -> poke (pPUsageCounts `plusPtr` (12 * (i)) :: Ptr MicromapUsageEXT) (e)) ((usageCounts))+        pure $ pPUsageCounts+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr MicromapUsageEXT))) pUsageCounts''+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 64 :: Ptr DeviceOrHostAddressConstKHR)) (data') . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 72 :: Ptr DeviceOrHostAddressKHR)) (scratchData) . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 80 :: Ptr DeviceOrHostAddressConstKHR)) (triangleArray) . ($ ())+    lift $ poke ((p `plusPtr` 88 :: Ptr DeviceSize)) (triangleArrayStride)+    lift $ f+  cStructSize = 96+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr MicromapTypeEXT)) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr BuildMicromapModeEXT)) (zero)+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 64 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 72 :: Ptr DeviceOrHostAddressKHR)) (zero) . ($ ())+    ContT $ pokeCStruct ((p `plusPtr` 80 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())+    lift $ poke ((p `plusPtr` 88 :: Ptr DeviceSize)) (zero)+    lift $ f++instance Zero MicromapBuildInfoEXT where+  zero = MicromapBuildInfoEXT+           zero+           zero+           zero+           zero+           zero+           mempty+           zero+           zero+           zero+           zero+++-- | VkMicromapCreateInfoEXT - Structure specifying the parameters of a newly+-- created micromap object+--+-- = Description+--+-- If @deviceAddress@ is zero, no specific address is requested.+--+-- If @deviceAddress@ is not zero, @deviceAddress@ /must/ be an address+-- retrieved from an identically created micromap on the same+-- implementation. The micromap /must/ also be placed on an identically+-- created @buffer@ and at the same @offset@.+--+-- Applications /should/ avoid creating micromaps with application-provided+-- addresses and implementation-provided addresses in the same process, to+-- reduce the likelihood of+-- 'Vulkan.Extensions.VK_KHR_buffer_device_address.ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR'+-- errors.+--+-- Note+--+-- The expected usage for this is that a trace capture\/replay tool will+-- add the+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT'+-- flag to all buffers that use+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT',+-- and will add+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT'+-- to all buffers used as storage for a micromap where @deviceAddress@ is+-- not zero. This also means that the tool will need to add+-- 'Vulkan.Core11.Enums.MemoryAllocateFlagBits.MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT'+-- to memory allocations to allow the flag to be set where the application+-- may not have otherwise required it. During capture the tool will save+-- the queried opaque device addresses in the trace. During replay, the+-- buffers will be created specifying the original address so any address+-- values stored in the trace data will remain valid.+--+-- Implementations are expected to separate such buffers in the GPU address+-- space so normal allocations will avoid using these addresses.+-- Apps\/tools should avoid mixing app-provided and implementation-provided+-- addresses for buffers created with+-- 'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT',+-- to avoid address space allocation conflicts.+--+-- If the micromap will be the target of a build operation, the required+-- size for a micromap /can/ be queried with 'getMicromapBuildSizesEXT'.+--+-- == Valid Usage+--+-- -   #VUID-VkMicromapCreateInfoEXT-deviceAddress-07433# If+--     @deviceAddress@ is not zero, @createFlags@ /must/ include+--     'MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT'+--+-- -   #VUID-VkMicromapCreateInfoEXT-createFlags-07434# If @createFlags@+--     includes 'MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT',+--     'PhysicalDeviceOpacityMicromapFeaturesEXT'::@micromapCaptureReplay@+--     /must/ be 'Vulkan.Core10.FundamentalTypes.TRUE'+--+-- -   #VUID-VkMicromapCreateInfoEXT-buffer-07435# @buffer@ /must/ have+--     been created with a @usage@ value containing+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT'+--+-- -   #VUID-VkMicromapCreateInfoEXT-buffer-07436# @buffer@ /must/ not have+--     been created with+--     'Vulkan.Core10.Enums.BufferCreateFlagBits.BUFFER_CREATE_SPARSE_RESIDENCY_BIT'+--+-- -   #VUID-VkMicromapCreateInfoEXT-offset-07437# The sum of @offset@ and+--     @size@ /must/ be less than the size of @buffer@+--+-- -   #VUID-VkMicromapCreateInfoEXT-offset-07438# @offset@ /must/ be a+--     multiple of @256@ bytes+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkMicromapCreateInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT'+--+-- -   #VUID-VkMicromapCreateInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkMicromapCreateInfoEXT-createFlags-parameter# @createFlags@+--     /must/ be a valid combination of 'MicromapCreateFlagBitsEXT' values+--+-- -   #VUID-VkMicromapCreateInfoEXT-buffer-parameter# @buffer@ /must/ be a+--     valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-VkMicromapCreateInfoEXT-type-parameter# @type@ /must/ be a+--     valid 'MicromapTypeEXT' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Handles.Buffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceAddress',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize', 'MicromapCreateFlagsEXT',+-- 'MicromapTypeEXT', 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createMicromapEXT'+data MicromapCreateInfoEXT = MicromapCreateInfoEXT+  { -- | @createFlags@ is a bitmask of 'MicromapCreateFlagBitsEXT' specifying+    -- additional creation parameters of the micromap.+    createFlags :: MicromapCreateFlagsEXT+  , -- | @buffer@ is the buffer on which the micromap will be stored.+    buffer :: Buffer+  , -- | @offset@ is an offset in bytes from the base address of the buffer at+    -- which the micromap will be stored, and /must/ be a multiple of @256@.+    offset :: DeviceSize+  , -- | @size@ is the size required for the micromap.+    size :: DeviceSize+  , -- | @type@ is a 'MicromapTypeEXT' value specifying the type of micromap that+    -- will be created.+    type' :: MicromapTypeEXT+  , -- | @deviceAddress@ is the device address requested for the micromap if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-micromapCaptureReplay micromapCaptureReplay>+    -- feature is being used.+    deviceAddress :: DeviceAddress+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MicromapCreateInfoEXT)+#endif+deriving instance Show MicromapCreateInfoEXT++instance ToCStruct MicromapCreateInfoEXT where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MicromapCreateInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr MicromapCreateFlagsEXT)) (createFlags)+    poke ((p `plusPtr` 24 :: Ptr Buffer)) (buffer)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (offset)+    poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (size)+    poke ((p `plusPtr` 48 :: Ptr MicromapTypeEXT)) (type')+    poke ((p `plusPtr` 56 :: Ptr DeviceAddress)) (deviceAddress)+    f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)+    poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 40 :: Ptr DeviceSize)) (zero)+    poke ((p `plusPtr` 48 :: Ptr MicromapTypeEXT)) (zero)+    f++instance FromCStruct MicromapCreateInfoEXT where+  peekCStruct p = do+    createFlags <- peek @MicromapCreateFlagsEXT ((p `plusPtr` 16 :: Ptr MicromapCreateFlagsEXT))+    buffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer))+    offset <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+    size <- peek @DeviceSize ((p `plusPtr` 40 :: Ptr DeviceSize))+    type' <- peek @MicromapTypeEXT ((p `plusPtr` 48 :: Ptr MicromapTypeEXT))+    deviceAddress <- peek @DeviceAddress ((p `plusPtr` 56 :: Ptr DeviceAddress))+    pure $ MicromapCreateInfoEXT+             createFlags buffer offset size type' deviceAddress++instance Storable MicromapCreateInfoEXT where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MicromapCreateInfoEXT where+  zero = MicromapCreateInfoEXT+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkMicromapVersionInfoEXT - Micromap version information+--+-- = Description+--+-- Note+--+-- @pVersionData@ is a /pointer/ to an array of+-- 2×'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values instead of two+-- 'Vulkan.Core10.APIConstants.UUID_SIZE' arrays as the expected use case+-- for this member is to be pointed at the header of a previously+-- serialized micromap (via 'cmdCopyMicromapToMemoryEXT' or+-- 'copyMicromapToMemoryEXT') that is loaded in memory. Using arrays would+-- necessitate extra memory copies of the UUIDs.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getDeviceMicromapCompatibilityEXT'+data MicromapVersionInfoEXT = MicromapVersionInfoEXT+  { -- | @pVersionData@ is a pointer to the version header of a micromap as+    -- defined in 'cmdCopyMicromapToMemoryEXT'+    --+    -- #VUID-VkMicromapVersionInfoEXT-pVersionData-parameter# @pVersionData@+    -- /must/ be a valid pointer to an array of+    -- \(2 \times \mathtt{VK\_UUID\_SIZE}\) @uint8_t@ values+    versionData :: ByteString }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MicromapVersionInfoEXT)+#endif+deriving instance Show MicromapVersionInfoEXT++instance ToCStruct MicromapVersionInfoEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MicromapVersionInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ unless (Data.ByteString.length (versionData) == 2 * UUID_SIZE) $+      throwIO $ IOError Nothing InvalidArgument "" "VkMicromapVersionInfoEXT::versionData must be 2*VK_UUID_SIZE bytes" Nothing Nothing+    versionData' <- fmap (castPtr @CChar @Word8) . ContT $ unsafeUseAsCString (versionData)+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr Word8))) versionData'+    lift $ f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct MicromapVersionInfoEXT where+  peekCStruct p = do+    versionData <- peek @(Ptr Word8) ((p `plusPtr` 16 :: Ptr (Ptr Word8)))+    versionData' <- packCStringLen ( castPtr @Word8 @CChar versionData+                                   , 2 * UUID_SIZE )+    pure $ MicromapVersionInfoEXT+             versionData'++instance Zero MicromapVersionInfoEXT where+  zero = MicromapVersionInfoEXT+           mempty+++-- | VkCopyMicromapInfoEXT - Parameters for copying a micromap+--+-- == Valid Usage+--+-- -   #VUID-VkCopyMicromapInfoEXT-mode-07531# @mode@ /must/ be+--     'COPY_MICROMAP_MODE_COMPACT_EXT' or 'COPY_MICROMAP_MODE_CLONE_EXT'+--+-- -   #VUID-VkCopyMicromapInfoEXT-src-07532# The source acceleration+--     structure @src@ /must/ have been constructed prior to the execution+--     of this command+--+-- -   #VUID-VkCopyMicromapInfoEXT-mode-07533# If @mode@ is+--     'COPY_MICROMAP_MODE_COMPACT_EXT', @src@ /must/ have been constructed+--     with 'BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT' in the build+--+-- -   #VUID-VkCopyMicromapInfoEXT-buffer-07534# The @buffer@ used to+--     create @src@ /must/ be bound to device memory+--+-- -   #VUID-VkCopyMicromapInfoEXT-buffer-07535# The @buffer@ used to+--     create @dst@ /must/ be bound to device memory+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyMicromapInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT'+--+-- -   #VUID-VkCopyMicromapInfoEXT-pNext-pNext# @pNext@ /must/ be @NULL@+--+-- -   #VUID-VkCopyMicromapInfoEXT-src-parameter# @src@ /must/ be a valid+--     'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-VkCopyMicromapInfoEXT-dst-parameter# @dst@ /must/ be a valid+--     'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-VkCopyMicromapInfoEXT-mode-parameter# @mode@ /must/ be a valid+--     'CopyMicromapModeEXT' value+--+-- -   #VUID-VkCopyMicromapInfoEXT-commonparent# Both of @dst@, and @src@+--     /must/ have been created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMicromapModeEXT', 'Vulkan.Extensions.Handles.MicromapEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyMicromapEXT',+-- 'copyMicromapEXT'+data CopyMicromapInfoEXT = CopyMicromapInfoEXT+  { -- | @src@ is the source micromap for the copy.+    src :: MicromapEXT+  , -- | @dst@ is the target micromap for the copy.+    dst :: MicromapEXT+  , -- | @mode@ is a 'CopyMicromapModeEXT' value specifying additional operations+    -- to perform during the copy.+    mode :: CopyMicromapModeEXT+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyMicromapInfoEXT)+#endif+deriving instance Show CopyMicromapInfoEXT++instance ToCStruct CopyMicromapInfoEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyMicromapInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr MicromapEXT)) (src)+    poke ((p `plusPtr` 24 :: Ptr MicromapEXT)) (dst)+    poke ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT)) (mode)+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr MicromapEXT)) (zero)+    poke ((p `plusPtr` 24 :: Ptr MicromapEXT)) (zero)+    poke ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT)) (zero)+    f++instance FromCStruct CopyMicromapInfoEXT where+  peekCStruct p = do+    src <- peek @MicromapEXT ((p `plusPtr` 16 :: Ptr MicromapEXT))+    dst <- peek @MicromapEXT ((p `plusPtr` 24 :: Ptr MicromapEXT))+    mode <- peek @CopyMicromapModeEXT ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT))+    pure $ CopyMicromapInfoEXT+             src dst mode++instance Storable CopyMicromapInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CopyMicromapInfoEXT where+  zero = CopyMicromapInfoEXT+           zero+           zero+           zero+++-- | VkCopyMicromapToMemoryInfoEXT - Parameters for serializing a micromap+--+-- == Valid Usage+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-src-07540# The source micromap+--     @src@ /must/ have been constructed prior to the execution of this+--     command+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-dst-07541# The memory pointed to+--     by @dst@ /must/ be at least as large as the serialization size of+--     @src@, as reported by 'writeMicromapsPropertiesEXT' or+--     'cmdWriteMicromapsPropertiesEXT' with a query type of+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-mode-07542# @mode@ /must/ be+--     'COPY_MICROMAP_MODE_SERIALIZE_EXT'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT'+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-src-parameter# @src@ /must/ be a+--     valid 'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-VkCopyMicromapToMemoryInfoEXT-mode-parameter# @mode@ /must/ be+--     a valid 'CopyMicromapModeEXT' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMicromapModeEXT',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressKHR',+-- 'Vulkan.Extensions.Handles.MicromapEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyMicromapToMemoryEXT', 'copyMicromapToMemoryEXT'+data CopyMicromapToMemoryInfoEXT = CopyMicromapToMemoryInfoEXT+  { -- | @src@ is the source micromap for the copy+    src :: MicromapEXT+  , -- | @dst@ is the device or host address to memory which is the target for+    -- the copy+    dst :: DeviceOrHostAddressKHR+  , -- | @mode@ is a 'CopyMicromapModeEXT' value specifying additional operations+    -- to perform during the copy.+    mode :: CopyMicromapModeEXT+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyMicromapToMemoryInfoEXT)+#endif+deriving instance Show CopyMicromapToMemoryInfoEXT++instance ToCStruct CopyMicromapToMemoryInfoEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyMicromapToMemoryInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr MicromapEXT)) (src)+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DeviceOrHostAddressKHR)) (dst) . ($ ())+    lift $ poke ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT)) (mode)+    lift $ f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr MicromapEXT)) (zero)+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DeviceOrHostAddressKHR)) (zero) . ($ ())+    lift $ poke ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT)) (zero)+    lift $ f++instance Zero CopyMicromapToMemoryInfoEXT where+  zero = CopyMicromapToMemoryInfoEXT+           zero+           zero+           zero+++-- | VkCopyMemoryToMicromapInfoEXT - Parameters for deserializing a micromap+--+-- == Valid Usage+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-src-07547# The source memory+--     pointed to by @src@ /must/ contain data previously serialized using+--     'cmdCopyMicromapToMemoryEXT'+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-mode-07548# @mode@ /must/ be+--     'COPY_MICROMAP_MODE_DESERIALIZE_EXT'+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-src-07549# The data in @src@+--     /must/ have a format compatible with the destination physical device+--     as returned by 'getDeviceMicromapCompatibilityEXT'+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-dst-07550# @dst@ /must/ have+--     been created with a @size@ greater than or equal to that used to+--     serialize the data in @src@+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT'+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-dst-parameter# @dst@ /must/ be a+--     valid 'Vulkan.Extensions.Handles.MicromapEXT' handle+--+-- -   #VUID-VkCopyMemoryToMicromapInfoEXT-mode-parameter# @mode@ /must/ be+--     a valid 'CopyMicromapModeEXT' value+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMicromapModeEXT',+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',+-- 'Vulkan.Extensions.Handles.MicromapEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyMemoryToMicromapEXT', 'copyMemoryToMicromapEXT'+data CopyMemoryToMicromapInfoEXT = CopyMemoryToMicromapInfoEXT+  { -- | @src@ is the device or host address to memory containing the source data+    -- for the copy.+    src :: DeviceOrHostAddressConstKHR+  , -- | @dst@ is the target micromap for the copy.+    dst :: MicromapEXT+  , -- | @mode@ is a 'CopyMicromapModeEXT' value specifying additional operations+    -- to perform during the copy.+    mode :: CopyMicromapModeEXT+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyMemoryToMicromapInfoEXT)+#endif+deriving instance Show CopyMemoryToMicromapInfoEXT++instance ToCStruct CopyMemoryToMicromapInfoEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CopyMemoryToMicromapInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr DeviceOrHostAddressConstKHR)) (src) . ($ ())+    lift $ poke ((p `plusPtr` 24 :: Ptr MicromapEXT)) (dst)+    lift $ poke ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT)) (mode)+    lift $ f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())+    lift $ poke ((p `plusPtr` 24 :: Ptr MicromapEXT)) (zero)+    lift $ poke ((p `plusPtr` 32 :: Ptr CopyMicromapModeEXT)) (zero)+    lift $ f++instance Zero CopyMemoryToMicromapInfoEXT where+  zero = CopyMemoryToMicromapInfoEXT+           zero+           zero+           zero+++-- | VkMicromapBuildSizesInfoEXT - Structure specifying build sizes for a+-- micromap+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getMicromapBuildSizesEXT'+data MicromapBuildSizesInfoEXT = MicromapBuildSizesInfoEXT+  { -- | @micromapSize@ is the size in bytes required in a+    -- 'Vulkan.Extensions.Handles.MicromapEXT' for a build or update operation.+    micromapSize :: DeviceSize+  , -- | @buildScratchSize@ is the size in bytes required in a scratch buffer for+    -- a build operation.+    buildScratchSize :: DeviceSize+  , -- | @discardable@ indicates whether or not the micromap object may be+    -- destroyed after an acceleration structure build or update. A false value+    -- means that acceleration structures built with this micromap /may/+    -- contain references to the data contained therein, and the application+    -- /must/ not destroy the micromap until ray traversal has concluded. A+    -- true value means that the information in the micromap will be copied by+    -- value into the acceleration structure, and the micromap /may/ be+    -- destroyed after the acceleration structure build concludes.+    discardable :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MicromapBuildSizesInfoEXT)+#endif+deriving instance Show MicromapBuildSizesInfoEXT++instance ToCStruct MicromapBuildSizesInfoEXT where+  withCStruct x f = allocaBytes 40 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MicromapBuildSizesInfoEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (micromapSize)+    poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (buildScratchSize)+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (discardable))+    f+  cStructSize = 40+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT)+    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 Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct MicromapBuildSizesInfoEXT where+  peekCStruct p = do+    micromapSize <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+    buildScratchSize <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+    discardable <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    pure $ MicromapBuildSizesInfoEXT+             micromapSize buildScratchSize (bool32ToBool discardable)++instance Storable MicromapBuildSizesInfoEXT where+  sizeOf ~_ = 40+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MicromapBuildSizesInfoEXT where+  zero = MicromapBuildSizesInfoEXT+           zero+           zero+           zero+++-- | VkMicromapUsageEXT - Structure specifying the usage information used to+-- build a micromap+--+-- == Valid Usage+--+-- -   #VUID-VkMicromapUsageEXT-format-07519# If the 'MicromapTypeEXT' of+--     the micromap is 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' then @format@+--     /must/ be 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' or+--     'OPACITY_MICROMAP_FORMAT_4_STATE_EXT'.+--+-- -   #VUID-VkMicromapUsageEXT-format-07520# If the 'MicromapTypeEXT' of+--     the micromap is 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' and @format@ is+--     'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' then @subdivisionLevel@ /must/+--     be less than or equal to @maxOpacity2StateSubdivisionLevel@ of+--     'PhysicalDeviceOpacityMicromapPropertiesEXT'+--+-- -   #VUID-VkMicromapUsageEXT-format-07521# If the 'MicromapTypeEXT' of+--     the micromap is 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' and @format@ is+--     'OPACITY_MICROMAP_FORMAT_4_STATE_EXT' then @subdivisionLevel@ /must/+--     be less than or equal to @maxOpacity4StateSubdivisionLevel@ of+--     'PhysicalDeviceOpacityMicromapPropertiesEXT'+--+-- The @format@ is interpreted based on the @type@ of the micromap using+-- it.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'AccelerationStructureTrianglesOpacityMicromapEXT',+-- 'MicromapBuildInfoEXT'+data MicromapUsageEXT = MicromapUsageEXT+  { -- | @count@ is the number of triangles in the usage format defined by the+    -- @subdivisionLevel@ and @format@ below in the micromap+    count :: Word32+  , -- | @subdivisionLevel@ is the subdivision level of this usage format+    subdivisionLevel :: Word32+  , -- | @format@ is the format of this usage format+    format :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MicromapUsageEXT)+#endif+deriving instance Show MicromapUsageEXT++instance ToCStruct MicromapUsageEXT where+  withCStruct x f = allocaBytes 12 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MicromapUsageEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (count)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (subdivisionLevel)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (format)+    f+  cStructSize = 12+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+    f++instance FromCStruct MicromapUsageEXT where+  peekCStruct p = do+    count <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+    subdivisionLevel <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+    format <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+    pure $ MicromapUsageEXT+             count subdivisionLevel format++instance Storable MicromapUsageEXT where+  sizeOf ~_ = 12+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MicromapUsageEXT where+  zero = MicromapUsageEXT+           zero+           zero+           zero+++-- | VkMicromapTriangleEXT - Structure specifying the micromap format and+-- data for a triangle+--+-- == Valid Usage+--+-- -   #VUID-VkMicromapTriangleEXT-format-07522# If the 'MicromapTypeEXT'+--     of the micromap is 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' then+--     @format@ /must/ be 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' or+--     'OPACITY_MICROMAP_FORMAT_4_STATE_EXT'.+--+-- -   #VUID-VkMicromapTriangleEXT-format-07523# If the 'MicromapTypeEXT'+--     of the micromap is 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' and @format@+--     is 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' then @subdivisionLevel@+--     /must/ be less than or equal to @maxOpacity2StateSubdivisionLevel@+--     of 'PhysicalDeviceOpacityMicromapPropertiesEXT'+--+-- -   #VUID-VkMicromapTriangleEXT-format-07524# If the 'MicromapTypeEXT'+--     of the micromap is 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' and @format@+--     is 'OPACITY_MICROMAP_FORMAT_4_STATE_EXT' then @subdivisionLevel@+--     /must/ be less than or equal to @maxOpacity4StateSubdivisionLevel@+--     of 'PhysicalDeviceOpacityMicromapPropertiesEXT'+--+-- The @format@ is interpreted based on the @type@ of the micromap using+-- it.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>+data MicromapTriangleEXT = MicromapTriangleEXT+  { -- | @dataOffset@ is the offset in bytes of the start of the data for this+    -- triangle. This is a byte aligned value.+    dataOffset :: Word32+  , -- | @subdivisionLevel@ is the subdivision level of this triangle+    subdivisionLevel :: Word16+  , -- | @format@ is the format of this triangle+    format :: Word16+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MicromapTriangleEXT)+#endif+deriving instance Show MicromapTriangleEXT++instance ToCStruct MicromapTriangleEXT where+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p MicromapTriangleEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (dataOffset)+    poke ((p `plusPtr` 4 :: Ptr Word16)) (subdivisionLevel)+    poke ((p `plusPtr` 6 :: Ptr Word16)) (format)+    f+  cStructSize = 8+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 4 :: Ptr Word16)) (zero)+    poke ((p `plusPtr` 6 :: Ptr Word16)) (zero)+    f++instance FromCStruct MicromapTriangleEXT where+  peekCStruct p = do+    dataOffset <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+    subdivisionLevel <- peek @Word16 ((p `plusPtr` 4 :: Ptr Word16))+    format <- peek @Word16 ((p `plusPtr` 6 :: Ptr Word16))+    pure $ MicromapTriangleEXT+             dataOffset subdivisionLevel format++instance Storable MicromapTriangleEXT where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MicromapTriangleEXT where+  zero = MicromapTriangleEXT+           zero+           zero+           zero+++-- | VkPhysicalDeviceOpacityMicromapFeaturesEXT - Structure describing the+-- ray tracing opacity micromap features that can be supported by an+-- implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceOpacityMicromapFeaturesEXT' 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. 'PhysicalDeviceOpacityMicromapFeaturesEXT' /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_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceOpacityMicromapFeaturesEXT = PhysicalDeviceOpacityMicromapFeaturesEXT+  { -- | #features-micromap# @micromap@ indicates whether the implementation+    -- supports the micromap array feature.+    micromap :: Bool+  , -- | #features-micromapCaptureReplay# @micromapCaptureReplay@ indicates+    -- whether the implementation supports capture and replay of addresses for+    -- micromap arrays.+    micromapCaptureReplay :: Bool+  , -- | #features-micromapHostCommands# @micromapHostCommands@ indicates whether+    -- the implementation supports host side micromap array commands.+    micromapHostCommands :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceOpacityMicromapFeaturesEXT)+#endif+deriving instance Show PhysicalDeviceOpacityMicromapFeaturesEXT++instance ToCStruct PhysicalDeviceOpacityMicromapFeaturesEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceOpacityMicromapFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (micromap))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (micromapCaptureReplay))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (micromapHostCommands))+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceOpacityMicromapFeaturesEXT where+  peekCStruct p = do+    micromap <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    micromapCaptureReplay <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    micromapHostCommands <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    pure $ PhysicalDeviceOpacityMicromapFeaturesEXT+             (bool32ToBool micromap)+             (bool32ToBool micromapCaptureReplay)+             (bool32ToBool micromapHostCommands)++instance Storable PhysicalDeviceOpacityMicromapFeaturesEXT where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceOpacityMicromapFeaturesEXT where+  zero = PhysicalDeviceOpacityMicromapFeaturesEXT+           zero+           zero+           zero+++-- | VkPhysicalDeviceOpacityMicromapPropertiesEXT - Structure describing the+-- opacity micromap properties of a physical device+--+-- = Description+--+-- If the 'PhysicalDeviceOpacityMicromapPropertiesEXT' 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_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceOpacityMicromapPropertiesEXT = PhysicalDeviceOpacityMicromapPropertiesEXT+  { -- | @maxOpacity2StateSubdivisionLevel@ is the maximum allowed+    -- @subdivisionLevel@ when @format@ is+    -- 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT'+    maxOpacity2StateSubdivisionLevel :: Word32+  , -- | @maxOpacity4StateSubdivisionLevel@ is the maximum allowed+    -- @subdivisionLevel@ when @format@ is+    -- 'OPACITY_MICROMAP_FORMAT_4_STATE_EXT'+    maxOpacity4StateSubdivisionLevel :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceOpacityMicromapPropertiesEXT)+#endif+deriving instance Show PhysicalDeviceOpacityMicromapPropertiesEXT++instance ToCStruct PhysicalDeviceOpacityMicromapPropertiesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceOpacityMicromapPropertiesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxOpacity2StateSubdivisionLevel)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxOpacity4StateSubdivisionLevel)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceOpacityMicromapPropertiesEXT where+  peekCStruct p = do+    maxOpacity2StateSubdivisionLevel <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    maxOpacity4StateSubdivisionLevel <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pure $ PhysicalDeviceOpacityMicromapPropertiesEXT+             maxOpacity2StateSubdivisionLevel maxOpacity4StateSubdivisionLevel++instance Storable PhysicalDeviceOpacityMicromapPropertiesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceOpacityMicromapPropertiesEXT where+  zero = PhysicalDeviceOpacityMicromapPropertiesEXT+           zero+           zero+++-- | VkAccelerationStructureTrianglesOpacityMicromapEXT - Structure+-- specifying an opacity micromap in a bottom-level acceleration structure+--+-- = Description+--+-- If 'AccelerationStructureTrianglesOpacityMicromapEXT' is included in the+-- @pNext@ chain of a+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'+-- structure, that geometry will reference that micromap.+--+-- For each triangle in the geometry, the acceleration structure build+-- fetches an index from @indexBuffer@ using @indexType@ and @indexStride@.+-- If that value is the unsigned cast of one of the values from+-- 'OpacityMicromapSpecialIndexEXT' then that triangle behaves as described+-- for that special value in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap Ray Opacity Micromap>.+-- Otherwise that triangle uses the opacity micromap information from+-- @micromap@ at that index plus @baseTriangle@.+--+-- Only one of @pUsageCounts@ or @ppUsageCounts@ /can/ be a valid pointer,+-- the other /must/ be @NULL@. The elements of the non-@NULL@ array+-- describe the total count used to build this geometry. For a given+-- @format@ and @subdivisionLevel@ the number of triangles in this geometry+-- matching those values after indirection and special index handling+-- /must/ be equal to the sum of matching @count@ provided.+--+-- If @micromap@ is 'Vulkan.Core10.APIConstants.NULL_HANDLE', then every+-- value read from @indexBuffer@ /must/ be one of the values in+-- 'OpacityMicromapSpecialIndexEXT'.+--+-- == Valid Usage+--+-- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-07335#+--     Only one of @pUsageCounts@ or @ppUsageCounts@ /can/ be a valid+--     pointer, the other /must/ be @NULL@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-sType-sType#+--     @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT'+--+-- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-indexType-parameter#+--     @indexType@ /must/ be a valid+--     'Vulkan.Core10.Enums.IndexType.IndexType' value+--+-- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-pUsageCounts-parameter#+--     If @usageCountsCount@ is not @0@, and @pUsageCounts@ is not @NULL@,+--     @pUsageCounts@ /must/ be a valid pointer to an array of+--     @usageCountsCount@ 'MicromapUsageEXT' structures+--+-- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-ppUsageCounts-parameter#+--     If @usageCountsCount@ is not @0@, and @ppUsageCounts@ is not @NULL@,+--     @ppUsageCounts@ /must/ be a valid pointer to an array of+--     @usageCountsCount@ valid pointers to 'MicromapUsageEXT' structures+--+-- -   #VUID-VkAccelerationStructureTrianglesOpacityMicromapEXT-micromap-parameter#+--     @micromap@ /must/ be a valid 'Vulkan.Extensions.Handles.MicromapEXT'+--     handle+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'Vulkan.Extensions.VK_KHR_acceleration_structure.DeviceOrHostAddressConstKHR',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.IndexType.IndexType',+-- 'Vulkan.Extensions.Handles.MicromapEXT', 'MicromapUsageEXT',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data AccelerationStructureTrianglesOpacityMicromapEXT = AccelerationStructureTrianglesOpacityMicromapEXT+  { -- | @indexType@ is the type of triangle indices used when indexing this+    -- micromap+    indexType :: IndexType+  , -- | @indexBuffer@ is the address containing the triangle indices+    indexBuffer :: DeviceOrHostAddressConstKHR+  , -- | @indexStride@ is the byte stride between triangle indices+    indexStride :: DeviceSize+  , -- | @baseTriangle@ is the base value added to the non-negative triangle+    -- indices+    baseTriangle :: Word32+  , -- | @usageCountsCount@ specifies the number of usage counts structures that+    -- will be used to determine the size of this micromap.+    usageCountsCount :: Word32+  , -- | @pUsageCounts@ is a pointer to an array of 'MicromapUsageEXT'+    -- structures.+    usageCounts :: Vector MicromapUsageEXT+  , -- | @micromap@ is the handle to the micromap object to include in this+    -- geometry+    micromap :: MicromapEXT+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (AccelerationStructureTrianglesOpacityMicromapEXT)+#endif+deriving instance Show AccelerationStructureTrianglesOpacityMicromapEXT++instance ToCStruct AccelerationStructureTrianglesOpacityMicromapEXT where+  withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p AccelerationStructureTrianglesOpacityMicromapEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr IndexType)) (indexType)+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DeviceOrHostAddressConstKHR)) (indexBuffer) . ($ ())+    lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (indexStride)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (baseTriangle)+    let pUsageCountsLength = Data.Vector.length $ (usageCounts)+    usageCountsCount'' <- lift $ if (usageCountsCount) == 0+      then pure $ fromIntegral pUsageCountsLength+      else do+        unless (fromIntegral pUsageCountsLength == (usageCountsCount) || pUsageCountsLength == 0) $+          throwIO $ IOError Nothing InvalidArgument "" "pUsageCounts must be empty or have 'usageCountsCount' elements" Nothing Nothing+        pure (usageCountsCount)+    lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) (usageCountsCount'')+    pUsageCounts'' <- if Data.Vector.null (usageCounts)+      then pure nullPtr+      else do+        pPUsageCounts <- ContT $ allocaBytes @MicromapUsageEXT (((Data.Vector.length (usageCounts))) * 12)+        lift $ Data.Vector.imapM_ (\i e -> poke (pPUsageCounts `plusPtr` (12 * (i)) :: Ptr MicromapUsageEXT) (e)) ((usageCounts))+        pure $ pPUsageCounts+    lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr MicromapUsageEXT))) pUsageCounts''+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr)+    lift $ poke ((p `plusPtr` 64 :: Ptr MicromapEXT)) (micromap)+    lift $ f+  cStructSize = 72+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr IndexType)) (zero)+    ContT $ pokeCStruct ((p `plusPtr` 24 :: Ptr DeviceOrHostAddressConstKHR)) (zero) . ($ ())+    lift $ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+    lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 56 :: Ptr (Ptr (Ptr MicromapUsageEXT)))) (nullPtr)+    lift $ poke ((p `plusPtr` 64 :: Ptr MicromapEXT)) (zero)+    lift $ f++instance Zero AccelerationStructureTrianglesOpacityMicromapEXT where+  zero = AccelerationStructureTrianglesOpacityMicromapEXT+           zero+           zero+           zero+           zero+           zero+           mempty+           zero+++-- | VkMicromapTypeEXT - Type of micromap+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'MicromapBuildInfoEXT', 'MicromapCreateInfoEXT'+newtype MicromapTypeEXT = MicromapTypeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'MICROMAP_TYPE_OPACITY_MICROMAP_EXT' is a micromap containing data to+-- control the opacity of a triangle+pattern MICROMAP_TYPE_OPACITY_MICROMAP_EXT = MicromapTypeEXT 0++{-# COMPLETE MICROMAP_TYPE_OPACITY_MICROMAP_EXT :: MicromapTypeEXT #-}++conNameMicromapTypeEXT :: String+conNameMicromapTypeEXT = "MicromapTypeEXT"++enumPrefixMicromapTypeEXT :: String+enumPrefixMicromapTypeEXT = "MICROMAP_TYPE_OPACITY_MICROMAP_EXT"++showTableMicromapTypeEXT :: [(MicromapTypeEXT, String)]+showTableMicromapTypeEXT = [(MICROMAP_TYPE_OPACITY_MICROMAP_EXT, "")]++instance Show MicromapTypeEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixMicromapTypeEXT+      showTableMicromapTypeEXT+      conNameMicromapTypeEXT+      (\(MicromapTypeEXT x) -> x)+      (showsPrec 11)++instance Read MicromapTypeEXT where+  readPrec =+    enumReadPrec+      enumPrefixMicromapTypeEXT+      showTableMicromapTypeEXT+      conNameMicromapTypeEXT+      MicromapTypeEXT++type BuildMicromapFlagsEXT = BuildMicromapFlagBitsEXT++-- | VkBuildMicromapFlagBitsEXT - Bitmask specifying additional parameters+-- for micromap builds+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'BuildMicromapFlagsEXT'+newtype BuildMicromapFlagBitsEXT = BuildMicromapFlagBitsEXT Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT' indicates that the given+-- micromap build /should/ prioritize trace performance over build time.+pattern BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000001++-- | 'BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT' indicates that the given+-- micromap build /should/ prioritize build time over trace performance.+pattern BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000002++-- No documentation found for Nested "VkBuildMicromapFlagBitsEXT" "VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT"+pattern BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = BuildMicromapFlagBitsEXT 0x00000004++conNameBuildMicromapFlagBitsEXT :: String+conNameBuildMicromapFlagBitsEXT = "BuildMicromapFlagBitsEXT"++enumPrefixBuildMicromapFlagBitsEXT :: String+enumPrefixBuildMicromapFlagBitsEXT = "BUILD_MICROMAP_"++showTableBuildMicromapFlagBitsEXT :: [(BuildMicromapFlagBitsEXT, String)]+showTableBuildMicromapFlagBitsEXT =+  [+    ( BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT+    , "PREFER_FAST_TRACE_BIT_EXT"+    )+  ,+    ( BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT+    , "PREFER_FAST_BUILD_BIT_EXT"+    )+  ,+    ( BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT+    , "ALLOW_COMPACTION_BIT_EXT"+    )+  ]++instance Show BuildMicromapFlagBitsEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixBuildMicromapFlagBitsEXT+      showTableBuildMicromapFlagBitsEXT+      conNameBuildMicromapFlagBitsEXT+      (\(BuildMicromapFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read BuildMicromapFlagBitsEXT where+  readPrec =+    enumReadPrec+      enumPrefixBuildMicromapFlagBitsEXT+      showTableBuildMicromapFlagBitsEXT+      conNameBuildMicromapFlagBitsEXT+      BuildMicromapFlagBitsEXT++type MicromapCreateFlagsEXT = MicromapCreateFlagBitsEXT++-- | VkMicromapCreateFlagBitsEXT - Bitmask specifying additional creation+-- parameters for micromap+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'MicromapCreateFlagsEXT'+newtype MicromapCreateFlagBitsEXT = MicromapCreateFlagBitsEXT Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT' specifies that+-- the micromap’s address /can/ be saved and reused on a subsequent run.+pattern MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = MicromapCreateFlagBitsEXT 0x00000001++conNameMicromapCreateFlagBitsEXT :: String+conNameMicromapCreateFlagBitsEXT = "MicromapCreateFlagBitsEXT"++enumPrefixMicromapCreateFlagBitsEXT :: String+enumPrefixMicromapCreateFlagBitsEXT = "MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT"++showTableMicromapCreateFlagBitsEXT :: [(MicromapCreateFlagBitsEXT, String)]+showTableMicromapCreateFlagBitsEXT =+  [+    ( MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT+    , ""+    )+  ]++instance Show MicromapCreateFlagBitsEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixMicromapCreateFlagBitsEXT+      showTableMicromapCreateFlagBitsEXT+      conNameMicromapCreateFlagBitsEXT+      (\(MicromapCreateFlagBitsEXT x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read MicromapCreateFlagBitsEXT where+  readPrec =+    enumReadPrec+      enumPrefixMicromapCreateFlagBitsEXT+      showTableMicromapCreateFlagBitsEXT+      conNameMicromapCreateFlagBitsEXT+      MicromapCreateFlagBitsEXT++-- | VkCopyMicromapModeEXT - Micromap copy mode+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'CopyMemoryToMicromapInfoEXT', 'CopyMicromapInfoEXT',+-- 'CopyMicromapToMemoryInfoEXT'+newtype CopyMicromapModeEXT = CopyMicromapModeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'COPY_MICROMAP_MODE_CLONE_EXT' creates a direct copy of the micromap+-- specified in @src@ into the one specified by @dst@. The @dst@ micromap+-- /must/ have been created with the same parameters as @src@.+pattern COPY_MICROMAP_MODE_CLONE_EXT = CopyMicromapModeEXT 0++-- | 'COPY_MICROMAP_MODE_SERIALIZE_EXT' serializes the micromap to a+-- semi-opaque format which can be reloaded on a compatible implementation.+pattern COPY_MICROMAP_MODE_SERIALIZE_EXT = CopyMicromapModeEXT 1++-- | 'COPY_MICROMAP_MODE_DESERIALIZE_EXT' deserializes the semi-opaque+-- serialization format in the buffer to the micromap.+pattern COPY_MICROMAP_MODE_DESERIALIZE_EXT = CopyMicromapModeEXT 2++-- | 'COPY_MICROMAP_MODE_COMPACT_EXT' creates a more compact version of a+-- micromap @src@ into @dst@. The micromap @dst@ /must/ have been created+-- with a size at least as large as that returned by+-- 'cmdWriteMicromapsPropertiesEXT' after the build of the micromap+-- specified by @src@.+pattern COPY_MICROMAP_MODE_COMPACT_EXT = CopyMicromapModeEXT 3++{-# COMPLETE+  COPY_MICROMAP_MODE_CLONE_EXT+  , COPY_MICROMAP_MODE_SERIALIZE_EXT+  , COPY_MICROMAP_MODE_DESERIALIZE_EXT+  , COPY_MICROMAP_MODE_COMPACT_EXT ::+    CopyMicromapModeEXT+  #-}++conNameCopyMicromapModeEXT :: String+conNameCopyMicromapModeEXT = "CopyMicromapModeEXT"++enumPrefixCopyMicromapModeEXT :: String+enumPrefixCopyMicromapModeEXT = "COPY_MICROMAP_MODE_"++showTableCopyMicromapModeEXT :: [(CopyMicromapModeEXT, String)]+showTableCopyMicromapModeEXT =+  [ (COPY_MICROMAP_MODE_CLONE_EXT, "CLONE_EXT")+  ,+    ( COPY_MICROMAP_MODE_SERIALIZE_EXT+    , "SERIALIZE_EXT"+    )+  ,+    ( COPY_MICROMAP_MODE_DESERIALIZE_EXT+    , "DESERIALIZE_EXT"+    )+  ,+    ( COPY_MICROMAP_MODE_COMPACT_EXT+    , "COMPACT_EXT"+    )+  ]++instance Show CopyMicromapModeEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixCopyMicromapModeEXT+      showTableCopyMicromapModeEXT+      conNameCopyMicromapModeEXT+      (\(CopyMicromapModeEXT x) -> x)+      (showsPrec 11)++instance Read CopyMicromapModeEXT where+  readPrec =+    enumReadPrec+      enumPrefixCopyMicromapModeEXT+      showTableCopyMicromapModeEXT+      conNameCopyMicromapModeEXT+      CopyMicromapModeEXT++-- | VkBuildMicromapModeEXT - Enum specifying the type of build operation to+-- perform+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>,+-- 'MicromapBuildInfoEXT'+newtype BuildMicromapModeEXT = BuildMicromapModeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'BUILD_MICROMAP_MODE_BUILD_EXT' specifies that the destination micromap+-- will be built using the specified data.+pattern BUILD_MICROMAP_MODE_BUILD_EXT = BuildMicromapModeEXT 0++{-# COMPLETE BUILD_MICROMAP_MODE_BUILD_EXT :: BuildMicromapModeEXT #-}++conNameBuildMicromapModeEXT :: String+conNameBuildMicromapModeEXT = "BuildMicromapModeEXT"++enumPrefixBuildMicromapModeEXT :: String+enumPrefixBuildMicromapModeEXT = "BUILD_MICROMAP_MODE_BUILD_EXT"++showTableBuildMicromapModeEXT :: [(BuildMicromapModeEXT, String)]+showTableBuildMicromapModeEXT = [(BUILD_MICROMAP_MODE_BUILD_EXT, "")]++instance Show BuildMicromapModeEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixBuildMicromapModeEXT+      showTableBuildMicromapModeEXT+      conNameBuildMicromapModeEXT+      (\(BuildMicromapModeEXT x) -> x)+      (showsPrec 11)++instance Read BuildMicromapModeEXT where+  readPrec =+    enumReadPrec+      enumPrefixBuildMicromapModeEXT+      showTableBuildMicromapModeEXT+      conNameBuildMicromapModeEXT+      BuildMicromapModeEXT++-- | VkOpacityMicromapFormatEXT - Format enum for opacity micromaps+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>+newtype OpacityMicromapFormatEXT = OpacityMicromapFormatEXT 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++-- | 'OPACITY_MICROMAP_FORMAT_2_STATE_EXT' indicates that the given micromap+-- format has one bit per subtriangle encoding either fully opaque or fully+-- transparent.+pattern OPACITY_MICROMAP_FORMAT_2_STATE_EXT = OpacityMicromapFormatEXT 1++-- | 'OPACITY_MICROMAP_FORMAT_4_STATE_EXT' indicates that the given micromap+-- format has two bits per subtriangle encoding four modes which can be+-- interpreted as described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap ray traversal>.+pattern OPACITY_MICROMAP_FORMAT_4_STATE_EXT = OpacityMicromapFormatEXT 2++{-# COMPLETE+  OPACITY_MICROMAP_FORMAT_2_STATE_EXT+  , OPACITY_MICROMAP_FORMAT_4_STATE_EXT ::+    OpacityMicromapFormatEXT+  #-}++conNameOpacityMicromapFormatEXT :: String+conNameOpacityMicromapFormatEXT = "OpacityMicromapFormatEXT"++enumPrefixOpacityMicromapFormatEXT :: String+enumPrefixOpacityMicromapFormatEXT = "OPACITY_MICROMAP_FORMAT_"++showTableOpacityMicromapFormatEXT :: [(OpacityMicromapFormatEXT, String)]+showTableOpacityMicromapFormatEXT =+  [+    ( OPACITY_MICROMAP_FORMAT_2_STATE_EXT+    , "2_STATE_EXT"+    )+  ,+    ( OPACITY_MICROMAP_FORMAT_4_STATE_EXT+    , "4_STATE_EXT"+    )+  ]++instance Show OpacityMicromapFormatEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixOpacityMicromapFormatEXT+      showTableOpacityMicromapFormatEXT+      conNameOpacityMicromapFormatEXT+      (\(OpacityMicromapFormatEXT x) -> x)+      (showsPrec 11)++instance Read OpacityMicromapFormatEXT where+  readPrec =+    enumReadPrec+      enumPrefixOpacityMicromapFormatEXT+      showTableOpacityMicromapFormatEXT+      conNameOpacityMicromapFormatEXT+      OpacityMicromapFormatEXT++-- | VkOpacityMicromapSpecialIndexEXT - Enum for special indices in the+-- opacity micromap+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_opacity_micromap VK_EXT_opacity_micromap>+newtype OpacityMicromapSpecialIndexEXT = OpacityMicromapSpecialIndexEXT 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++-- | 'OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT' specifies that+-- the entire triangle is fully transparent.+pattern OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = OpacityMicromapSpecialIndexEXT (-1)++-- | 'OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT' specifies that the+-- entire triangle is fully opaque.+pattern OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = OpacityMicromapSpecialIndexEXT (-2)++-- | 'OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT' specifies+-- that the entire triangle is unknown-transparent.+pattern OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = OpacityMicromapSpecialIndexEXT (-3)++-- | 'OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT' specifies that+-- the entire triangle is unknown-opaque.+pattern OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = OpacityMicromapSpecialIndexEXT (-4)++{-# COMPLETE+  OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT+  , OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT+  , OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT+  , OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT ::+    OpacityMicromapSpecialIndexEXT+  #-}++conNameOpacityMicromapSpecialIndexEXT :: String+conNameOpacityMicromapSpecialIndexEXT = "OpacityMicromapSpecialIndexEXT"++enumPrefixOpacityMicromapSpecialIndexEXT :: String+enumPrefixOpacityMicromapSpecialIndexEXT = "OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_"++showTableOpacityMicromapSpecialIndexEXT :: [(OpacityMicromapSpecialIndexEXT, String)]+showTableOpacityMicromapSpecialIndexEXT =+  [+    ( OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT+    , "TRANSPARENT_EXT"+    )+  ,+    ( OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT+    , "OPAQUE_EXT"+    )+  ,+    ( OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT+    , "UNKNOWN_TRANSPARENT_EXT"+    )+  ,+    ( OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT+    , "UNKNOWN_OPAQUE_EXT"+    )+  ]++instance Show OpacityMicromapSpecialIndexEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixOpacityMicromapSpecialIndexEXT+      showTableOpacityMicromapSpecialIndexEXT+      conNameOpacityMicromapSpecialIndexEXT+      (\(OpacityMicromapSpecialIndexEXT x) -> x)+      (showsPrec 11)++instance Read OpacityMicromapSpecialIndexEXT where+  readPrec =+    enumReadPrec+      enumPrefixOpacityMicromapSpecialIndexEXT+      showTableOpacityMicromapSpecialIndexEXT+      conNameOpacityMicromapSpecialIndexEXT+      OpacityMicromapSpecialIndexEXT++type EXT_OPACITY_MICROMAP_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_OPACITY_MICROMAP_SPEC_VERSION"+pattern EXT_OPACITY_MICROMAP_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_OPACITY_MICROMAP_SPEC_VERSION = 2+++type EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap"++-- No documentation found for TopLevel "VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME"+pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME = "VK_EXT_opacity_micromap"+
+ src/Vulkan/Extensions/VK_EXT_opacity_micromap.hs-boot view
@@ -0,0 +1,505 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_opacity_micromap - device extension+--+-- == VK_EXT_opacity_micromap+--+-- [__Name String__]+--     @VK_EXT_opacity_micromap@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     397+--+-- [__Revision__]+--     2+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_acceleration_structure@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_synchronization2@ to be enabled for any+--         device-level functionality+--+-- [__Contact__]+--+--     -   Christoph Kubisch+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_opacity_micromap] @pixeljetstream%0A*Here describe the issue or question you have about the VK_EXT_opacity_micromap extension* >+--+--     -   Eric Werness+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_opacity_micromap.adoc VK_EXT_opacity_micromap>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-08-24+--+-- [__Interactions and External Dependencies__]+--+--     -   This extension requires+--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/EXT/SPV_EXT_ray_tracing_opacity_micromap.html SPV_EXT_ray_tracing_opacity_micromap>+--+--     -   This extension provides API support for+--         <https://github.com/KhronosGroup/GLSL/blob/master/extensions/EXT/GLSL_EXT_ray_tracing_opacity_micromap.txt GLSL_EXT_ray_tracing_opacity_micromap>+--+-- [__Contributors__]+--+--     -   Christoph Kubisch, NVIDIA+--+--     -   Eric Werness, NVIDIA+--+--     -   Josh Barczak, Intel+--+--     -   Stu Smith, AMD+--+-- == Description+--+-- When adding adding transparency to a ray traced scene, an application+-- can choose between further tessellating the geometry or using an any hit+-- shader to allow the ray through specific parts of the geometry. These+-- options have the downside of either significantly increasing memory+-- consumption or adding runtime overhead to run shader code in the middle+-- of traversal, respectively.+--+-- This extension adds the ability to add an /opacity micromap/ to geometry+-- when building an acceleration structure. The opacity micromap compactly+-- encodes opacity information which can be read by the implementation to+-- mark parts of triangles as opaque or transparent. The format is+-- externally visible to allow the application to compress its internal+-- geometry and surface representations into the compressed format ahead of+-- time. The compressed format subdivides each triangle into a set of+-- subtriangles, each of which can be assigned either two or four opacity+-- values. These opacity values can control if a ray hitting that+-- subtriangle is treated as an opaque hit, complete miss, or possible hit,+-- depending on the controls described in+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#ray-opacity-micromap Ray Opacity Micromap>.+--+-- This extension provides:+--+-- -   a 'Vulkan.Extensions.Handles.MicromapEXT' structure to store the+--     micromap,+--+-- -   functions similar to acceleration structure build functions to build+--     the opacity micromap array, and+--+-- -   a structure to extend+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR'+--     to attach a micromap to the geometry of the acceleration structure.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.MicromapEXT'+--+-- == New Commands+--+-- -   'buildMicromapsEXT'+--+-- -   'cmdBuildMicromapsEXT'+--+-- -   'cmdCopyMemoryToMicromapEXT'+--+-- -   'cmdCopyMicromapEXT'+--+-- -   'cmdCopyMicromapToMemoryEXT'+--+-- -   'cmdWriteMicromapsPropertiesEXT'+--+-- -   'copyMemoryToMicromapEXT'+--+-- -   'copyMicromapEXT'+--+-- -   'copyMicromapToMemoryEXT'+--+-- -   'createMicromapEXT'+--+-- -   'destroyMicromapEXT'+--+-- -   'getDeviceMicromapCompatibilityEXT'+--+-- -   'getMicromapBuildSizesEXT'+--+-- -   'writeMicromapsPropertiesEXT'+--+-- == New Structures+--+-- -   'CopyMemoryToMicromapInfoEXT'+--+-- -   'CopyMicromapInfoEXT'+--+-- -   'CopyMicromapToMemoryInfoEXT'+--+-- -   'MicromapBuildInfoEXT'+--+-- -   'MicromapBuildSizesInfoEXT'+--+-- -   'MicromapCreateInfoEXT'+--+-- -   'MicromapTriangleEXT'+--+-- -   'MicromapUsageEXT'+--+-- -   'MicromapVersionInfoEXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.AccelerationStructureGeometryTrianglesDataKHR':+--+--     -   'AccelerationStructureTrianglesOpacityMicromapEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceOpacityMicromapFeaturesEXT'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceOpacityMicromapPropertiesEXT'+--+-- == New Enums+--+-- -   'BuildMicromapFlagBitsEXT'+--+-- -   'BuildMicromapModeEXT'+--+-- -   'CopyMicromapModeEXT'+--+-- -   'MicromapCreateFlagBitsEXT'+--+-- -   'MicromapTypeEXT'+--+-- -   'OpacityMicromapFormatEXT'+--+-- -   'OpacityMicromapSpecialIndexEXT'+--+-- == New Bitmasks+--+-- -   'BuildMicromapFlagsEXT'+--+-- -   'MicromapCreateFlagsEXT'+--+-- == New Enum Constants+--+-- -   'EXT_OPACITY_MICROMAP_EXTENSION_NAME'+--+-- -   'EXT_OPACITY_MICROMAP_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_READ_BIT_EXT'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_MICROMAP_WRITE_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BufferUsageFlagBits':+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.BuildAccelerationStructureFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT'+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT'+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_acceleration_structure.GeometryInstanceFlagBitsKHR':+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT'+--+--     -   'Vulkan.Extensions.VK_KHR_acceleration_structure.GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_MICROMAP_EXT'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.QueryType.QueryType':+--+--     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT'+--+--     -   'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT'+--+-- == Reference code+--+-- > uint32_t BarycentricsToSpaceFillingCurveIndex(float u, float v, uint32_t level)+-- > {+-- >     u = clamp(u, 0.0f, 1.0f);+-- >     v = clamp(v, 0.0f, 1.0f);+-- >+-- >     uint32_t iu, iv, iw;+-- >+-- >     // Quantize barycentric coordinates+-- >     float fu = u * (1u << level);+-- >     float fv = v * (1u << level);+-- >+-- >     iu = (uint32_t)fu;+-- >     iv = (uint32_t)fv;+-- >+-- >     float uf = fu - float(iu);+-- >     float vf = fv - float(iv);+-- >+-- >     if (iu >= (1u << level)) iu = (1u << level) - 1u;+-- >     if (iv >= (1u << level)) iv = (1u << level) - 1u;+-- >+-- >     uint32_t iuv = iu + iv;+-- >+-- >     if (iuv >= (1u << level))+-- >         iu -= iuv - (1u << level) + 1u;+-- >+-- >     iw = ~(iu + iv);+-- >+-- >     if (uf + vf >= 1.0f && iuv < (1u link:https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html# level) - 1u) --iw;+-- >+-- >     uint32_t b0 = ~(iu ^ iw);+-- >     b0 &= ((1u << level) - 1u);+-- >     uint32_t t = (iu ^ iv) & b0;+-- >+-- >     uint32_t f = t;+-- >     f ^= f [^] 1u;+-- >     f ^= f >> 2u;+-- >     f ^= f >> 4u;+-- >     f ^= f >> 8u;+-- >     uint32_t b1 = ((f ^ iu) & ~b0) | t;+-- >+-- >     // Interleave bits+-- >     b0 = (b0 | (b0 << 8u)) & 0x00ff00ffu;+-- >     b0 = (b0 | (b0 << 4u)) & 0x0f0f0f0fu;+-- >     b0 = (b0 | (b0 << 2u)) & 0x33333333u;+-- >     b0 = (b0 | (b0 << 1u)) & 0x55555555u;+-- >     b1 = (b1 | (b1 << 8u)) & 0x00ff00ffu;+-- >     b1 = (b1 | (b1 << 4u)) & 0x0f0f0f0fu;+-- >     b1 = (b1 | (b1 << 2u)) & 0x33333333u;+-- >     b1 = (b1 | (b1 << 1u)) & 0x55555555u;+-- >+-- >     return b0 | (b1 << 1u);+-- > }+--+-- == Issues+--+-- (1) Is the build actually similar to an acceleration structure build?+--+-- -   Resolved: The build should be much lighter-weight than an+--     acceleration structure build, but the infrastructure is similar+--     enough that it makes sense to keep the concepts compatible.+--+-- (2) Why does VkMicromapUsageEXT not have type\/pNext?+--+-- -   Resolved: There can be a very large number of these structures, so+--     doubling the size of these can be significant memory consumption.+--     Also, an application may be loading these directly from a file which+--     is more compatible with it being a flat structure. The including+--     structures are extensible and are probably a more suitable place to+--     add extensibility.+--+-- (3) Why is there a SPIR-V extension?+--+-- -   Resolved: There is a ray flag. To be consistent with how the+--     existing ray tracing extensions work that ray flag needs its own+--     extension.+--+-- (4) Should there be indirect micromap build?+--+-- -   Resolved: Not for now. There is more in-depth usage metadata+--     required and it seems less likely that something like a GPU culling+--     system would need to change the counts for a micromap.+--+-- (5) Should micromaps have a micromap device address?+--+-- -   Resolved: There is no need right now (can just use the handle) but+--     that is a bit different from acceleration structures, though the two+--     are not completely parallel in their usage.+--+-- (6) Why are the alignment requirements defined as a mix of hardcoded+-- values and caps?+--+-- -   Resolved: This is most parallel with the definition of+--     @VK_KHR_acceleration_structure@ and maintaining commonality makes it+--     easier for applications to share memory.+--+-- == Version History+--+-- -   Revision 2, 2022-06-22 (Eric Werness)+--+--     -   EXTify and clean up for discussion+--+-- -   Revision 1, 2022-01-01 (Eric Werness)+--+--     -   Initial revision+--+-- == See Also+--+-- 'AccelerationStructureTrianglesOpacityMicromapEXT',+-- 'BuildMicromapFlagBitsEXT', 'BuildMicromapFlagsEXT',+-- 'BuildMicromapModeEXT', 'CopyMemoryToMicromapInfoEXT',+-- 'CopyMicromapInfoEXT', 'CopyMicromapModeEXT',+-- 'CopyMicromapToMemoryInfoEXT', 'MicromapBuildInfoEXT',+-- 'MicromapBuildSizesInfoEXT', 'MicromapCreateFlagBitsEXT',+-- 'MicromapCreateFlagsEXT', 'MicromapCreateInfoEXT',+-- 'Vulkan.Extensions.Handles.MicromapEXT', 'MicromapTriangleEXT',+-- 'MicromapTypeEXT', 'MicromapUsageEXT', 'MicromapVersionInfoEXT',+-- 'OpacityMicromapFormatEXT', 'OpacityMicromapSpecialIndexEXT',+-- 'PhysicalDeviceOpacityMicromapFeaturesEXT',+-- 'PhysicalDeviceOpacityMicromapPropertiesEXT', 'buildMicromapsEXT',+-- 'cmdBuildMicromapsEXT', 'cmdCopyMemoryToMicromapEXT',+-- 'cmdCopyMicromapEXT', 'cmdCopyMicromapToMemoryEXT',+-- 'cmdWriteMicromapsPropertiesEXT', 'copyMemoryToMicromapEXT',+-- 'copyMicromapEXT', 'copyMicromapToMemoryEXT', 'createMicromapEXT',+-- 'destroyMicromapEXT', 'getDeviceMicromapCompatibilityEXT',+-- 'getMicromapBuildSizesEXT', 'writeMicromapsPropertiesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_opacity_micromap 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_opacity_micromap  ( AccelerationStructureTrianglesOpacityMicromapEXT+                                                  , CopyMemoryToMicromapInfoEXT+                                                  , CopyMicromapInfoEXT+                                                  , CopyMicromapToMemoryInfoEXT+                                                  , MicromapBuildInfoEXT+                                                  , MicromapBuildSizesInfoEXT+                                                  , MicromapCreateInfoEXT+                                                  , MicromapTriangleEXT+                                                  , MicromapUsageEXT+                                                  , MicromapVersionInfoEXT+                                                  , PhysicalDeviceOpacityMicromapFeaturesEXT+                                                  , PhysicalDeviceOpacityMicromapPropertiesEXT+                                                  ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data AccelerationStructureTrianglesOpacityMicromapEXT++instance ToCStruct AccelerationStructureTrianglesOpacityMicromapEXT+instance Show AccelerationStructureTrianglesOpacityMicromapEXT+++data CopyMemoryToMicromapInfoEXT++instance ToCStruct CopyMemoryToMicromapInfoEXT+instance Show CopyMemoryToMicromapInfoEXT+++data CopyMicromapInfoEXT++instance ToCStruct CopyMicromapInfoEXT+instance Show CopyMicromapInfoEXT++instance FromCStruct CopyMicromapInfoEXT+++data CopyMicromapToMemoryInfoEXT++instance ToCStruct CopyMicromapToMemoryInfoEXT+instance Show CopyMicromapToMemoryInfoEXT+++data MicromapBuildInfoEXT++instance ToCStruct MicromapBuildInfoEXT+instance Show MicromapBuildInfoEXT+++data MicromapBuildSizesInfoEXT++instance ToCStruct MicromapBuildSizesInfoEXT+instance Show MicromapBuildSizesInfoEXT++instance FromCStruct MicromapBuildSizesInfoEXT+++data MicromapCreateInfoEXT++instance ToCStruct MicromapCreateInfoEXT+instance Show MicromapCreateInfoEXT++instance FromCStruct MicromapCreateInfoEXT+++data MicromapTriangleEXT++instance ToCStruct MicromapTriangleEXT+instance Show MicromapTriangleEXT++instance FromCStruct MicromapTriangleEXT+++data MicromapUsageEXT++instance ToCStruct MicromapUsageEXT+instance Show MicromapUsageEXT++instance FromCStruct MicromapUsageEXT+++data MicromapVersionInfoEXT++instance ToCStruct MicromapVersionInfoEXT+instance Show MicromapVersionInfoEXT++instance FromCStruct MicromapVersionInfoEXT+++data PhysicalDeviceOpacityMicromapFeaturesEXT++instance ToCStruct PhysicalDeviceOpacityMicromapFeaturesEXT+instance Show PhysicalDeviceOpacityMicromapFeaturesEXT++instance FromCStruct PhysicalDeviceOpacityMicromapFeaturesEXT+++data PhysicalDeviceOpacityMicromapPropertiesEXT++instance ToCStruct PhysicalDeviceOpacityMicromapPropertiesEXT+instance Show PhysicalDeviceOpacityMicromapPropertiesEXT++instance FromCStruct PhysicalDeviceOpacityMicromapPropertiesEXT+
src/Vulkan/Extensions/VK_EXT_pageable_device_local_memory.hs view
@@ -236,7 +236,10 @@   unless (vkSetDeviceMemoryPriorityEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetDeviceMemoryPriorityEXT is null" Nothing Nothing   let vkSetDeviceMemoryPriorityEXT' = mkVkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXTPtr-  traceAroundEvent "vkSetDeviceMemoryPriorityEXT" (vkSetDeviceMemoryPriorityEXT' (deviceHandle (device)) (memory) (CFloat (priority)))+  traceAroundEvent "vkSetDeviceMemoryPriorityEXT" (vkSetDeviceMemoryPriorityEXT'+                                                     (deviceHandle (device))+                                                     (memory)+                                                     (CFloat (priority)))   pure $ ()  
src/Vulkan/Extensions/VK_EXT_physical_device_drm.hs view
@@ -211,7 +211,12 @@     renderMajor <- peek @Int64 ((p `plusPtr` 40 :: Ptr Int64))     renderMinor <- peek @Int64 ((p `plusPtr` 48 :: Ptr Int64))     pure $ PhysicalDeviceDrmPropertiesEXT-             (bool32ToBool hasPrimary) (bool32ToBool hasRender) primaryMajor primaryMinor renderMajor renderMinor+             (bool32ToBool hasPrimary)+             (bool32ToBool hasRender)+             primaryMajor+             primaryMinor+             renderMajor+             renderMinor  instance Storable PhysicalDeviceDrmPropertiesEXT where   sizeOf ~_ = 56
src/Vulkan/Extensions/VK_EXT_pipeline_properties.hs view
@@ -280,13 +280,18 @@                             -- pipeline properties will be written.                             ("pipelineProperties" ::: Ptr BaseOutStructure)                          -> io ()-getPipelinePropertiesEXT device pipelineInfo pipelineProperties = liftIO . evalContT $ do+getPipelinePropertiesEXT device+                           pipelineInfo+                           pipelineProperties = liftIO . evalContT $ do   let vkGetPipelinePropertiesEXTPtr = pVkGetPipelinePropertiesEXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetPipelinePropertiesEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelinePropertiesEXT is null" Nothing Nothing   let vkGetPipelinePropertiesEXT' = mkVkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXTPtr   pPipelineInfo <- ContT $ withCStruct (pipelineInfo)-  r <- lift $ traceAroundEvent "vkGetPipelinePropertiesEXT" (vkGetPipelinePropertiesEXT' (deviceHandle (device)) pPipelineInfo (pipelineProperties))+  r <- lift $ traceAroundEvent "vkGetPipelinePropertiesEXT" (vkGetPipelinePropertiesEXT'+                                                               (deviceHandle (device))+                                                               pPipelineInfo+                                                               (pipelineProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  
+ src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs view
@@ -0,0 +1,210 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_pipeline_protected_access - device extension+--+-- == VK_EXT_pipeline_protected_access+--+-- [__Name String__]+--     @VK_EXT_pipeline_protected_access@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     467+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_protected_access] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_pipeline_protected_access extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_pipeline_protected_access.adoc VK_EXT_pipeline_protected_access>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-07-28+--+-- [__Contributors__]+--+--     -   Shahbaz Youssefi, Google+--+--     -   Jörg Wagner, Arm+--+--     -   Ralph Potter, Samsung+--+--     -   Daniel Koch, NVIDIA+--+-- == Description+--+-- This extension allows protected memory access to be specified per+-- pipeline as opposed to per device. Through the usage of this extension,+-- any performance penalty paid due to access to protected memory will be+-- limited to the specific pipelines that make such accesses.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePipelineProtectedAccessFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME'+--+-- -   'EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2022-07-28 (Shahbaz Youssefi)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'PhysicalDevicePipelineProtectedAccessFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_protected_access 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_protected_access  ( PhysicalDevicePipelineProtectedAccessFeaturesEXT(..)+                                                           , EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION+                                                           , pattern EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION+                                                           , EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME+                                                           , pattern EXT_PIPELINE_PROTECTED_ACCESS_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_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT))+-- | VkPhysicalDevicePipelineProtectedAccessFeaturesEXT - Structure+-- describing support for specifying protected access on individual+-- pipelines+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePipelineProtectedAccessFeaturesEXT' 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. 'PhysicalDevicePipelineProtectedAccessFeaturesEXT' /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_protected_access VK_EXT_pipeline_protected_access>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePipelineProtectedAccessFeaturesEXT = PhysicalDevicePipelineProtectedAccessFeaturesEXT+  { -- | #features-pipelineProtectedAccess# @pipelineProtectedAccess@ indicates+    -- whether the implementation supports specifying protected access on+    -- individual pipelines.+    pipelineProtectedAccess :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePipelineProtectedAccessFeaturesEXT)+#endif+deriving instance Show PhysicalDevicePipelineProtectedAccessFeaturesEXT++instance ToCStruct PhysicalDevicePipelineProtectedAccessFeaturesEXT where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDevicePipelineProtectedAccessFeaturesEXT{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (pipelineProtectedAccess))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDevicePipelineProtectedAccessFeaturesEXT where+  peekCStruct p = do+    pipelineProtectedAccess <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDevicePipelineProtectedAccessFeaturesEXT+             (bool32ToBool pipelineProtectedAccess)++instance Storable PhysicalDevicePipelineProtectedAccessFeaturesEXT where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePipelineProtectedAccessFeaturesEXT where+  zero = PhysicalDevicePipelineProtectedAccessFeaturesEXT+           zero+++type EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION"+pattern EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION = 1+++type EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access"++-- No documentation found for TopLevel "VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME"+pattern EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME = "VK_EXT_pipeline_protected_access"+
+ src/Vulkan/Extensions/VK_EXT_pipeline_protected_access.hs-boot view
@@ -0,0 +1,111 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_pipeline_protected_access - device extension+--+-- == VK_EXT_pipeline_protected_access+--+-- [__Name String__]+--     @VK_EXT_pipeline_protected_access@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     467+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_pipeline_protected_access] @syoussefi%0A*Here describe the issue or question you have about the VK_EXT_pipeline_protected_access extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_pipeline_protected_access.adoc VK_EXT_pipeline_protected_access>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-07-28+--+-- [__Contributors__]+--+--     -   Shahbaz Youssefi, Google+--+--     -   Jörg Wagner, Arm+--+--     -   Ralph Potter, Samsung+--+--     -   Daniel Koch, NVIDIA+--+-- == Description+--+-- This extension allows protected memory access to be specified per+-- pipeline as opposed to per device. Through the usage of this extension,+-- any performance penalty paid due to access to protected memory will be+-- limited to the specific pipelines that make such accesses.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePipelineProtectedAccessFeaturesEXT'+--+-- == New Enum Constants+--+-- -   'EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME'+--+-- -   'EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION'+--+-- -   Extending+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PipelineCreateFlagBits':+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--+--     -   'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT'+--+-- == Version History+--+-- -   Revision 1, 2022-07-28 (Shahbaz Youssefi)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'PhysicalDevicePipelineProtectedAccessFeaturesEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_pipeline_protected_access 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_protected_access  (PhysicalDevicePipelineProtectedAccessFeaturesEXT) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePipelineProtectedAccessFeaturesEXT++instance ToCStruct PhysicalDevicePipelineProtectedAccessFeaturesEXT+instance Show PhysicalDevicePipelineProtectedAccessFeaturesEXT++instance FromCStruct PhysicalDevicePipelineProtectedAccessFeaturesEXT+
src/Vulkan/Extensions/VK_EXT_pipeline_robustness.hs view
@@ -535,7 +535,10 @@     defaultRobustnessVertexInputs <- peek @PipelineRobustnessBufferBehaviorEXT ((p `plusPtr` 24 :: Ptr PipelineRobustnessBufferBehaviorEXT))     defaultRobustnessImages <- peek @PipelineRobustnessImageBehaviorEXT ((p `plusPtr` 28 :: Ptr PipelineRobustnessImageBehaviorEXT))     pure $ PhysicalDevicePipelineRobustnessPropertiesEXT-             defaultRobustnessStorageBuffers defaultRobustnessUniformBuffers defaultRobustnessVertexInputs defaultRobustnessImages+             defaultRobustnessStorageBuffers+             defaultRobustnessUniformBuffers+             defaultRobustnessVertexInputs+             defaultRobustnessImages  instance Storable PhysicalDevicePipelineRobustnessPropertiesEXT where   sizeOf ~_ = 32@@ -565,28 +568,35 @@ -- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT' specifies that -- this pipeline stage follows the robustness behavior of the logical -- device that created this pipeline-pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT         = PipelineRobustnessBufferBehaviorEXT 0+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = PipelineRobustnessBufferBehaviorEXT 0+ -- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT' specifies that buffer -- accesses by this pipeline stage to the relevant resource types /must/ -- not be out of bounds-pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT               = PipelineRobustnessBufferBehaviorEXT 1+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = PipelineRobustnessBufferBehaviorEXT 1+ -- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT' specifies -- that out of bounds accesses by this pipeline stage to the relevant -- resource types behave as if the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess> -- feature is enabled-pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT   = PipelineRobustnessBufferBehaviorEXT 2+pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = PipelineRobustnessBufferBehaviorEXT 2+ -- | 'PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT' -- specifies that out of bounds accesses by this pipeline stage to the -- relevant resource types behave as if the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> -- feature is enabled pattern PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = PipelineRobustnessBufferBehaviorEXT 3-{-# complete PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT,-             PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT,-             PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT,-             PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT :: PipelineRobustnessBufferBehaviorEXT #-} +{-# COMPLETE+  PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT+  , PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT+  , PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT+  , PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT ::+    PipelineRobustnessBufferBehaviorEXT+  #-}+ conNamePipelineRobustnessBufferBehaviorEXT :: String conNamePipelineRobustnessBufferBehaviorEXT = "PipelineRobustnessBufferBehaviorEXT" @@ -595,25 +605,40 @@  showTablePipelineRobustnessBufferBehaviorEXT :: [(PipelineRobustnessBufferBehaviorEXT, String)] showTablePipelineRobustnessBufferBehaviorEXT =-  [ (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT        , "DEVICE_DEFAULT_EXT")-  , (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT              , "DISABLED_EXT")-  , (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT  , "ROBUST_BUFFER_ACCESS_EXT")-  , (PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT, "ROBUST_BUFFER_ACCESS_2_EXT")+  [+    ( PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT+    , "DEVICE_DEFAULT_EXT"+    )+  ,+    ( PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT+    , "DISABLED_EXT"+    )+  ,+    ( PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT+    , "ROBUST_BUFFER_ACCESS_EXT"+    )+  ,+    ( PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT+    , "ROBUST_BUFFER_ACCESS_2_EXT"+    )   ]  instance Show PipelineRobustnessBufferBehaviorEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineRobustnessBufferBehaviorEXT-                            showTablePipelineRobustnessBufferBehaviorEXT-                            conNamePipelineRobustnessBufferBehaviorEXT-                            (\(PipelineRobustnessBufferBehaviorEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineRobustnessBufferBehaviorEXT+      showTablePipelineRobustnessBufferBehaviorEXT+      conNamePipelineRobustnessBufferBehaviorEXT+      (\(PipelineRobustnessBufferBehaviorEXT x) -> x)+      (showsPrec 11)  instance Read PipelineRobustnessBufferBehaviorEXT where-  readPrec = enumReadPrec enumPrefixPipelineRobustnessBufferBehaviorEXT-                          showTablePipelineRobustnessBufferBehaviorEXT-                          conNamePipelineRobustnessBufferBehaviorEXT-                          PipelineRobustnessBufferBehaviorEXT-+  readPrec =+    enumReadPrec+      enumPrefixPipelineRobustnessBufferBehaviorEXT+      showTablePipelineRobustnessBufferBehaviorEXT+      conNamePipelineRobustnessBufferBehaviorEXT+      PipelineRobustnessBufferBehaviorEXT  -- | VkPipelineRobustnessImageBehaviorEXT - Enum controlling the robustness -- of image accesses in a pipeline stage@@ -629,28 +654,35 @@ -- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT' specifies that -- this pipeline stage follows the robustness behavior of the logical -- device that created this pipeline-pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT        = PipelineRobustnessImageBehaviorEXT 0+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = PipelineRobustnessImageBehaviorEXT 0+ -- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT' specifies that image -- accesses by this pipeline stage to the relevant resource types /must/ -- not be out of bounds-pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT              = PipelineRobustnessImageBehaviorEXT 1+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = PipelineRobustnessImageBehaviorEXT 1+ -- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT' specifies -- that out of bounds accesses by this pipeline stage to images behave as -- if the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess robustImageAccess> -- feature is enabled-pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT   = PipelineRobustnessImageBehaviorEXT 2+pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = PipelineRobustnessImageBehaviorEXT 2+ -- | 'PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT' specifies -- that out of bounds accesses by this pipeline stage to images behave as -- if the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-robustImageAccess2 robustImageAccess2> -- feature is enabled pattern PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = PipelineRobustnessImageBehaviorEXT 3-{-# complete PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT,-             PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT,-             PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT,-             PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT :: PipelineRobustnessImageBehaviorEXT #-} +{-# COMPLETE+  PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT+  , PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT+  , PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT+  , PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT ::+    PipelineRobustnessImageBehaviorEXT+  #-}+ conNamePipelineRobustnessImageBehaviorEXT :: String conNamePipelineRobustnessImageBehaviorEXT = "PipelineRobustnessImageBehaviorEXT" @@ -659,25 +691,40 @@  showTablePipelineRobustnessImageBehaviorEXT :: [(PipelineRobustnessImageBehaviorEXT, String)] showTablePipelineRobustnessImageBehaviorEXT =-  [ (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT       , "DEVICE_DEFAULT_EXT")-  , (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT             , "DISABLED_EXT")-  , (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT  , "ROBUST_IMAGE_ACCESS_EXT")-  , (PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT, "ROBUST_IMAGE_ACCESS_2_EXT")+  [+    ( PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT+    , "DEVICE_DEFAULT_EXT"+    )+  ,+    ( PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT+    , "DISABLED_EXT"+    )+  ,+    ( PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT+    , "ROBUST_IMAGE_ACCESS_EXT"+    )+  ,+    ( PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT+    , "ROBUST_IMAGE_ACCESS_2_EXT"+    )   ]  instance Show PipelineRobustnessImageBehaviorEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineRobustnessImageBehaviorEXT-                            showTablePipelineRobustnessImageBehaviorEXT-                            conNamePipelineRobustnessImageBehaviorEXT-                            (\(PipelineRobustnessImageBehaviorEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineRobustnessImageBehaviorEXT+      showTablePipelineRobustnessImageBehaviorEXT+      conNamePipelineRobustnessImageBehaviorEXT+      (\(PipelineRobustnessImageBehaviorEXT x) -> x)+      (showsPrec 11)  instance Read PipelineRobustnessImageBehaviorEXT where-  readPrec = enumReadPrec enumPrefixPipelineRobustnessImageBehaviorEXT-                          showTablePipelineRobustnessImageBehaviorEXT-                          conNamePipelineRobustnessImageBehaviorEXT-                          PipelineRobustnessImageBehaviorEXT-+  readPrec =+    enumReadPrec+      enumPrefixPipelineRobustnessImageBehaviorEXT+      showTablePipelineRobustnessImageBehaviorEXT+      conNamePipelineRobustnessImageBehaviorEXT+      PipelineRobustnessImageBehaviorEXT  type EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_primitive_topology_list_restart.hs view
@@ -193,7 +193,8 @@     primitiveTopologyListRestart <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     primitiveTopologyPatchListRestart <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT-             (bool32ToBool primitiveTopologyListRestart) (bool32ToBool primitiveTopologyPatchListRestart)+             (bool32ToBool primitiveTopologyListRestart)+             (bool32ToBool primitiveTopologyPatchListRestart)  instance Storable PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_EXT_primitives_generated_query.hs view
@@ -245,7 +245,9 @@     primitivesGeneratedQueryWithRasterizerDiscard <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     primitivesGeneratedQueryWithNonZeroStreams <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT-             (bool32ToBool primitivesGeneratedQuery) (bool32ToBool primitivesGeneratedQueryWithRasterizerDiscard) (bool32ToBool primitivesGeneratedQueryWithNonZeroStreams)+             (bool32ToBool primitivesGeneratedQuery)+             (bool32ToBool primitivesGeneratedQueryWithRasterizerDiscard)+             (bool32ToBool primitivesGeneratedQueryWithNonZeroStreams)  instance Storable PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs view
@@ -302,7 +302,8 @@     provokingVertexLast <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     transformFeedbackPreservesProvokingVertex <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceProvokingVertexFeaturesEXT-             (bool32ToBool provokingVertexLast) (bool32ToBool transformFeedbackPreservesProvokingVertex)+             (bool32ToBool provokingVertexLast)+             (bool32ToBool transformFeedbackPreservesProvokingVertex)  instance Storable PhysicalDeviceProvokingVertexFeaturesEXT where   sizeOf ~_ = 24@@ -375,7 +376,8 @@     provokingVertexModePerPipeline <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     transformFeedbackPreservesTriangleFanProvokingVertex <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceProvokingVertexPropertiesEXT-             (bool32ToBool provokingVertexModePerPipeline) (bool32ToBool transformFeedbackPreservesTriangleFanProvokingVertex)+             (bool32ToBool provokingVertexModePerPipeline)+             (bool32ToBool transformFeedbackPreservesTriangleFanProvokingVertex)  instance Storable PhysicalDeviceProvokingVertexPropertiesEXT where   sizeOf ~_ = 24@@ -479,7 +481,8 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_provoking_vertex VK_EXT_provoking_vertex>,--- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT'+-- 'PipelineRasterizationProvokingVertexStateCreateInfoEXT',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetProvokingVertexModeEXT' newtype ProvokingVertexModeEXT = ProvokingVertexModeEXT Int32   deriving newtype (Eq, Ord, Storable, Zero) @@ -487,13 +490,18 @@ -- vertex is the first non-adjacency vertex in the list of vertices used by -- a primitive. pattern PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = ProvokingVertexModeEXT 0+ -- | 'PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT' specifies that the provoking -- vertex is the last non-adjacency vertex in the list of vertices used by -- a primitive.-pattern PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT  = ProvokingVertexModeEXT 1-{-# complete PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,-             PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT :: ProvokingVertexModeEXT #-}+pattern PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = ProvokingVertexModeEXT 1 +{-# COMPLETE+  PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT+  , PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT ::+    ProvokingVertexModeEXT+  #-}+ conNameProvokingVertexModeEXT :: String conNameProvokingVertexModeEXT = "ProvokingVertexModeEXT" @@ -502,23 +510,32 @@  showTableProvokingVertexModeEXT :: [(ProvokingVertexModeEXT, String)] showTableProvokingVertexModeEXT =-  [ (PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT, "FIRST_VERTEX_EXT")-  , (PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT , "LAST_VERTEX_EXT")+  [+    ( PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT+    , "FIRST_VERTEX_EXT"+    )+  ,+    ( PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT+    , "LAST_VERTEX_EXT"+    )   ]  instance Show ProvokingVertexModeEXT where-  showsPrec = enumShowsPrec enumPrefixProvokingVertexModeEXT-                            showTableProvokingVertexModeEXT-                            conNameProvokingVertexModeEXT-                            (\(ProvokingVertexModeEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixProvokingVertexModeEXT+      showTableProvokingVertexModeEXT+      conNameProvokingVertexModeEXT+      (\(ProvokingVertexModeEXT x) -> x)+      (showsPrec 11)  instance Read ProvokingVertexModeEXT where-  readPrec = enumReadPrec enumPrefixProvokingVertexModeEXT-                          showTableProvokingVertexModeEXT-                          conNameProvokingVertexModeEXT-                          ProvokingVertexModeEXT-+  readPrec =+    enumReadPrec+      enumPrefixProvokingVertexModeEXT+      showTableProvokingVertexModeEXT+      conNameProvokingVertexModeEXT+      ProvokingVertexModeEXT  type EXT_PROVOKING_VERTEX_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_provoking_vertex.hs-boot view
@@ -184,6 +184,7 @@ module Vulkan.Extensions.VK_EXT_provoking_vertex  ( PhysicalDeviceProvokingVertexFeaturesEXT                                                   , PhysicalDeviceProvokingVertexPropertiesEXT                                                   , PipelineRasterizationProvokingVertexStateCreateInfoEXT+                                                  , ProvokingVertexModeEXT                                                   ) where  import Vulkan.CStruct (FromCStruct)@@ -212,4 +213,7 @@ instance Show PipelineRasterizationProvokingVertexStateCreateInfoEXT  instance FromCStruct PipelineRasterizationProvokingVertexStateCreateInfoEXT+++data ProvokingVertexModeEXT 
src/Vulkan/Extensions/VK_EXT_rasterization_order_attachment_access.hs view
@@ -226,7 +226,9 @@     rasterizationOrderDepthAttachmentAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     rasterizationOrderStencilAttachmentAccess <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT-             (bool32ToBool rasterizationOrderColorAttachmentAccess) (bool32ToBool rasterizationOrderDepthAttachmentAccess) (bool32ToBool rasterizationOrderStencilAttachmentAccess)+             (bool32ToBool rasterizationOrderColorAttachmentAccess)+             (bool32ToBool rasterizationOrderDepthAttachmentAccess)+             (bool32ToBool rasterizationOrderStencilAttachmentAccess)  instance Storable PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_EXT_robustness2.hs view
@@ -266,7 +266,9 @@     robustImageAccess2 <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     nullDescriptor <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceRobustness2FeaturesEXT-             (bool32ToBool robustBufferAccess2) (bool32ToBool robustImageAccess2) (bool32ToBool nullDescriptor)+             (bool32ToBool robustBufferAccess2)+             (bool32ToBool robustImageAccess2)+             (bool32ToBool nullDescriptor)  instance Storable PhysicalDeviceRobustness2FeaturesEXT where   sizeOf ~_ = 32@@ -346,7 +348,8 @@     robustStorageBufferAccessSizeAlignment <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))     robustUniformBufferAccessSizeAlignment <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))     pure $ PhysicalDeviceRobustness2PropertiesEXT-             robustStorageBufferAccessSizeAlignment robustUniformBufferAccessSizeAlignment+             robustStorageBufferAccessSizeAlignment+             robustUniformBufferAccessSizeAlignment  instance Storable PhysicalDeviceRobustness2PropertiesEXT where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_EXT_sample_locations.hs view
@@ -276,12 +276,6 @@ -- -- == Valid Usage ----- -   #VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529# The---     @sampleLocationsPerPixel@ member of @pSampleLocationsInfo@ /must/---     equal the @rasterizationSamples@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530# If --     'PhysicalDeviceSampleLocationsPropertiesEXT'::@variableSampleLocations@ --     is 'Vulkan.Core10.FundamentalTypes.FALSE' then the current render@@ -343,13 +337,16 @@                          -> -- | @pSampleLocationsInfo@ is the sample locations state to set.                             SampleLocationsInfoEXT                          -> io ()-cmdSetSampleLocationsEXT commandBuffer sampleLocationsInfo = liftIO . evalContT $ do+cmdSetSampleLocationsEXT commandBuffer+                           sampleLocationsInfo = liftIO . evalContT $ do   let vkCmdSetSampleLocationsEXTPtr = pVkCmdSetSampleLocationsEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetSampleLocationsEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetSampleLocationsEXT is null" Nothing Nothing   let vkCmdSetSampleLocationsEXT' = mkVkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXTPtr   pSampleLocationsInfo <- ContT $ withCStruct (sampleLocationsInfo)-  lift $ traceAroundEvent "vkCmdSetSampleLocationsEXT" (vkCmdSetSampleLocationsEXT' (commandBufferHandle (commandBuffer)) pSampleLocationsInfo)+  lift $ traceAroundEvent "vkCmdSetSampleLocationsEXT" (vkCmdSetSampleLocationsEXT'+                                                          (commandBufferHandle (commandBuffer))+                                                          pSampleLocationsInfo)   pure $ ()  @@ -388,13 +385,17 @@                                              -- 'Vulkan.Core10.Enums.SampleCountFlagBits.SampleCountFlagBits' value                                              ("samples" ::: SampleCountFlagBits)                                           -> io (MultisamplePropertiesEXT)-getPhysicalDeviceMultisamplePropertiesEXT physicalDevice samples = liftIO . evalContT $ do+getPhysicalDeviceMultisamplePropertiesEXT physicalDevice+                                            samples = liftIO . evalContT $ do   let vkGetPhysicalDeviceMultisamplePropertiesEXTPtr = pVkGetPhysicalDeviceMultisamplePropertiesEXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceMultisamplePropertiesEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceMultisamplePropertiesEXT is null" Nothing Nothing   let vkGetPhysicalDeviceMultisamplePropertiesEXT' = mkVkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXTPtr   pPMultisampleProperties <- ContT (withZeroCStruct @MultisamplePropertiesEXT)-  lift $ traceAroundEvent "vkGetPhysicalDeviceMultisamplePropertiesEXT" (vkGetPhysicalDeviceMultisamplePropertiesEXT' (physicalDeviceHandle (physicalDevice)) (samples) (pPMultisampleProperties))+  lift $ traceAroundEvent "vkGetPhysicalDeviceMultisamplePropertiesEXT" (vkGetPhysicalDeviceMultisamplePropertiesEXT'+                                                                           (physicalDeviceHandle (physicalDevice))+                                                                           (samples)+                                                                           (pPMultisampleProperties))   pMultisampleProperties <- lift $ peekCStruct @MultisamplePropertiesEXT pPMultisampleProperties   pure $ (pMultisampleProperties) @@ -967,7 +968,12 @@     sampleLocationSubPixelBits <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))     variableSampleLocations <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))     pure $ PhysicalDeviceSampleLocationsPropertiesEXT-             sampleLocationSampleCounts maxSampleLocationGridSize (((coerce @CFloat @Float sampleLocationCoordinateRange0), (coerce @CFloat @Float sampleLocationCoordinateRange1))) sampleLocationSubPixelBits (bool32ToBool variableSampleLocations)+             sampleLocationSampleCounts+             maxSampleLocationGridSize+             (( (coerce @CFloat @Float sampleLocationCoordinateRange0)+              , (coerce @CFloat @Float sampleLocationCoordinateRange1) ))+             sampleLocationSubPixelBits+             (bool32ToBool variableSampleLocations)  instance Storable PhysicalDeviceSampleLocationsPropertiesEXT where   sizeOf ~_ = 48
src/Vulkan/Extensions/VK_EXT_shader_atomic_float.hs view
@@ -264,7 +264,18 @@     sparseImageFloat32Atomics <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))     sparseImageFloat32AtomicAdd <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))     pure $ PhysicalDeviceShaderAtomicFloatFeaturesEXT-             (bool32ToBool shaderBufferFloat32Atomics) (bool32ToBool shaderBufferFloat32AtomicAdd) (bool32ToBool shaderBufferFloat64Atomics) (bool32ToBool shaderBufferFloat64AtomicAdd) (bool32ToBool shaderSharedFloat32Atomics) (bool32ToBool shaderSharedFloat32AtomicAdd) (bool32ToBool shaderSharedFloat64Atomics) (bool32ToBool shaderSharedFloat64AtomicAdd) (bool32ToBool shaderImageFloat32Atomics) (bool32ToBool shaderImageFloat32AtomicAdd) (bool32ToBool sparseImageFloat32Atomics) (bool32ToBool sparseImageFloat32AtomicAdd)+             (bool32ToBool shaderBufferFloat32Atomics)+             (bool32ToBool shaderBufferFloat32AtomicAdd)+             (bool32ToBool shaderBufferFloat64Atomics)+             (bool32ToBool shaderBufferFloat64AtomicAdd)+             (bool32ToBool shaderSharedFloat32Atomics)+             (bool32ToBool shaderSharedFloat32AtomicAdd)+             (bool32ToBool shaderSharedFloat64Atomics)+             (bool32ToBool shaderSharedFloat64AtomicAdd)+             (bool32ToBool shaderImageFloat32Atomics)+             (bool32ToBool shaderImageFloat32AtomicAdd)+             (bool32ToBool sparseImageFloat32Atomics)+             (bool32ToBool sparseImageFloat32AtomicAdd)  instance Storable PhysicalDeviceShaderAtomicFloatFeaturesEXT where   sizeOf ~_ = 64
src/Vulkan/Extensions/VK_EXT_shader_atomic_float2.hs view
@@ -292,7 +292,18 @@     shaderImageFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))     sparseImageFloat32AtomicMinMax <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))     pure $ PhysicalDeviceShaderAtomicFloat2FeaturesEXT-             (bool32ToBool shaderBufferFloat16Atomics) (bool32ToBool shaderBufferFloat16AtomicAdd) (bool32ToBool shaderBufferFloat16AtomicMinMax) (bool32ToBool shaderBufferFloat32AtomicMinMax) (bool32ToBool shaderBufferFloat64AtomicMinMax) (bool32ToBool shaderSharedFloat16Atomics) (bool32ToBool shaderSharedFloat16AtomicAdd) (bool32ToBool shaderSharedFloat16AtomicMinMax) (bool32ToBool shaderSharedFloat32AtomicMinMax) (bool32ToBool shaderSharedFloat64AtomicMinMax) (bool32ToBool shaderImageFloat32AtomicMinMax) (bool32ToBool sparseImageFloat32AtomicMinMax)+             (bool32ToBool shaderBufferFloat16Atomics)+             (bool32ToBool shaderBufferFloat16AtomicAdd)+             (bool32ToBool shaderBufferFloat16AtomicMinMax)+             (bool32ToBool shaderBufferFloat32AtomicMinMax)+             (bool32ToBool shaderBufferFloat64AtomicMinMax)+             (bool32ToBool shaderSharedFloat16Atomics)+             (bool32ToBool shaderSharedFloat16AtomicAdd)+             (bool32ToBool shaderSharedFloat16AtomicMinMax)+             (bool32ToBool shaderSharedFloat32AtomicMinMax)+             (bool32ToBool shaderSharedFloat64AtomicMinMax)+             (bool32ToBool shaderImageFloat32AtomicMinMax)+             (bool32ToBool sparseImageFloat32AtomicMinMax)  instance Storable PhysicalDeviceShaderAtomicFloat2FeaturesEXT where   sizeOf ~_ = 64
src/Vulkan/Extensions/VK_EXT_shader_image_atomic_int64.hs view
@@ -199,7 +199,8 @@     shaderImageInt64Atomics <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     sparseImageInt64Atomics <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceShaderImageAtomicInt64FeaturesEXT-             (bool32ToBool shaderImageInt64Atomics) (bool32ToBool sparseImageInt64Atomics)+             (bool32ToBool shaderImageInt64Atomics)+             (bool32ToBool sparseImageInt64Atomics)  instance Storable PhysicalDeviceShaderImageAtomicInt64FeaturesEXT where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_EXT_shader_module_identifier.hs view
@@ -295,7 +295,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetShaderModuleIdentifierEXT is null" Nothing Nothing   let vkGetShaderModuleIdentifierEXT' = mkVkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXTPtr   pPIdentifier <- ContT (withZeroCStruct @ShaderModuleIdentifierEXT)-  lift $ traceAroundEvent "vkGetShaderModuleIdentifierEXT" (vkGetShaderModuleIdentifierEXT' (deviceHandle (device)) (shaderModule) (pPIdentifier))+  lift $ traceAroundEvent "vkGetShaderModuleIdentifierEXT" (vkGetShaderModuleIdentifierEXT'+                                                              (deviceHandle (device))+                                                              (shaderModule)+                                                              (pPIdentifier))   pIdentifier <- lift $ peekCStruct @ShaderModuleIdentifierEXT pPIdentifier   pure $ (pIdentifier) @@ -355,7 +358,9 @@ -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo', -- 'ShaderModuleIdentifierEXT' getShaderModuleCreateInfoIdentifierEXT :: forall a io-                                        . (Extendss ShaderModuleCreateInfo a, PokeChain a, MonadIO io)+                                        . ( Extendss ShaderModuleCreateInfo a+                                          , PokeChain a+                                          , MonadIO io )                                        => -- | @device@ is the logical device that /can/ create a                                           -- 'Vulkan.Core10.Handles.ShaderModule' from @pCreateInfo@.                                           Device@@ -363,14 +368,18 @@                                           -- 'Vulkan.Core10.Shader.ShaderModuleCreateInfo' structure.                                           (ShaderModuleCreateInfo a)                                        -> io (ShaderModuleIdentifierEXT)-getShaderModuleCreateInfoIdentifierEXT device createInfo = liftIO . evalContT $ do+getShaderModuleCreateInfoIdentifierEXT device+                                         createInfo = liftIO . evalContT $ do   let vkGetShaderModuleCreateInfoIdentifierEXTPtr = pVkGetShaderModuleCreateInfoIdentifierEXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetShaderModuleCreateInfoIdentifierEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetShaderModuleCreateInfoIdentifierEXT is null" Nothing Nothing   let vkGetShaderModuleCreateInfoIdentifierEXT' = mkVkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXTPtr   pCreateInfo <- ContT $ withCStruct (createInfo)   pPIdentifier <- ContT (withZeroCStruct @ShaderModuleIdentifierEXT)-  lift $ traceAroundEvent "vkGetShaderModuleCreateInfoIdentifierEXT" (vkGetShaderModuleCreateInfoIdentifierEXT' (deviceHandle (device)) (forgetExtensions pCreateInfo) (pPIdentifier))+  lift $ traceAroundEvent "vkGetShaderModuleCreateInfoIdentifierEXT" (vkGetShaderModuleCreateInfoIdentifierEXT'+                                                                        (deviceHandle (device))+                                                                        (forgetExtensions pCreateInfo)+                                                                        (pPIdentifier))   pIdentifier <- lift $ peekCStruct @ShaderModuleIdentifierEXT pPIdentifier   pure $ (pIdentifier) 
src/Vulkan/Extensions/VK_EXT_subpass_merge_feedback.hs view
@@ -567,70 +567,87 @@  -- | 'SUBPASS_MERGE_STATUS_MERGED_EXT' specifies the subpass is merged with a -- previous subpass.-pattern SUBPASS_MERGE_STATUS_MERGED_EXT                              = SubpassMergeStatusEXT 0+pattern SUBPASS_MERGE_STATUS_MERGED_EXT = SubpassMergeStatusEXT 0+ -- | 'SUBPASS_MERGE_STATUS_DISALLOWED_EXT' specifies the subpass is -- disallowed to merge with previous subpass. If the render pass does not -- allow subpass merging, then all subpass statuses are set to this value. -- If a subpass description does not allow subpass merging, then only that -- subpass’s status is set to this value.-pattern SUBPASS_MERGE_STATUS_DISALLOWED_EXT                          = SubpassMergeStatusEXT 1+pattern SUBPASS_MERGE_STATUS_DISALLOWED_EXT = SubpassMergeStatusEXT 1+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT' specifies the subpass -- is not merged because it contains side effects.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT             = SubpassMergeStatusEXT 2+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = SubpassMergeStatusEXT 2+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT' specifies the -- subpass is not merged because sample count is not compatible with -- previous subpass.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT         = SubpassMergeStatusEXT 3+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = SubpassMergeStatusEXT 3+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT' specifies the -- subpass is not merged because view masks do not match with previous -- subpass.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT           = SubpassMergeStatusEXT 4+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = SubpassMergeStatusEXT 4+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT' specifies the subpass is -- not merged because of attachments aliasing between them.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT                 = SubpassMergeStatusEXT 5+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = SubpassMergeStatusEXT 5+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT' specifies the subpass -- is not merged because subpass dependencies do not allow merging.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT             = SubpassMergeStatusEXT 6+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = SubpassMergeStatusEXT 6+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT' -- specifies the subpass is not merged because input attachment is not a -- color attachment from previous subpass or the formats are incompatible. pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = SubpassMergeStatusEXT 7+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT' specifies the -- subpass is not merged because of too many attachments.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT     = SubpassMergeStatusEXT 8+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = SubpassMergeStatusEXT 8+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT' specifies the -- subpass is not merged because of insufficient memory.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT     = SubpassMergeStatusEXT 9+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = SubpassMergeStatusEXT 9+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT' specifies the -- subpass is not merged because of too many depth\/stencil attachments.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT      = SubpassMergeStatusEXT 10+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = SubpassMergeStatusEXT 10+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT' specifies -- the subpass is not merged because a resolve attachment is reused as an -- input attachment in a subsequent subpass. pattern SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = SubpassMergeStatusEXT 11+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT' specifies the -- subpass is not merged because the render pass has only one subpass.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT           = SubpassMergeStatusEXT 12+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = SubpassMergeStatusEXT 12+ -- | 'SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT' specifies other -- reasons why subpass is not merged. It is also the recommended default -- value that should be reported when a subpass is not merged and when no -- other value is appropriate.-pattern SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT              = SubpassMergeStatusEXT 13-{-# complete SUBPASS_MERGE_STATUS_MERGED_EXT,-             SUBPASS_MERGE_STATUS_DISALLOWED_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT,-             SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT :: SubpassMergeStatusEXT #-}+pattern SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = SubpassMergeStatusEXT 13 +{-# COMPLETE+  SUBPASS_MERGE_STATUS_MERGED_EXT+  , SUBPASS_MERGE_STATUS_DISALLOWED_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT+  , SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT ::+    SubpassMergeStatusEXT+  #-}+ conNameSubpassMergeStatusEXT :: String conNameSubpassMergeStatusEXT = "SubpassMergeStatusEXT" @@ -639,35 +656,80 @@  showTableSubpassMergeStatusEXT :: [(SubpassMergeStatusEXT, String)] showTableSubpassMergeStatusEXT =-  [ (SUBPASS_MERGE_STATUS_MERGED_EXT                             , "MERGED_EXT")-  , (SUBPASS_MERGE_STATUS_DISALLOWED_EXT                         , "DISALLOWED_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT            , "NOT_MERGED_SIDE_EFFECTS_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT        , "NOT_MERGED_SAMPLES_MISMATCH_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT          , "NOT_MERGED_VIEWS_MISMATCH_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT                , "NOT_MERGED_ALIASING_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT            , "NOT_MERGED_DEPENDENCIES_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT, "NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT    , "NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT    , "NOT_MERGED_INSUFFICIENT_STORAGE_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT     , "NOT_MERGED_DEPTH_STENCIL_COUNT_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT, "NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT          , "NOT_MERGED_SINGLE_SUBPASS_EXT")-  , (SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT             , "NOT_MERGED_UNSPECIFIED_EXT")+  [+    ( SUBPASS_MERGE_STATUS_MERGED_EXT+    , "MERGED_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_DISALLOWED_EXT+    , "DISALLOWED_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT+    , "NOT_MERGED_SIDE_EFFECTS_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT+    , "NOT_MERGED_SAMPLES_MISMATCH_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT+    , "NOT_MERGED_VIEWS_MISMATCH_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT+    , "NOT_MERGED_ALIASING_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT+    , "NOT_MERGED_DEPENDENCIES_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT+    , "NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT+    , "NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT+    , "NOT_MERGED_INSUFFICIENT_STORAGE_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT+    , "NOT_MERGED_DEPTH_STENCIL_COUNT_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT+    , "NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT+    , "NOT_MERGED_SINGLE_SUBPASS_EXT"+    )+  ,+    ( SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT+    , "NOT_MERGED_UNSPECIFIED_EXT"+    )   ]  instance Show SubpassMergeStatusEXT where-  showsPrec = enumShowsPrec enumPrefixSubpassMergeStatusEXT-                            showTableSubpassMergeStatusEXT-                            conNameSubpassMergeStatusEXT-                            (\(SubpassMergeStatusEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixSubpassMergeStatusEXT+      showTableSubpassMergeStatusEXT+      conNameSubpassMergeStatusEXT+      (\(SubpassMergeStatusEXT x) -> x)+      (showsPrec 11)  instance Read SubpassMergeStatusEXT where-  readPrec = enumReadPrec enumPrefixSubpassMergeStatusEXT-                          showTableSubpassMergeStatusEXT-                          conNameSubpassMergeStatusEXT-                          SubpassMergeStatusEXT-+  readPrec =+    enumReadPrec+      enumPrefixSubpassMergeStatusEXT+      showTableSubpassMergeStatusEXT+      conNameSubpassMergeStatusEXT+      SubpassMergeStatusEXT  type EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -469,7 +469,11 @@                                       -- buffer minus the buffer offset.                                       ("sizes" ::: Vector DeviceSize)                                    -> io ()-cmdBindTransformFeedbackBuffersEXT commandBuffer firstBinding buffers offsets sizes = liftIO . evalContT $ do+cmdBindTransformFeedbackBuffersEXT commandBuffer+                                     firstBinding+                                     buffers+                                     offsets+                                     sizes = liftIO . evalContT $ do   let vkCmdBindTransformFeedbackBuffersEXTPtr = pVkCmdBindTransformFeedbackBuffersEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBindTransformFeedbackBuffersEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindTransformFeedbackBuffersEXT is null" Nothing Nothing@@ -490,7 +494,13 @@       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-  lift $ traceAroundEvent "vkCmdBindTransformFeedbackBuffersEXT" (vkCmdBindTransformFeedbackBuffersEXT' (commandBufferHandle (commandBuffer)) (firstBinding) ((fromIntegral pBuffersLength :: Word32)) (pPBuffers) (pPOffsets) pSizes)+  lift $ traceAroundEvent "vkCmdBindTransformFeedbackBuffersEXT" (vkCmdBindTransformFeedbackBuffersEXT'+                                                                    (commandBufferHandle (commandBuffer))+                                                                    (firstBinding)+                                                                    ((fromIntegral pBuffersLength :: Word32))+                                                                    (pPBuffers)+                                                                    (pPOffsets)+                                                                    pSizes)   pure $ ()  @@ -650,7 +660,10 @@                                 -- offsets are zero.                                 ("counterBufferOffsets" ::: Vector DeviceSize)                              -> io ()-cmdBeginTransformFeedbackEXT commandBuffer firstCounterBuffer counterBuffers counterBufferOffsets = liftIO . evalContT $ do+cmdBeginTransformFeedbackEXT commandBuffer+                               firstCounterBuffer+                               counterBuffers+                               counterBufferOffsets = liftIO . evalContT $ do   let vkCmdBeginTransformFeedbackEXTPtr = pVkCmdBeginTransformFeedbackEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBeginTransformFeedbackEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginTransformFeedbackEXT is null" Nothing Nothing@@ -667,7 +680,12 @@       pPCounterBufferOffsets <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8)       lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets))       pure $ pPCounterBufferOffsets-  lift $ traceAroundEvent "vkCmdBeginTransformFeedbackEXT" (vkCmdBeginTransformFeedbackEXT' (commandBufferHandle (commandBuffer)) (firstCounterBuffer) ((fromIntegral pCounterBuffersLength :: Word32)) (pPCounterBuffers) pCounterBufferOffsets)+  lift $ traceAroundEvent "vkCmdBeginTransformFeedbackEXT" (vkCmdBeginTransformFeedbackEXT'+                                                              (commandBufferHandle (commandBuffer))+                                                              (firstCounterBuffer)+                                                              ((fromIntegral pCounterBuffersLength :: Word32))+                                                              (pPCounterBuffers)+                                                              pCounterBufferOffsets)   pure $ ()  -- | This function will call the supplied action between calls to@@ -676,8 +694,18 @@ -- Note that 'cmdEndTransformFeedbackEXT' is *not* called if an exception -- is thrown by the inner action. cmdUseTransformFeedbackEXT :: forall io r . MonadIO io => CommandBuffer -> Word32 -> Vector Buffer -> Vector DeviceSize -> io r -> io r-cmdUseTransformFeedbackEXT commandBuffer firstCounterBuffer pCounterBuffers pCounterBufferOffsets a =-  (cmdBeginTransformFeedbackEXT commandBuffer firstCounterBuffer pCounterBuffers pCounterBufferOffsets) *> a <* (cmdEndTransformFeedbackEXT commandBuffer firstCounterBuffer pCounterBuffers pCounterBufferOffsets)+cmdUseTransformFeedbackEXT commandBuffer+                             firstCounterBuffer+                             pCounterBuffers+                             pCounterBufferOffsets+                             a =+  (cmdBeginTransformFeedbackEXT commandBuffer+                                  firstCounterBuffer+                                  pCounterBuffers+                                  pCounterBufferOffsets) *> a <* (cmdEndTransformFeedbackEXT commandBuffer+                                                                                               firstCounterBuffer+                                                                                               pCounterBuffers+                                                                                               pCounterBufferOffsets)   foreign import ccall@@ -812,7 +840,10 @@                               -- zero.                               ("counterBufferOffsets" ::: Vector DeviceSize)                            -> io ()-cmdEndTransformFeedbackEXT commandBuffer firstCounterBuffer counterBuffers counterBufferOffsets = liftIO . evalContT $ do+cmdEndTransformFeedbackEXT commandBuffer+                             firstCounterBuffer+                             counterBuffers+                             counterBufferOffsets = liftIO . evalContT $ do   let vkCmdEndTransformFeedbackEXTPtr = pVkCmdEndTransformFeedbackEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdEndTransformFeedbackEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndTransformFeedbackEXT is null" Nothing Nothing@@ -829,7 +860,12 @@       pPCounterBufferOffsets <- ContT $ allocaBytes @DeviceSize (((Data.Vector.length (counterBufferOffsets))) * 8)       lift $ Data.Vector.imapM_ (\i e -> poke (pPCounterBufferOffsets `plusPtr` (8 * (i)) :: Ptr DeviceSize) (e)) ((counterBufferOffsets))       pure $ pPCounterBufferOffsets-  lift $ traceAroundEvent "vkCmdEndTransformFeedbackEXT" (vkCmdEndTransformFeedbackEXT' (commandBufferHandle (commandBuffer)) (firstCounterBuffer) ((fromIntegral pCounterBuffersLength :: Word32)) (pPCounterBuffers) pCounterBufferOffsets)+  lift $ traceAroundEvent "vkCmdEndTransformFeedbackEXT" (vkCmdEndTransformFeedbackEXT'+                                                            (commandBufferHandle (commandBuffer))+                                                            (firstCounterBuffer)+                                                            ((fromIntegral pCounterBuffersLength :: Word32))+                                                            (pPCounterBuffers)+                                                            pCounterBufferOffsets)   pure $ ()  @@ -1136,7 +1172,12 @@   unless (vkCmdBeginQueryIndexedEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBeginQueryIndexedEXT is null" Nothing Nothing   let vkCmdBeginQueryIndexedEXT' = mkVkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXTPtr-  traceAroundEvent "vkCmdBeginQueryIndexedEXT" (vkCmdBeginQueryIndexedEXT' (commandBufferHandle (commandBuffer)) (queryPool) (query) (flags) (index))+  traceAroundEvent "vkCmdBeginQueryIndexedEXT" (vkCmdBeginQueryIndexedEXT'+                                                  (commandBufferHandle (commandBuffer))+                                                  (queryPool)+                                                  (query)+                                                  (flags)+                                                  (index))   pure $ ()  -- | This function will call the supplied action between calls to@@ -1146,7 +1187,14 @@ -- thrown by the inner action. cmdUseQueryIndexedEXT :: forall io r . MonadIO io => CommandBuffer -> QueryPool -> Word32 -> QueryControlFlags -> Word32 -> io r -> io r cmdUseQueryIndexedEXT commandBuffer queryPool query flags index a =-  (cmdBeginQueryIndexedEXT commandBuffer queryPool query flags index) *> a <* (cmdEndQueryIndexedEXT commandBuffer queryPool query index)+  (cmdBeginQueryIndexedEXT commandBuffer+                             queryPool+                             query+                             flags+                             index) *> a <* (cmdEndQueryIndexedEXT commandBuffer+                                                                     queryPool+                                                                     query+                                                                     index)   foreign import ccall@@ -1301,7 +1349,11 @@   unless (vkCmdEndQueryIndexedEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdEndQueryIndexedEXT is null" Nothing Nothing   let vkCmdEndQueryIndexedEXT' = mkVkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXTPtr-  traceAroundEvent "vkCmdEndQueryIndexedEXT" (vkCmdEndQueryIndexedEXT' (commandBufferHandle (commandBuffer)) (queryPool) (query) (index))+  traceAroundEvent "vkCmdEndQueryIndexedEXT" (vkCmdEndQueryIndexedEXT'+                                                (commandBufferHandle (commandBuffer))+                                                (queryPool)+                                                (query)+                                                (index))   pure $ ()  @@ -1710,6 +1762,20 @@ --     attachment used by the current subpass /must/ be bound to the --     pipeline via a descriptor set --+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-06537# Memory backing image --     subresources used as attachments in the current render pass /must/ --     not be written in any way other than as an attachment by this@@ -2221,6 +2287,360 @@ --     created with a non-zero value in --     'PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pColorBlendEnables-07470# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07471# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07476# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07477# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07478# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-firstAttachment-07479# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07484# If+--     the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07485# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07486# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-07487# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07489# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-coverageToColorEnable-07490# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-coverageReductionMode-07491# If+--     this @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawIndirectByteCountEXT-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-07494# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07495# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-stage-07073# If the currently --     bound pipeline was created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -2253,13 +2673,13 @@ --     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420# If the---     bound graphics pipeline state was created with the+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicPrimitiveTopologyUnrestricted-07500#+--     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+--     dynamic state enabled and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to --     '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>@@ -2426,12 +2846,25 @@                                -- @XfbStride@.                                ("vertexStride" ::: Word32)                             -> io ()-cmdDrawIndirectByteCountEXT commandBuffer instanceCount firstInstance counterBuffer counterBufferOffset counterOffset vertexStride = liftIO $ do+cmdDrawIndirectByteCountEXT commandBuffer+                              instanceCount+                              firstInstance+                              counterBuffer+                              counterBufferOffset+                              counterOffset+                              vertexStride = liftIO $ do   let vkCmdDrawIndirectByteCountEXTPtr = pVkCmdDrawIndirectByteCountEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdDrawIndirectByteCountEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawIndirectByteCountEXT is null" Nothing Nothing   let vkCmdDrawIndirectByteCountEXT' = mkVkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXTPtr-  traceAroundEvent "vkCmdDrawIndirectByteCountEXT" (vkCmdDrawIndirectByteCountEXT' (commandBufferHandle (commandBuffer)) (instanceCount) (firstInstance) (counterBuffer) (counterBufferOffset) (counterOffset) (vertexStride))+  traceAroundEvent "vkCmdDrawIndirectByteCountEXT" (vkCmdDrawIndirectByteCountEXT'+                                                      (commandBufferHandle (commandBuffer))+                                                      (instanceCount)+                                                      (firstInstance)+                                                      (counterBuffer)+                                                      (counterBufferOffset)+                                                      (counterOffset)+                                                      (vertexStride))   pure $ ()  @@ -2647,7 +3080,16 @@     transformFeedbackRasterizationStreamSelect <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))     transformFeedbackDraw <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))     pure $ PhysicalDeviceTransformFeedbackPropertiesEXT-             maxTransformFeedbackStreams maxTransformFeedbackBuffers maxTransformFeedbackBufferSize maxTransformFeedbackStreamDataSize maxTransformFeedbackBufferDataSize maxTransformFeedbackBufferDataStride (bool32ToBool transformFeedbackQueries) (bool32ToBool transformFeedbackStreamsLinesTriangles) (bool32ToBool transformFeedbackRasterizationStreamSelect) (bool32ToBool transformFeedbackDraw)+             maxTransformFeedbackStreams+             maxTransformFeedbackBuffers+             maxTransformFeedbackBufferSize+             maxTransformFeedbackStreamDataSize+             maxTransformFeedbackBufferDataSize+             maxTransformFeedbackBufferDataStride+             (bool32ToBool transformFeedbackQueries)+             (bool32ToBool transformFeedbackStreamsLinesTriangles)+             (bool32ToBool transformFeedbackRasterizationStreamSelect)+             (bool32ToBool transformFeedbackDraw)  instance Storable PhysicalDeviceTransformFeedbackPropertiesEXT where   sizeOf ~_ = 64@@ -2758,8 +3200,6 @@ newtype PipelineRasterizationStateStreamCreateFlagsEXT = PipelineRasterizationStateStreamCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineRasterizationStateStreamCreateFlagsEXT :: String conNamePipelineRasterizationStateStreamCreateFlagsEXT = "PipelineRasterizationStateStreamCreateFlagsEXT" @@ -2770,18 +3210,21 @@ showTablePipelineRasterizationStateStreamCreateFlagsEXT = []  instance Show PipelineRasterizationStateStreamCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixPipelineRasterizationStateStreamCreateFlagsEXT-                            showTablePipelineRasterizationStateStreamCreateFlagsEXT-                            conNamePipelineRasterizationStateStreamCreateFlagsEXT-                            (\(PipelineRasterizationStateStreamCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineRasterizationStateStreamCreateFlagsEXT+      showTablePipelineRasterizationStateStreamCreateFlagsEXT+      conNamePipelineRasterizationStateStreamCreateFlagsEXT+      (\(PipelineRasterizationStateStreamCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineRasterizationStateStreamCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixPipelineRasterizationStateStreamCreateFlagsEXT-                          showTablePipelineRasterizationStateStreamCreateFlagsEXT-                          conNamePipelineRasterizationStateStreamCreateFlagsEXT-                          PipelineRasterizationStateStreamCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixPipelineRasterizationStateStreamCreateFlagsEXT+      showTablePipelineRasterizationStateStreamCreateFlagsEXT+      conNamePipelineRasterizationStateStreamCreateFlagsEXT+      PipelineRasterizationStateStreamCreateFlagsEXT  type EXT_TRANSFORM_FEEDBACK_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_validation_cache.hs view
@@ -315,7 +315,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPValidationCache <- ContT $ bracket (callocBytes @ValidationCacheEXT 8) free-  r <- lift $ traceAroundEvent "vkCreateValidationCacheEXT" (vkCreateValidationCacheEXT' (deviceHandle (device)) pCreateInfo pAllocator (pPValidationCache))+  r <- lift $ traceAroundEvent "vkCreateValidationCacheEXT" (vkCreateValidationCacheEXT'+                                                               (deviceHandle (device))+                                                               pCreateInfo+                                                               pAllocator+                                                               (pPValidationCache))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pValidationCache <- lift $ peek @ValidationCacheEXT pPValidationCache   pure $ (pValidationCache)@@ -396,7 +400,9 @@                              -- chapter.                              ("allocator" ::: Maybe AllocationCallbacks)                           -> io ()-destroyValidationCacheEXT device validationCache allocator = liftIO . evalContT $ do+destroyValidationCacheEXT device+                            validationCache+                            allocator = liftIO . evalContT $ do   let vkDestroyValidationCacheEXTPtr = pVkDestroyValidationCacheEXT (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyValidationCacheEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyValidationCacheEXT is null" Nothing Nothing@@ -404,7 +410,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyValidationCacheEXT" (vkDestroyValidationCacheEXT' (deviceHandle (device)) (validationCache) pAllocator)+  lift $ traceAroundEvent "vkDestroyValidationCacheEXT" (vkDestroyValidationCacheEXT'+                                                           (deviceHandle (device))+                                                           (validationCache)+                                                           pAllocator)   pure $ ()  @@ -535,14 +544,23 @@   let vkGetValidationCacheDataEXT' = mkVkGetValidationCacheDataEXT vkGetValidationCacheDataEXTPtr   let device' = deviceHandle (device)   pPDataSize <- ContT $ bracket (callocBytes @CSize 8) free-  r <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT'+                                                                device'+                                                                (validationCache)+                                                                (pPDataSize)+                                                                (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDataSize <- lift $ peek @CSize pPDataSize   pPData <- ContT $ bracket (callocBytes @(()) (fromIntegral ((coerce @CSize @Word64 pDataSize)))) free-  r' <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT' device' (validationCache) (pPDataSize) (pPData))+  r' <- lift $ traceAroundEvent "vkGetValidationCacheDataEXT" (vkGetValidationCacheDataEXT'+                                                                 device'+                                                                 (validationCache)+                                                                 (pPDataSize)+                                                                 (pPData))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pDataSize'' <- lift $ peek @CSize pPDataSize-  pData' <- lift $ packCStringLen  (castPtr @() @CChar pPData, (fromIntegral ((coerce @CSize @Word64 pDataSize''))))+  pData' <- lift $ packCStringLen  ( castPtr @() @CChar pPData+                                   , (fromIntegral ((coerce @CSize @Word64 pDataSize''))) )   pure $ ((r'), pData')  @@ -631,7 +649,11 @@   let vkMergeValidationCachesEXT' = mkVkMergeValidationCachesEXT vkMergeValidationCachesEXTPtr   pPSrcCaches <- ContT $ allocaBytes @ValidationCacheEXT ((Data.Vector.length (srcCaches)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPSrcCaches `plusPtr` (8 * (i)) :: Ptr ValidationCacheEXT) (e)) (srcCaches)-  r <- lift $ traceAroundEvent "vkMergeValidationCachesEXT" (vkMergeValidationCachesEXT' (deviceHandle (device)) (dstCache) ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32)) (pPSrcCaches))+  r <- lift $ traceAroundEvent "vkMergeValidationCachesEXT" (vkMergeValidationCachesEXT'+                                                               (deviceHandle (device))+                                                               (dstCache)+                                                               ((fromIntegral (Data.Vector.length $ (srcCaches)) :: Word32))+                                                               (pPSrcCaches))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -797,8 +819,6 @@ newtype ValidationCacheCreateFlagsEXT = ValidationCacheCreateFlagsEXT Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameValidationCacheCreateFlagsEXT :: String conNameValidationCacheCreateFlagsEXT = "ValidationCacheCreateFlagsEXT" @@ -809,18 +829,21 @@ showTableValidationCacheCreateFlagsEXT = []  instance Show ValidationCacheCreateFlagsEXT where-  showsPrec = enumShowsPrec enumPrefixValidationCacheCreateFlagsEXT-                            showTableValidationCacheCreateFlagsEXT-                            conNameValidationCacheCreateFlagsEXT-                            (\(ValidationCacheCreateFlagsEXT x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixValidationCacheCreateFlagsEXT+      showTableValidationCacheCreateFlagsEXT+      conNameValidationCacheCreateFlagsEXT+      (\(ValidationCacheCreateFlagsEXT x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ValidationCacheCreateFlagsEXT where-  readPrec = enumReadPrec enumPrefixValidationCacheCreateFlagsEXT-                          showTableValidationCacheCreateFlagsEXT-                          conNameValidationCacheCreateFlagsEXT-                          ValidationCacheCreateFlagsEXT-+  readPrec =+    enumReadPrec+      enumPrefixValidationCacheCreateFlagsEXT+      showTableValidationCacheCreateFlagsEXT+      conNameValidationCacheCreateFlagsEXT+      ValidationCacheCreateFlagsEXT  -- | VkValidationCacheHeaderVersionEXT - Encode validation cache version --@@ -830,13 +853,15 @@ -- 'createValidationCacheEXT', 'getValidationCacheDataEXT' newtype ValidationCacheHeaderVersionEXT = ValidationCacheHeaderVersionEXT 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  -- | 'VALIDATION_CACHE_HEADER_VERSION_ONE_EXT' specifies version one of the -- validation cache. pattern VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = ValidationCacheHeaderVersionEXT 1-{-# complete VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: ValidationCacheHeaderVersionEXT #-} +{-# COMPLETE VALIDATION_CACHE_HEADER_VERSION_ONE_EXT :: ValidationCacheHeaderVersionEXT #-}+ conNameValidationCacheHeaderVersionEXT :: String conNameValidationCacheHeaderVersionEXT = "ValidationCacheHeaderVersionEXT" @@ -844,21 +869,29 @@ enumPrefixValidationCacheHeaderVersionEXT = "VALIDATION_CACHE_HEADER_VERSION_ONE_EXT"  showTableValidationCacheHeaderVersionEXT :: [(ValidationCacheHeaderVersionEXT, String)]-showTableValidationCacheHeaderVersionEXT = [(VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, "")]+showTableValidationCacheHeaderVersionEXT =+  [+    ( VALIDATION_CACHE_HEADER_VERSION_ONE_EXT+    , ""+    )+  ]  instance Show ValidationCacheHeaderVersionEXT where-  showsPrec = enumShowsPrec enumPrefixValidationCacheHeaderVersionEXT-                            showTableValidationCacheHeaderVersionEXT-                            conNameValidationCacheHeaderVersionEXT-                            (\(ValidationCacheHeaderVersionEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixValidationCacheHeaderVersionEXT+      showTableValidationCacheHeaderVersionEXT+      conNameValidationCacheHeaderVersionEXT+      (\(ValidationCacheHeaderVersionEXT x) -> x)+      (showsPrec 11)  instance Read ValidationCacheHeaderVersionEXT where-  readPrec = enumReadPrec enumPrefixValidationCacheHeaderVersionEXT-                          showTableValidationCacheHeaderVersionEXT-                          conNameValidationCacheHeaderVersionEXT-                          ValidationCacheHeaderVersionEXT-+  readPrec =+    enumReadPrec+      enumPrefixValidationCacheHeaderVersionEXT+      showTableValidationCacheHeaderVersionEXT+      conNameValidationCacheHeaderVersionEXT+      ValidationCacheHeaderVersionEXT  type EXT_VALIDATION_CACHE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_EXT_validation_features.hs view
@@ -289,7 +289,8 @@ -- validation is enabled. Activating this feature instruments shader -- programs to generate additional diagnostic data. This feature is -- disabled by default.-pattern VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT                      = ValidationFeatureEnableEXT 0+pattern VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = ValidationFeatureEnableEXT 0+ -- | 'VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT' -- specifies that the validation layers reserve a descriptor set binding -- slot for their own use. The layer reports a value for@@ -299,29 +300,36 @@ -- does not perform GPU-assisted validation. This feature is disabled by -- default. pattern VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = ValidationFeatureEnableEXT 1+ -- | 'VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT' specifies that Vulkan -- best-practices validation is enabled. Activating this feature enables -- the output of warnings related to common misuse of the API, but which -- are not explicitly prohibited by the specification. This feature is -- disabled by default.-pattern VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT                    = ValidationFeatureEnableEXT 2+pattern VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = ValidationFeatureEnableEXT 2+ -- | 'VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT' specifies that the layers -- will process @debugPrintfEXT@ operations in shaders and send the -- resulting output to the debug callback. This feature is disabled by -- default.-pattern VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT                      = ValidationFeatureEnableEXT 3+pattern VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = ValidationFeatureEnableEXT 3+ -- | 'VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT' specifies -- that Vulkan synchronization validation is enabled. This feature reports -- resource access conflicts due to missing or incorrect synchronization -- operations between actions (Draw, Copy, Dispatch, Blit) reading or -- writing the same regions of memory. This feature is disabled by default.-pattern VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT        = ValidationFeatureEnableEXT 4-{-# complete VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,-             VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT,-             VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT,-             VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT,-             VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT :: ValidationFeatureEnableEXT #-}+pattern VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = ValidationFeatureEnableEXT 4 +{-# COMPLETE+  VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT+  , VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT+  , VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT+  , VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT+  , VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT ::+    ValidationFeatureEnableEXT+  #-}+ conNameValidationFeatureEnableEXT :: String conNameValidationFeatureEnableEXT = "ValidationFeatureEnableEXT" @@ -330,26 +338,44 @@  showTableValidationFeatureEnableEXT :: [(ValidationFeatureEnableEXT, String)] showTableValidationFeatureEnableEXT =-  [ (VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT                     , "GPU_ASSISTED_EXT")-  , (VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, "GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT")-  , (VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT                   , "BEST_PRACTICES_EXT")-  , (VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT                     , "DEBUG_PRINTF_EXT")-  , (VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT       , "SYNCHRONIZATION_VALIDATION_EXT")+  [+    ( VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT+    , "GPU_ASSISTED_EXT"+    )+  ,+    ( VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT+    , "GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT"+    )+  ,+    ( VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT+    , "BEST_PRACTICES_EXT"+    )+  ,+    ( VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT+    , "DEBUG_PRINTF_EXT"+    )+  ,+    ( VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT+    , "SYNCHRONIZATION_VALIDATION_EXT"+    )   ]  instance Show ValidationFeatureEnableEXT where-  showsPrec = enumShowsPrec enumPrefixValidationFeatureEnableEXT-                            showTableValidationFeatureEnableEXT-                            conNameValidationFeatureEnableEXT-                            (\(ValidationFeatureEnableEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixValidationFeatureEnableEXT+      showTableValidationFeatureEnableEXT+      conNameValidationFeatureEnableEXT+      (\(ValidationFeatureEnableEXT x) -> x)+      (showsPrec 11)  instance Read ValidationFeatureEnableEXT where-  readPrec = enumReadPrec enumPrefixValidationFeatureEnableEXT-                          showTableValidationFeatureEnableEXT-                          conNameValidationFeatureEnableEXT-                          ValidationFeatureEnableEXT-+  readPrec =+    enumReadPrec+      enumPrefixValidationFeatureEnableEXT+      showTableValidationFeatureEnableEXT+      conNameValidationFeatureEnableEXT+      ValidationFeatureEnableEXT  -- | VkValidationFeatureDisableEXT - Specify validation features to disable --@@ -362,42 +388,53 @@  -- | 'VALIDATION_FEATURE_DISABLE_ALL_EXT' specifies that all validation -- checks are disabled.-pattern VALIDATION_FEATURE_DISABLE_ALL_EXT                     = ValidationFeatureDisableEXT 0+pattern VALIDATION_FEATURE_DISABLE_ALL_EXT = ValidationFeatureDisableEXT 0+ -- | 'VALIDATION_FEATURE_DISABLE_SHADERS_EXT' specifies that shader -- validation is disabled. This feature is enabled by default.-pattern VALIDATION_FEATURE_DISABLE_SHADERS_EXT                 = ValidationFeatureDisableEXT 1+pattern VALIDATION_FEATURE_DISABLE_SHADERS_EXT = ValidationFeatureDisableEXT 1+ -- | 'VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT' specifies that thread -- safety validation is disabled. This feature is enabled by default.-pattern VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT           = ValidationFeatureDisableEXT 2+pattern VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = ValidationFeatureDisableEXT 2+ -- | 'VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT' specifies that stateless -- parameter validation is disabled. This feature is enabled by default.-pattern VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT          = ValidationFeatureDisableEXT 3+pattern VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = ValidationFeatureDisableEXT 3+ -- | 'VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT' specifies that object -- lifetime validation is disabled. This feature is enabled by default.-pattern VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT        = ValidationFeatureDisableEXT 4+pattern VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = ValidationFeatureDisableEXT 4+ -- | 'VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT' specifies that core -- validation checks are disabled. This feature is enabled by default. If -- this feature is disabled, the shader validation and GPU-assisted -- validation features are also disabled.-pattern VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT             = ValidationFeatureDisableEXT 5+pattern VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = ValidationFeatureDisableEXT 5+ -- | 'VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT' specifies that -- protection against duplicate non-dispatchable object handles is -- disabled. This feature is enabled by default.-pattern VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT          = ValidationFeatureDisableEXT 6+pattern VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = ValidationFeatureDisableEXT 6+ -- | 'VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT' specifies that -- there will be no caching of shader validation results and every shader -- will be validated on every application execution. Shader validation -- caching is enabled by default. pattern VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = ValidationFeatureDisableEXT 7-{-# complete VALIDATION_FEATURE_DISABLE_ALL_EXT,-             VALIDATION_FEATURE_DISABLE_SHADERS_EXT,-             VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT,-             VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT,-             VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT,-             VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT,-             VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT,-             VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT :: ValidationFeatureDisableEXT #-} +{-# COMPLETE+  VALIDATION_FEATURE_DISABLE_ALL_EXT+  , VALIDATION_FEATURE_DISABLE_SHADERS_EXT+  , VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT+  , VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT+  , VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT+  , VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT+  , VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT+  , VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT ::+    ValidationFeatureDisableEXT+  #-}+ conNameValidationFeatureDisableEXT :: String conNameValidationFeatureDisableEXT = "ValidationFeatureDisableEXT" @@ -406,29 +443,56 @@  showTableValidationFeatureDisableEXT :: [(ValidationFeatureDisableEXT, String)] showTableValidationFeatureDisableEXT =-  [ (VALIDATION_FEATURE_DISABLE_ALL_EXT                    , "ALL_EXT")-  , (VALIDATION_FEATURE_DISABLE_SHADERS_EXT                , "SHADERS_EXT")-  , (VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT          , "THREAD_SAFETY_EXT")-  , (VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT         , "API_PARAMETERS_EXT")-  , (VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT       , "OBJECT_LIFETIMES_EXT")-  , (VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT            , "CORE_CHECKS_EXT")-  , (VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT         , "UNIQUE_HANDLES_EXT")-  , (VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT, "SHADER_VALIDATION_CACHE_EXT")+  [+    ( VALIDATION_FEATURE_DISABLE_ALL_EXT+    , "ALL_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_SHADERS_EXT+    , "SHADERS_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT+    , "THREAD_SAFETY_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT+    , "API_PARAMETERS_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT+    , "OBJECT_LIFETIMES_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT+    , "CORE_CHECKS_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT+    , "UNIQUE_HANDLES_EXT"+    )+  ,+    ( VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT+    , "SHADER_VALIDATION_CACHE_EXT"+    )   ]  instance Show ValidationFeatureDisableEXT where-  showsPrec = enumShowsPrec enumPrefixValidationFeatureDisableEXT-                            showTableValidationFeatureDisableEXT-                            conNameValidationFeatureDisableEXT-                            (\(ValidationFeatureDisableEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixValidationFeatureDisableEXT+      showTableValidationFeatureDisableEXT+      conNameValidationFeatureDisableEXT+      (\(ValidationFeatureDisableEXT x) -> x)+      (showsPrec 11)  instance Read ValidationFeatureDisableEXT where-  readPrec = enumReadPrec enumPrefixValidationFeatureDisableEXT-                          showTableValidationFeatureDisableEXT-                          conNameValidationFeatureDisableEXT-                          ValidationFeatureDisableEXT-+  readPrec =+    enumReadPrec+      enumPrefixValidationFeatureDisableEXT+      showTableValidationFeatureDisableEXT+      conNameValidationFeatureDisableEXT+      ValidationFeatureDisableEXT  type EXT_VALIDATION_FEATURES_SPEC_VERSION = 5 
src/Vulkan/Extensions/VK_EXT_validation_flags.hs view
@@ -214,13 +214,18 @@  -- | 'VALIDATION_CHECK_ALL_EXT' specifies that all validation checks are -- disabled.-pattern VALIDATION_CHECK_ALL_EXT     = ValidationCheckEXT 0+pattern VALIDATION_CHECK_ALL_EXT = ValidationCheckEXT 0+ -- | 'VALIDATION_CHECK_SHADERS_EXT' specifies that shader validation is -- disabled. pattern VALIDATION_CHECK_SHADERS_EXT = ValidationCheckEXT 1-{-# complete VALIDATION_CHECK_ALL_EXT,-             VALIDATION_CHECK_SHADERS_EXT :: ValidationCheckEXT #-} +{-# COMPLETE+  VALIDATION_CHECK_ALL_EXT+  , VALIDATION_CHECK_SHADERS_EXT ::+    ValidationCheckEXT+  #-}+ conNameValidationCheckEXT :: String conNameValidationCheckEXT = "ValidationCheckEXT" @@ -228,19 +233,27 @@ enumPrefixValidationCheckEXT = "VALIDATION_CHECK_"  showTableValidationCheckEXT :: [(ValidationCheckEXT, String)]-showTableValidationCheckEXT = [(VALIDATION_CHECK_ALL_EXT, "ALL_EXT"), (VALIDATION_CHECK_SHADERS_EXT, "SHADERS_EXT")]+showTableValidationCheckEXT =+  [ (VALIDATION_CHECK_ALL_EXT, "ALL_EXT")+  , (VALIDATION_CHECK_SHADERS_EXT, "SHADERS_EXT")+  ]  instance Show ValidationCheckEXT where-  showsPrec = enumShowsPrec enumPrefixValidationCheckEXT-                            showTableValidationCheckEXT-                            conNameValidationCheckEXT-                            (\(ValidationCheckEXT x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixValidationCheckEXT+      showTableValidationCheckEXT+      conNameValidationCheckEXT+      (\(ValidationCheckEXT x) -> x)+      (showsPrec 11)  instance Read ValidationCheckEXT where   readPrec =-    enumReadPrec enumPrefixValidationCheckEXT showTableValidationCheckEXT conNameValidationCheckEXT ValidationCheckEXT-+    enumReadPrec+      enumPrefixValidationCheckEXT+      showTableValidationCheckEXT+      conNameValidationCheckEXT+      ValidationCheckEXT  type EXT_VALIDATION_FLAGS_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -482,7 +482,8 @@     vertexAttributeInstanceRateDivisor <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     vertexAttributeInstanceRateZeroDivisor <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceVertexAttributeDivisorFeaturesEXT-             (bool32ToBool vertexAttributeInstanceRateDivisor) (bool32ToBool vertexAttributeInstanceRateZeroDivisor)+             (bool32ToBool vertexAttributeInstanceRateDivisor)+             (bool32ToBool vertexAttributeInstanceRateZeroDivisor)  instance Storable PhysicalDeviceVertexAttributeDivisorFeaturesEXT where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_EXT_vertex_input_dynamic_state.hs view
@@ -295,7 +295,9 @@                         -- 'VertexInputAttributeDescription2EXT' structures.                         ("vertexAttributeDescriptions" ::: Vector VertexInputAttributeDescription2EXT)                      -> io ()-cmdSetVertexInputEXT commandBuffer vertexBindingDescriptions vertexAttributeDescriptions = liftIO . evalContT $ do+cmdSetVertexInputEXT commandBuffer+                       vertexBindingDescriptions+                       vertexAttributeDescriptions = liftIO . evalContT $ do   let vkCmdSetVertexInputEXTPtr = pVkCmdSetVertexInputEXT (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetVertexInputEXTPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetVertexInputEXT is null" Nothing Nothing@@ -304,7 +306,12 @@   lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDescriptions `plusPtr` (32 * (i)) :: Ptr VertexInputBindingDescription2EXT) (e)) (vertexBindingDescriptions)   pPVertexAttributeDescriptions <- ContT $ allocaBytes @VertexInputAttributeDescription2EXT ((Data.Vector.length (vertexAttributeDescriptions)) * 32)   lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexAttributeDescriptions `plusPtr` (32 * (i)) :: Ptr VertexInputAttributeDescription2EXT) (e)) (vertexAttributeDescriptions)-  lift $ traceAroundEvent "vkCmdSetVertexInputEXT" (vkCmdSetVertexInputEXT' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32)) (pPVertexBindingDescriptions) ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32)) (pPVertexAttributeDescriptions))+  lift $ traceAroundEvent "vkCmdSetVertexInputEXT" (vkCmdSetVertexInputEXT'+                                                      (commandBufferHandle (commandBuffer))+                                                      ((fromIntegral (Data.Vector.length $ (vertexBindingDescriptions)) :: Word32))+                                                      (pPVertexBindingDescriptions)+                                                      ((fromIntegral (Data.Vector.length $ (vertexAttributeDescriptions)) :: Word32))+                                                      (pPVertexAttributeDescriptions))   pure $ ()  
src/Vulkan/Extensions/VK_FUCHSIA_buffer_collection.hs view
@@ -408,7 +408,9 @@                                  -- chapter                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io (BufferCollectionFUCHSIA)-createBufferCollectionFUCHSIA device createInfo allocator = liftIO . evalContT $ do+createBufferCollectionFUCHSIA device+                                createInfo+                                allocator = liftIO . evalContT $ do   let vkCreateBufferCollectionFUCHSIAPtr = pVkCreateBufferCollectionFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateBufferCollectionFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateBufferCollectionFUCHSIA is null" Nothing Nothing@@ -418,7 +420,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPCollection <- ContT $ bracket (callocBytes @BufferCollectionFUCHSIA 8) free-  r <- lift $ traceAroundEvent "vkCreateBufferCollectionFUCHSIA" (vkCreateBufferCollectionFUCHSIA' (deviceHandle (device)) pCreateInfo pAllocator (pPCollection))+  r <- lift $ traceAroundEvent "vkCreateBufferCollectionFUCHSIA" (vkCreateBufferCollectionFUCHSIA'+                                                                    (deviceHandle (device))+                                                                    pCreateInfo+                                                                    pAllocator+                                                                    (pPCollection))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCollection <- lift $ peek @BufferCollectionFUCHSIA pPCollection   pure $ (pCollection)@@ -500,13 +506,18 @@                                                -- 'BufferConstraintsInfoFUCHSIA' structure                                                BufferConstraintsInfoFUCHSIA                                             -> io ()-setBufferCollectionBufferConstraintsFUCHSIA device collection bufferConstraintsInfo = liftIO . evalContT $ do+setBufferCollectionBufferConstraintsFUCHSIA device+                                              collection+                                              bufferConstraintsInfo = liftIO . evalContT $ do   let vkSetBufferCollectionBufferConstraintsFUCHSIAPtr = pVkSetBufferCollectionBufferConstraintsFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkSetBufferCollectionBufferConstraintsFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetBufferCollectionBufferConstraintsFUCHSIA is null" Nothing Nothing   let vkSetBufferCollectionBufferConstraintsFUCHSIA' = mkVkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIAPtr   pBufferConstraintsInfo <- ContT $ withCStruct (bufferConstraintsInfo)-  r <- lift $ traceAroundEvent "vkSetBufferCollectionBufferConstraintsFUCHSIA" (vkSetBufferCollectionBufferConstraintsFUCHSIA' (deviceHandle (device)) (collection) pBufferConstraintsInfo)+  r <- lift $ traceAroundEvent "vkSetBufferCollectionBufferConstraintsFUCHSIA" (vkSetBufferCollectionBufferConstraintsFUCHSIA'+                                                                                  (deviceHandle (device))+                                                                                  (collection)+                                                                                  pBufferConstraintsInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -579,13 +590,18 @@                                               -- 'ImageConstraintsInfoFUCHSIA' structure                                               ImageConstraintsInfoFUCHSIA                                            -> io ()-setBufferCollectionImageConstraintsFUCHSIA device collection imageConstraintsInfo = liftIO . evalContT $ do+setBufferCollectionImageConstraintsFUCHSIA device+                                             collection+                                             imageConstraintsInfo = liftIO . evalContT $ do   let vkSetBufferCollectionImageConstraintsFUCHSIAPtr = pVkSetBufferCollectionImageConstraintsFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkSetBufferCollectionImageConstraintsFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkSetBufferCollectionImageConstraintsFUCHSIA is null" Nothing Nothing   let vkSetBufferCollectionImageConstraintsFUCHSIA' = mkVkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIAPtr   pImageConstraintsInfo <- ContT $ withCStruct (imageConstraintsInfo)-  r <- lift $ traceAroundEvent "vkSetBufferCollectionImageConstraintsFUCHSIA" (vkSetBufferCollectionImageConstraintsFUCHSIA' (deviceHandle (device)) (collection) pImageConstraintsInfo)+  r <- lift $ traceAroundEvent "vkSetBufferCollectionImageConstraintsFUCHSIA" (vkSetBufferCollectionImageConstraintsFUCHSIA'+                                                                                 (deviceHandle (device))+                                                                                 (collection)+                                                                                 pImageConstraintsInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -648,7 +664,9 @@                                   -- chapter                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io ()-destroyBufferCollectionFUCHSIA device collection allocator = liftIO . evalContT $ do+destroyBufferCollectionFUCHSIA device+                                 collection+                                 allocator = liftIO . evalContT $ do   let vkDestroyBufferCollectionFUCHSIAPtr = pVkDestroyBufferCollectionFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyBufferCollectionFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyBufferCollectionFUCHSIA is null" Nothing Nothing@@ -656,7 +674,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyBufferCollectionFUCHSIA" (vkDestroyBufferCollectionFUCHSIA' (deviceHandle (device)) (collection) pAllocator)+  lift $ traceAroundEvent "vkDestroyBufferCollectionFUCHSIA" (vkDestroyBufferCollectionFUCHSIA'+                                                                (deviceHandle (device))+                                                                (collection)+                                                                pAllocator)   pure $ ()  @@ -746,7 +767,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetBufferCollectionPropertiesFUCHSIA is null" Nothing Nothing   let vkGetBufferCollectionPropertiesFUCHSIA' = mkVkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIAPtr   pPProperties <- ContT (withZeroCStruct @BufferCollectionPropertiesFUCHSIA)-  r <- lift $ traceAroundEvent "vkGetBufferCollectionPropertiesFUCHSIA" (vkGetBufferCollectionPropertiesFUCHSIA' (deviceHandle (device)) (collection) (pPProperties))+  r <- lift $ traceAroundEvent "vkGetBufferCollectionPropertiesFUCHSIA" (vkGetBufferCollectionPropertiesFUCHSIA'+                                                                           (deviceHandle (device))+                                                                           (collection)+                                                                           (pPProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pProperties <- lift $ peekCStruct @BufferCollectionPropertiesFUCHSIA pPProperties   pure $ (pProperties)@@ -1173,7 +1197,17 @@     suggestedXChromaOffset <- peek @ChromaLocation ((p `plusPtr` 96 :: Ptr ChromaLocation))     suggestedYChromaOffset <- peek @ChromaLocation ((p `plusPtr` 100 :: Ptr ChromaLocation))     pure $ BufferCollectionPropertiesFUCHSIA-             memoryTypeBits bufferCount createInfoIndex sysmemPixelFormat formatFeatures sysmemColorSpaceIndex samplerYcbcrConversionComponents suggestedYcbcrModel suggestedYcbcrRange suggestedXChromaOffset suggestedYChromaOffset+             memoryTypeBits+             bufferCount+             createInfoIndex+             sysmemPixelFormat+             formatFeatures+             sysmemColorSpaceIndex+             samplerYcbcrConversionComponents+             suggestedYcbcrModel+             suggestedYcbcrRange+             suggestedXChromaOffset+             suggestedYChromaOffset  instance Storable BufferCollectionPropertiesFUCHSIA where   sizeOf ~_ = 104@@ -1430,7 +1464,11 @@     pColorSpaces <- peek @(Ptr SysmemColorSpaceFUCHSIA) ((p `plusPtr` 128 :: Ptr (Ptr SysmemColorSpaceFUCHSIA)))     pColorSpaces' <- generateM (fromIntegral colorSpaceCount) (\i -> peekCStruct @SysmemColorSpaceFUCHSIA ((pColorSpaces `advancePtrBytes` (24 * (i)) :: Ptr SysmemColorSpaceFUCHSIA)))     pure $ ImageFormatConstraintsInfoFUCHSIA-             imageCreateInfo requiredFormatFeatures flags sysmemPixelFormat pColorSpaces'+             imageCreateInfo+             requiredFormatFeatures+             flags+             sysmemPixelFormat+             pColorSpaces'  instance Zero ImageFormatConstraintsInfoFUCHSIA where   zero = ImageFormatConstraintsInfoFUCHSIA@@ -1664,7 +1702,11 @@     minBufferCountForDedicatedSlack <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))     minBufferCountForSharedSlack <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))     pure $ BufferCollectionConstraintsInfoFUCHSIA-             minBufferCount maxBufferCount minBufferCountForCamping minBufferCountForDedicatedSlack minBufferCountForSharedSlack+             minBufferCount+             maxBufferCount+             minBufferCountForCamping+             minBufferCountForDedicatedSlack+             minBufferCountForSharedSlack  instance Storable BufferCollectionConstraintsInfoFUCHSIA where   sizeOf ~_ = 40@@ -1695,8 +1737,6 @@ newtype ImageFormatConstraintsFlagsFUCHSIA = ImageFormatConstraintsFlagsFUCHSIA Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameImageFormatConstraintsFlagsFUCHSIA :: String conNameImageFormatConstraintsFlagsFUCHSIA = "ImageFormatConstraintsFlagsFUCHSIA" @@ -1707,18 +1747,21 @@ showTableImageFormatConstraintsFlagsFUCHSIA = []  instance Show ImageFormatConstraintsFlagsFUCHSIA where-  showsPrec = enumShowsPrec enumPrefixImageFormatConstraintsFlagsFUCHSIA-                            showTableImageFormatConstraintsFlagsFUCHSIA-                            conNameImageFormatConstraintsFlagsFUCHSIA-                            (\(ImageFormatConstraintsFlagsFUCHSIA x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageFormatConstraintsFlagsFUCHSIA+      showTableImageFormatConstraintsFlagsFUCHSIA+      conNameImageFormatConstraintsFlagsFUCHSIA+      (\(ImageFormatConstraintsFlagsFUCHSIA x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageFormatConstraintsFlagsFUCHSIA where-  readPrec = enumReadPrec enumPrefixImageFormatConstraintsFlagsFUCHSIA-                          showTableImageFormatConstraintsFlagsFUCHSIA-                          conNameImageFormatConstraintsFlagsFUCHSIA-                          ImageFormatConstraintsFlagsFUCHSIA-+  readPrec =+    enumReadPrec+      enumPrefixImageFormatConstraintsFlagsFUCHSIA+      showTableImageFormatConstraintsFlagsFUCHSIA+      conNameImageFormatConstraintsFlagsFUCHSIA+      ImageFormatConstraintsFlagsFUCHSIA  type ImageConstraintsInfoFlagsFUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA @@ -1745,13 +1788,17 @@   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)  -- | 'IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA'-pattern IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA    = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000001+pattern IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000001+ -- | 'IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA'-pattern IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA     = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000002+pattern IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000002+ -- | 'IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA'-pattern IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA   = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000004+pattern IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000004+ -- | 'IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA'-pattern IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA    = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000008+pattern IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000008+ -- | 'IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA' specifies that -- protected memory is optional for the buffer collection. pattern IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = ImageConstraintsInfoFlagBitsFUCHSIA 0x00000010@@ -1764,26 +1811,44 @@  showTableImageConstraintsInfoFlagBitsFUCHSIA :: [(ImageConstraintsInfoFlagBitsFUCHSIA, String)] showTableImageConstraintsInfoFlagBitsFUCHSIA =-  [ (IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA   , "CPU_READ_RARELY_FUCHSIA")-  , (IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA    , "CPU_READ_OFTEN_FUCHSIA")-  , (IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA  , "CPU_WRITE_RARELY_FUCHSIA")-  , (IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA   , "CPU_WRITE_OFTEN_FUCHSIA")-  , (IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA, "PROTECTED_OPTIONAL_FUCHSIA")+  [+    ( IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA+    , "CPU_READ_RARELY_FUCHSIA"+    )+  ,+    ( IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA+    , "CPU_READ_OFTEN_FUCHSIA"+    )+  ,+    ( IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA+    , "CPU_WRITE_RARELY_FUCHSIA"+    )+  ,+    ( IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA+    , "CPU_WRITE_OFTEN_FUCHSIA"+    )+  ,+    ( IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA+    , "PROTECTED_OPTIONAL_FUCHSIA"+    )   ]  instance Show ImageConstraintsInfoFlagBitsFUCHSIA where-  showsPrec = enumShowsPrec enumPrefixImageConstraintsInfoFlagBitsFUCHSIA-                            showTableImageConstraintsInfoFlagBitsFUCHSIA-                            conNameImageConstraintsInfoFlagBitsFUCHSIA-                            (\(ImageConstraintsInfoFlagBitsFUCHSIA x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImageConstraintsInfoFlagBitsFUCHSIA+      showTableImageConstraintsInfoFlagBitsFUCHSIA+      conNameImageConstraintsInfoFlagBitsFUCHSIA+      (\(ImageConstraintsInfoFlagBitsFUCHSIA x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImageConstraintsInfoFlagBitsFUCHSIA where-  readPrec = enumReadPrec enumPrefixImageConstraintsInfoFlagBitsFUCHSIA-                          showTableImageConstraintsInfoFlagBitsFUCHSIA-                          conNameImageConstraintsInfoFlagBitsFUCHSIA-                          ImageConstraintsInfoFlagBitsFUCHSIA-+  readPrec =+    enumReadPrec+      enumPrefixImageConstraintsInfoFlagBitsFUCHSIA+      showTableImageConstraintsInfoFlagBitsFUCHSIA+      conNameImageConstraintsInfoFlagBitsFUCHSIA+      ImageConstraintsInfoFlagBitsFUCHSIA  type FUCHSIA_BUFFER_COLLECTION_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_FUCHSIA_external_memory.hs view
@@ -224,14 +224,18 @@                                 -- 'MemoryGetZirconHandleInfoFUCHSIA' structure                                 MemoryGetZirconHandleInfoFUCHSIA                              -> io (("zirconHandle" ::: Zx_handle_t))-getMemoryZirconHandleFUCHSIA device getZirconHandleInfo = liftIO . evalContT $ do+getMemoryZirconHandleFUCHSIA device+                               getZirconHandleInfo = liftIO . evalContT $ do   let vkGetMemoryZirconHandleFUCHSIAPtr = pVkGetMemoryZirconHandleFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetMemoryZirconHandleFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryZirconHandleFUCHSIA is null" Nothing Nothing   let vkGetMemoryZirconHandleFUCHSIA' = mkVkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIAPtr   pGetZirconHandleInfo <- ContT $ withCStruct (getZirconHandleInfo)   pPZirconHandle <- ContT $ bracket (callocBytes @Zx_handle_t 4) free-  r <- lift $ traceAroundEvent "vkGetMemoryZirconHandleFUCHSIA" (vkGetMemoryZirconHandleFUCHSIA' (deviceHandle (device)) pGetZirconHandleInfo (pPZirconHandle))+  r <- lift $ traceAroundEvent "vkGetMemoryZirconHandleFUCHSIA" (vkGetMemoryZirconHandleFUCHSIA'+                                                                   (deviceHandle (device))+                                                                   pGetZirconHandleInfo+                                                                   (pPZirconHandle))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pZirconHandle <- lift $ peek @Zx_handle_t pPZirconHandle   pure $ (pZirconHandle)@@ -290,13 +294,19 @@                                           -- @zirconHandle@ must reference a valid VMO                                           ("zirconHandle" ::: Zx_handle_t)                                        -> io (MemoryZirconHandlePropertiesFUCHSIA)-getMemoryZirconHandlePropertiesFUCHSIA device handleType zirconHandle = liftIO . evalContT $ do+getMemoryZirconHandlePropertiesFUCHSIA device+                                         handleType+                                         zirconHandle = liftIO . evalContT $ do   let vkGetMemoryZirconHandlePropertiesFUCHSIAPtr = pVkGetMemoryZirconHandlePropertiesFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetMemoryZirconHandlePropertiesFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryZirconHandlePropertiesFUCHSIA is null" Nothing Nothing   let vkGetMemoryZirconHandlePropertiesFUCHSIA' = mkVkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIAPtr   pPMemoryZirconHandleProperties <- ContT (withZeroCStruct @MemoryZirconHandlePropertiesFUCHSIA)-  r <- lift $ traceAroundEvent "vkGetMemoryZirconHandlePropertiesFUCHSIA" (vkGetMemoryZirconHandlePropertiesFUCHSIA' (deviceHandle (device)) (handleType) (zirconHandle) (pPMemoryZirconHandleProperties))+  r <- lift $ traceAroundEvent "vkGetMemoryZirconHandlePropertiesFUCHSIA" (vkGetMemoryZirconHandlePropertiesFUCHSIA'+                                                                             (deviceHandle (device))+                                                                             (handleType)+                                                                             (zirconHandle)+                                                                             (pPMemoryZirconHandleProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMemoryZirconHandleProperties <- lift $ peekCStruct @MemoryZirconHandlePropertiesFUCHSIA pPMemoryZirconHandleProperties   pure $ (pMemoryZirconHandleProperties)
src/Vulkan/Extensions/VK_FUCHSIA_external_semaphore.hs view
@@ -240,14 +240,18 @@                                    -- 'SemaphoreGetZirconHandleInfoFUCHSIA' structure                                    SemaphoreGetZirconHandleInfoFUCHSIA                                 -> io (("zirconHandle" ::: Zx_handle_t))-getSemaphoreZirconHandleFUCHSIA device getZirconHandleInfo = liftIO . evalContT $ do+getSemaphoreZirconHandleFUCHSIA device+                                  getZirconHandleInfo = liftIO . evalContT $ do   let vkGetSemaphoreZirconHandleFUCHSIAPtr = pVkGetSemaphoreZirconHandleFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetSemaphoreZirconHandleFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSemaphoreZirconHandleFUCHSIA is null" Nothing Nothing   let vkGetSemaphoreZirconHandleFUCHSIA' = mkVkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIAPtr   pGetZirconHandleInfo <- ContT $ withCStruct (getZirconHandleInfo)   pPZirconHandle <- ContT $ bracket (callocBytes @Zx_handle_t 4) free-  r <- lift $ traceAroundEvent "vkGetSemaphoreZirconHandleFUCHSIA" (vkGetSemaphoreZirconHandleFUCHSIA' (deviceHandle (device)) pGetZirconHandleInfo (pPZirconHandle))+  r <- lift $ traceAroundEvent "vkGetSemaphoreZirconHandleFUCHSIA" (vkGetSemaphoreZirconHandleFUCHSIA'+                                                                      (deviceHandle (device))+                                                                      pGetZirconHandleInfo+                                                                      (pPZirconHandle))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pZirconHandle <- lift $ peek @Zx_handle_t pPZirconHandle   pure $ (pZirconHandle)@@ -306,13 +310,16 @@                                       -- 'ImportSemaphoreZirconHandleInfoFUCHSIA' structure                                       ImportSemaphoreZirconHandleInfoFUCHSIA                                    -> io ()-importSemaphoreZirconHandleFUCHSIA device importSemaphoreZirconHandleInfo = liftIO . evalContT $ do+importSemaphoreZirconHandleFUCHSIA device+                                     importSemaphoreZirconHandleInfo = liftIO . evalContT $ do   let vkImportSemaphoreZirconHandleFUCHSIAPtr = pVkImportSemaphoreZirconHandleFUCHSIA (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkImportSemaphoreZirconHandleFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreZirconHandleFUCHSIA is null" Nothing Nothing   let vkImportSemaphoreZirconHandleFUCHSIA' = mkVkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIAPtr   pImportSemaphoreZirconHandleInfo <- ContT $ withCStruct (importSemaphoreZirconHandleInfo)-  r <- lift $ traceAroundEvent "vkImportSemaphoreZirconHandleFUCHSIA" (vkImportSemaphoreZirconHandleFUCHSIA' (deviceHandle (device)) pImportSemaphoreZirconHandleInfo)+  r <- lift $ traceAroundEvent "vkImportSemaphoreZirconHandleFUCHSIA" (vkImportSemaphoreZirconHandleFUCHSIA'+                                                                         (deviceHandle (device))+                                                                         pImportSemaphoreZirconHandleInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Extensions/VK_FUCHSIA_imagepipe_surface.hs view
@@ -221,7 +221,9 @@                                  -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io (SurfaceKHR)-createImagePipeSurfaceFUCHSIA instance' createInfo allocator = liftIO . evalContT $ do+createImagePipeSurfaceFUCHSIA instance'+                                createInfo+                                allocator = liftIO . evalContT $ do   let vkCreateImagePipeSurfaceFUCHSIAPtr = pVkCreateImagePipeSurfaceFUCHSIA (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateImagePipeSurfaceFUCHSIAPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateImagePipeSurfaceFUCHSIA is null" Nothing Nothing@@ -231,7 +233,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateImagePipeSurfaceFUCHSIA" (vkCreateImagePipeSurfaceFUCHSIA' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateImagePipeSurfaceFUCHSIA" (vkCreateImagePipeSurfaceFUCHSIA'+                                                                    (instanceHandle (instance'))+                                                                    pCreateInfo+                                                                    pAllocator+                                                                    (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -316,8 +322,6 @@ newtype ImagePipeSurfaceCreateFlagsFUCHSIA = ImagePipeSurfaceCreateFlagsFUCHSIA Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameImagePipeSurfaceCreateFlagsFUCHSIA :: String conNameImagePipeSurfaceCreateFlagsFUCHSIA = "ImagePipeSurfaceCreateFlagsFUCHSIA" @@ -328,18 +332,21 @@ showTableImagePipeSurfaceCreateFlagsFUCHSIA = []  instance Show ImagePipeSurfaceCreateFlagsFUCHSIA where-  showsPrec = enumShowsPrec enumPrefixImagePipeSurfaceCreateFlagsFUCHSIA-                            showTableImagePipeSurfaceCreateFlagsFUCHSIA-                            conNameImagePipeSurfaceCreateFlagsFUCHSIA-                            (\(ImagePipeSurfaceCreateFlagsFUCHSIA x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixImagePipeSurfaceCreateFlagsFUCHSIA+      showTableImagePipeSurfaceCreateFlagsFUCHSIA+      conNameImagePipeSurfaceCreateFlagsFUCHSIA+      (\(ImagePipeSurfaceCreateFlagsFUCHSIA x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ImagePipeSurfaceCreateFlagsFUCHSIA where-  readPrec = enumReadPrec enumPrefixImagePipeSurfaceCreateFlagsFUCHSIA-                          showTableImagePipeSurfaceCreateFlagsFUCHSIA-                          conNameImagePipeSurfaceCreateFlagsFUCHSIA-                          ImagePipeSurfaceCreateFlagsFUCHSIA-+  readPrec =+    enumReadPrec+      enumPrefixImagePipeSurfaceCreateFlagsFUCHSIA+      showTableImagePipeSurfaceCreateFlagsFUCHSIA+      conNameImagePipeSurfaceCreateFlagsFUCHSIA+      ImagePipeSurfaceCreateFlagsFUCHSIA  type FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_GGP_stream_descriptor_surface.hs view
@@ -251,7 +251,9 @@                                     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                                     ("allocator" ::: Maybe AllocationCallbacks)                                  -> io (SurfaceKHR)-createStreamDescriptorSurfaceGGP instance' createInfo allocator = liftIO . evalContT $ do+createStreamDescriptorSurfaceGGP instance'+                                   createInfo+                                   allocator = liftIO . evalContT $ do   let vkCreateStreamDescriptorSurfaceGGPPtr = pVkCreateStreamDescriptorSurfaceGGP (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateStreamDescriptorSurfaceGGPPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateStreamDescriptorSurfaceGGP is null" Nothing Nothing@@ -261,7 +263,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateStreamDescriptorSurfaceGGP" (vkCreateStreamDescriptorSurfaceGGP' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateStreamDescriptorSurfaceGGP" (vkCreateStreamDescriptorSurfaceGGP'+                                                                       (instanceHandle (instance'))+                                                                       pCreateInfo+                                                                       pAllocator+                                                                       (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -346,8 +352,6 @@ newtype StreamDescriptorSurfaceCreateFlagsGGP = StreamDescriptorSurfaceCreateFlagsGGP Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameStreamDescriptorSurfaceCreateFlagsGGP :: String conNameStreamDescriptorSurfaceCreateFlagsGGP = "StreamDescriptorSurfaceCreateFlagsGGP" @@ -358,18 +362,21 @@ showTableStreamDescriptorSurfaceCreateFlagsGGP = []  instance Show StreamDescriptorSurfaceCreateFlagsGGP where-  showsPrec = enumShowsPrec enumPrefixStreamDescriptorSurfaceCreateFlagsGGP-                            showTableStreamDescriptorSurfaceCreateFlagsGGP-                            conNameStreamDescriptorSurfaceCreateFlagsGGP-                            (\(StreamDescriptorSurfaceCreateFlagsGGP x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixStreamDescriptorSurfaceCreateFlagsGGP+      showTableStreamDescriptorSurfaceCreateFlagsGGP+      conNameStreamDescriptorSurfaceCreateFlagsGGP+      (\(StreamDescriptorSurfaceCreateFlagsGGP x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read StreamDescriptorSurfaceCreateFlagsGGP where-  readPrec = enumReadPrec enumPrefixStreamDescriptorSurfaceCreateFlagsGGP-                          showTableStreamDescriptorSurfaceCreateFlagsGGP-                          conNameStreamDescriptorSurfaceCreateFlagsGGP-                          StreamDescriptorSurfaceCreateFlagsGGP-+  readPrec =+    enumReadPrec+      enumPrefixStreamDescriptorSurfaceCreateFlagsGGP+      showTableStreamDescriptorSurfaceCreateFlagsGGP+      conNameStreamDescriptorSurfaceCreateFlagsGGP+      StreamDescriptorSurfaceCreateFlagsGGP  type GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_GOOGLE_display_timing.hs view
@@ -256,7 +256,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRefreshCycleDurationGOOGLE is null" Nothing Nothing   let vkGetRefreshCycleDurationGOOGLE' = mkVkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLEPtr   pPDisplayTimingProperties <- ContT (withZeroCStruct @RefreshCycleDurationGOOGLE)-  r <- lift $ traceAroundEvent "vkGetRefreshCycleDurationGOOGLE" (vkGetRefreshCycleDurationGOOGLE' (deviceHandle (device)) (swapchain) (pPDisplayTimingProperties))+  r <- lift $ traceAroundEvent "vkGetRefreshCycleDurationGOOGLE" (vkGetRefreshCycleDurationGOOGLE'+                                                                    (deviceHandle (device))+                                                                    (swapchain)+                                                                    (pPDisplayTimingProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDisplayTimingProperties <- lift $ peekCStruct @RefreshCycleDurationGOOGLE pPDisplayTimingProperties   pure $ (pDisplayTimingProperties)@@ -352,12 +355,20 @@   let vkGetPastPresentationTimingGOOGLE' = mkVkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLEPtr   let device' = deviceHandle (device)   pPPresentationTimingCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPastPresentationTimingGOOGLE" (vkGetPastPresentationTimingGOOGLE' device' (swapchain) (pPPresentationTimingCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPastPresentationTimingGOOGLE" (vkGetPastPresentationTimingGOOGLE'+                                                                      device'+                                                                      (swapchain)+                                                                      (pPPresentationTimingCount)+                                                                      (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPresentationTimingCount <- lift $ peek @Word32 pPPresentationTimingCount   pPPresentationTimings <- ContT $ bracket (callocBytes @PastPresentationTimingGOOGLE ((fromIntegral (pPresentationTimingCount)) * 40)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPPresentationTimings `advancePtrBytes` (i * 40) :: Ptr PastPresentationTimingGOOGLE) . ($ ())) [0..(fromIntegral (pPresentationTimingCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPastPresentationTimingGOOGLE" (vkGetPastPresentationTimingGOOGLE' device' (swapchain) (pPPresentationTimingCount) ((pPPresentationTimings)))+  r' <- lift $ traceAroundEvent "vkGetPastPresentationTimingGOOGLE" (vkGetPastPresentationTimingGOOGLE'+                                                                       device'+                                                                       (swapchain)+                                                                       (pPPresentationTimingCount)+                                                                       ((pPPresentationTimings)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPresentationTimingCount' <- lift $ peek @Word32 pPPresentationTimingCount   pPresentationTimings' <- lift $ generateM (fromIntegral (pPresentationTimingCount')) (\i -> peekCStruct @PastPresentationTimingGOOGLE (((pPPresentationTimings) `advancePtrBytes` (40 * (i)) :: Ptr PastPresentationTimingGOOGLE)))@@ -499,7 +510,11 @@     earliestPresentTime <- peek @Word64 ((p `plusPtr` 24 :: Ptr Word64))     presentMargin <- peek @Word64 ((p `plusPtr` 32 :: Ptr Word64))     pure $ PastPresentationTimingGOOGLE-             presentID desiredPresentTime actualPresentTime earliestPresentTime presentMargin+             presentID+             desiredPresentTime+             actualPresentTime+             earliestPresentTime+             presentMargin  instance Storable PastPresentationTimingGOOGLE where   sizeOf ~_ = 40
src/Vulkan/Extensions/VK_HUAWEI_invocation_mask.hs view
@@ -326,7 +326,10 @@   unless (vkCmdBindInvocationMaskHUAWEIPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindInvocationMaskHUAWEI is null" Nothing Nothing   let vkCmdBindInvocationMaskHUAWEI' = mkVkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEIPtr-  traceAroundEvent "vkCmdBindInvocationMaskHUAWEI" (vkCmdBindInvocationMaskHUAWEI' (commandBufferHandle (commandBuffer)) (imageView) (imageLayout))+  traceAroundEvent "vkCmdBindInvocationMaskHUAWEI" (vkCmdBindInvocationMaskHUAWEI'+                                                      (commandBufferHandle (commandBuffer))+                                                      (imageView)+                                                      (imageLayout))   pure $ ()  
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs view
@@ -462,13 +462,17 @@                                                  -- @device@                                                  RenderPass                                               -> io (Result, ("maxWorkgroupSize" ::: Extent2D))-getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI device renderpass = liftIO . evalContT $ do+getDeviceSubpassShadingMaxWorkgroupSizeHUAWEI device+                                                renderpass = liftIO . evalContT $ do   let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr = pVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI is null" Nothing Nothing   let vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI' = mkVkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEIPtr   pPMaxWorkgroupSize <- ContT (withZeroCStruct @Extent2D)-  r <- lift $ traceAroundEvent "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" (vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI' (deviceHandle (device)) (renderpass) (pPMaxWorkgroupSize))+  r <- lift $ traceAroundEvent "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" (vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI'+                                                                                    (deviceHandle (device))+                                                                                    (renderpass)+                                                                                    (pPMaxWorkgroupSize))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMaxWorkgroupSize <- lift $ peekCStruct @Extent2D pPMaxWorkgroupSize   pure $ (r, pMaxWorkgroupSize)@@ -907,7 +911,8 @@   unless (vkCmdSubpassShadingHUAWEIPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSubpassShadingHUAWEI is null" Nothing Nothing   let vkCmdSubpassShadingHUAWEI' = mkVkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEIPtr-  traceAroundEvent "vkCmdSubpassShadingHUAWEI" (vkCmdSubpassShadingHUAWEI' (commandBufferHandle (commandBuffer)))+  traceAroundEvent "vkCmdSubpassShadingHUAWEI" (vkCmdSubpassShadingHUAWEI'+                                                  (commandBufferHandle (commandBuffer)))   pure $ ()  
src/Vulkan/Extensions/VK_INTEL_performance_query.hs view
@@ -503,7 +503,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkInitializePerformanceApiINTEL is null" Nothing Nothing   let vkInitializePerformanceApiINTEL' = mkVkInitializePerformanceApiINTEL vkInitializePerformanceApiINTELPtr   pInitializeInfo <- ContT $ withCStruct (initializeInfo)-  r <- lift $ traceAroundEvent "vkInitializePerformanceApiINTEL" (vkInitializePerformanceApiINTEL' (deviceHandle (device)) pInitializeInfo)+  r <- lift $ traceAroundEvent "vkInitializePerformanceApiINTEL" (vkInitializePerformanceApiINTEL'+                                                                    (deviceHandle (device))+                                                                    pInitializeInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -536,7 +538,8 @@   unless (vkUninitializePerformanceApiINTELPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkUninitializePerformanceApiINTEL is null" Nothing Nothing   let vkUninitializePerformanceApiINTEL' = mkVkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTELPtr-  traceAroundEvent "vkUninitializePerformanceApiINTEL" (vkUninitializePerformanceApiINTEL' (deviceHandle (device)))+  traceAroundEvent "vkUninitializePerformanceApiINTEL" (vkUninitializePerformanceApiINTEL'+                                                          (deviceHandle (device)))   pure $ ()  @@ -624,7 +627,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPerformanceMarkerINTEL is null" Nothing Nothing   let vkCmdSetPerformanceMarkerINTEL' = mkVkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTELPtr   pMarkerInfo <- ContT $ withCStruct (markerInfo)-  r <- lift $ traceAroundEvent "vkCmdSetPerformanceMarkerINTEL" (vkCmdSetPerformanceMarkerINTEL' (commandBufferHandle (commandBuffer)) pMarkerInfo)+  r <- lift $ traceAroundEvent "vkCmdSetPerformanceMarkerINTEL" (vkCmdSetPerformanceMarkerINTEL'+                                                                   (commandBufferHandle (commandBuffer))+                                                                   pMarkerInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -702,13 +707,16 @@                                    -> -- No documentation found for Nested "vkCmdSetPerformanceStreamMarkerINTEL" "pMarkerInfo"                                       PerformanceStreamMarkerInfoINTEL                                    -> io ()-cmdSetPerformanceStreamMarkerINTEL commandBuffer markerInfo = liftIO . evalContT $ do+cmdSetPerformanceStreamMarkerINTEL commandBuffer+                                     markerInfo = liftIO . evalContT $ do   let vkCmdSetPerformanceStreamMarkerINTELPtr = pVkCmdSetPerformanceStreamMarkerINTEL (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetPerformanceStreamMarkerINTELPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPerformanceStreamMarkerINTEL is null" Nothing Nothing   let vkCmdSetPerformanceStreamMarkerINTEL' = mkVkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTELPtr   pMarkerInfo <- ContT $ withCStruct (markerInfo)-  r <- lift $ traceAroundEvent "vkCmdSetPerformanceStreamMarkerINTEL" (vkCmdSetPerformanceStreamMarkerINTEL' (commandBufferHandle (commandBuffer)) pMarkerInfo)+  r <- lift $ traceAroundEvent "vkCmdSetPerformanceStreamMarkerINTEL" (vkCmdSetPerformanceStreamMarkerINTEL'+                                                                         (commandBufferHandle (commandBuffer))+                                                                         pMarkerInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -793,13 +801,16 @@                                   -- structure selecting the parameter to override.                                   PerformanceOverrideInfoINTEL                                -> io ()-cmdSetPerformanceOverrideINTEL commandBuffer overrideInfo = liftIO . evalContT $ do+cmdSetPerformanceOverrideINTEL commandBuffer+                                 overrideInfo = liftIO . evalContT $ do   let vkCmdSetPerformanceOverrideINTELPtr = pVkCmdSetPerformanceOverrideINTEL (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetPerformanceOverrideINTELPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetPerformanceOverrideINTEL is null" Nothing Nothing   let vkCmdSetPerformanceOverrideINTEL' = mkVkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTELPtr   pOverrideInfo <- ContT $ withCStruct (overrideInfo)-  r <- lift $ traceAroundEvent "vkCmdSetPerformanceOverrideINTEL" (vkCmdSetPerformanceOverrideINTEL' (commandBufferHandle (commandBuffer)) pOverrideInfo)+  r <- lift $ traceAroundEvent "vkCmdSetPerformanceOverrideINTEL" (vkCmdSetPerformanceOverrideINTEL'+                                                                     (commandBufferHandle (commandBuffer))+                                                                     pOverrideInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -848,14 +859,18 @@                                         -- 'PerformanceConfigurationAcquireInfoINTEL' structure                                         PerformanceConfigurationAcquireInfoINTEL                                      -> io (PerformanceConfigurationINTEL)-acquirePerformanceConfigurationINTEL device acquireInfo = liftIO . evalContT $ do+acquirePerformanceConfigurationINTEL device+                                       acquireInfo = liftIO . evalContT $ do   let vkAcquirePerformanceConfigurationINTELPtr = pVkAcquirePerformanceConfigurationINTEL (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkAcquirePerformanceConfigurationINTELPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquirePerformanceConfigurationINTEL is null" Nothing Nothing   let vkAcquirePerformanceConfigurationINTEL' = mkVkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTELPtr   pAcquireInfo <- ContT $ withCStruct (acquireInfo)   pPConfiguration <- ContT $ bracket (callocBytes @PerformanceConfigurationINTEL 8) free-  r <- lift $ traceAroundEvent "vkAcquirePerformanceConfigurationINTEL" (vkAcquirePerformanceConfigurationINTEL' (deviceHandle (device)) pAcquireInfo (pPConfiguration))+  r <- lift $ traceAroundEvent "vkAcquirePerformanceConfigurationINTEL" (vkAcquirePerformanceConfigurationINTEL'+                                                                           (deviceHandle (device))+                                                                           pAcquireInfo+                                                                           (pPConfiguration))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pConfiguration <- lift $ peek @PerformanceConfigurationINTEL pPConfiguration   pure $ (pConfiguration)@@ -926,7 +941,9 @@   unless (vkReleasePerformanceConfigurationINTELPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleasePerformanceConfigurationINTEL is null" Nothing Nothing   let vkReleasePerformanceConfigurationINTEL' = mkVkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTELPtr-  r <- traceAroundEvent "vkReleasePerformanceConfigurationINTEL" (vkReleasePerformanceConfigurationINTEL' (deviceHandle (device)) (configuration))+  r <- traceAroundEvent "vkReleasePerformanceConfigurationINTEL" (vkReleasePerformanceConfigurationINTEL'+                                                                    (deviceHandle (device))+                                                                    (configuration))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -990,7 +1007,9 @@   unless (vkQueueSetPerformanceConfigurationINTELPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueueSetPerformanceConfigurationINTEL is null" Nothing Nothing   let vkQueueSetPerformanceConfigurationINTEL' = mkVkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTELPtr-  r <- traceAroundEvent "vkQueueSetPerformanceConfigurationINTEL" (vkQueueSetPerformanceConfigurationINTEL' (queueHandle (queue)) (configuration))+  r <- traceAroundEvent "vkQueueSetPerformanceConfigurationINTEL" (vkQueueSetPerformanceConfigurationINTEL'+                                                                     (queueHandle (queue))+                                                                     (configuration))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -1040,7 +1059,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPerformanceParameterINTEL is null" Nothing Nothing   let vkGetPerformanceParameterINTEL' = mkVkGetPerformanceParameterINTEL vkGetPerformanceParameterINTELPtr   pPValue <- ContT (withZeroCStruct @PerformanceValueINTEL)-  r <- lift $ traceAroundEvent "vkGetPerformanceParameterINTEL" (vkGetPerformanceParameterINTEL' (deviceHandle (device)) (parameter) (pPValue))+  r <- lift $ traceAroundEvent "vkGetPerformanceParameterINTEL" (vkGetPerformanceParameterINTEL'+                                                                   (deviceHandle (device))+                                                                   (parameter)+                                                                   (pPValue))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pValue <- lift $ peekCStruct @PerformanceValueINTEL pPValue   pure $ (pValue)@@ -1512,34 +1534,40 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkPerformanceConfigurationTypeINTEL" "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"-pattern PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL =-  PerformanceConfigurationTypeINTEL 0-{-# complete PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL :: PerformanceConfigurationTypeINTEL #-}+pattern PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = PerformanceConfigurationTypeINTEL 0 +{-# COMPLETE PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL :: PerformanceConfigurationTypeINTEL #-}+ conNamePerformanceConfigurationTypeINTEL :: String conNamePerformanceConfigurationTypeINTEL = "PerformanceConfigurationTypeINTEL"  enumPrefixPerformanceConfigurationTypeINTEL :: String-enumPrefixPerformanceConfigurationTypeINTEL =-  "PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"+enumPrefixPerformanceConfigurationTypeINTEL = "PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL"  showTablePerformanceConfigurationTypeINTEL :: [(PerformanceConfigurationTypeINTEL, String)] showTablePerformanceConfigurationTypeINTEL =-  [(PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL, "")]+  [+    ( PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL+    , ""+    )+  ]  instance Show PerformanceConfigurationTypeINTEL where-  showsPrec = enumShowsPrec enumPrefixPerformanceConfigurationTypeINTEL-                            showTablePerformanceConfigurationTypeINTEL-                            conNamePerformanceConfigurationTypeINTEL-                            (\(PerformanceConfigurationTypeINTEL x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceConfigurationTypeINTEL+      showTablePerformanceConfigurationTypeINTEL+      conNamePerformanceConfigurationTypeINTEL+      (\(PerformanceConfigurationTypeINTEL x) -> x)+      (showsPrec 11)  instance Read PerformanceConfigurationTypeINTEL where-  readPrec = enumReadPrec enumPrefixPerformanceConfigurationTypeINTEL-                          showTablePerformanceConfigurationTypeINTEL-                          conNamePerformanceConfigurationTypeINTEL-                          PerformanceConfigurationTypeINTEL-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceConfigurationTypeINTEL+      showTablePerformanceConfigurationTypeINTEL+      conNamePerformanceConfigurationTypeINTEL+      PerformanceConfigurationTypeINTEL  -- | VkQueryPoolSamplingModeINTEL - Enum specifying how performance queries -- should be captured@@ -1556,8 +1584,9 @@ -- and 'Vulkan.Core10.CommandBufferBuilding.cmdEndQuery' to record -- performance data. pattern QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = QueryPoolSamplingModeINTEL 0-{-# complete QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL :: QueryPoolSamplingModeINTEL #-} +{-# COMPLETE QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL :: QueryPoolSamplingModeINTEL #-}+ conNameQueryPoolSamplingModeINTEL :: String conNameQueryPoolSamplingModeINTEL = "QueryPoolSamplingModeINTEL" @@ -1565,21 +1594,29 @@ enumPrefixQueryPoolSamplingModeINTEL = "QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL"  showTableQueryPoolSamplingModeINTEL :: [(QueryPoolSamplingModeINTEL, String)]-showTableQueryPoolSamplingModeINTEL = [(QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL, "")]+showTableQueryPoolSamplingModeINTEL =+  [+    ( QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL+    , ""+    )+  ]  instance Show QueryPoolSamplingModeINTEL where-  showsPrec = enumShowsPrec enumPrefixQueryPoolSamplingModeINTEL-                            showTableQueryPoolSamplingModeINTEL-                            conNameQueryPoolSamplingModeINTEL-                            (\(QueryPoolSamplingModeINTEL x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixQueryPoolSamplingModeINTEL+      showTableQueryPoolSamplingModeINTEL+      conNameQueryPoolSamplingModeINTEL+      (\(QueryPoolSamplingModeINTEL x) -> x)+      (showsPrec 11)  instance Read QueryPoolSamplingModeINTEL where-  readPrec = enumReadPrec enumPrefixQueryPoolSamplingModeINTEL-                          showTableQueryPoolSamplingModeINTEL-                          conNameQueryPoolSamplingModeINTEL-                          QueryPoolSamplingModeINTEL-+  readPrec =+    enumReadPrec+      enumPrefixQueryPoolSamplingModeINTEL+      showTableQueryPoolSamplingModeINTEL+      conNameQueryPoolSamplingModeINTEL+      QueryPoolSamplingModeINTEL  -- | VkPerformanceOverrideTypeINTEL - Performance override type --@@ -1592,14 +1629,19 @@  -- | 'PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL' turns all rendering -- operations into noop.-pattern PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL    = PerformanceOverrideTypeINTEL 0+pattern PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = PerformanceOverrideTypeINTEL 0+ -- | 'PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL' stalls the stream of -- commands until all previously emitted commands have completed and all -- caches been flushed and invalidated. pattern PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = PerformanceOverrideTypeINTEL 1-{-# complete PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL,-             PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL :: PerformanceOverrideTypeINTEL #-} +{-# COMPLETE+  PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL+  , PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL ::+    PerformanceOverrideTypeINTEL+  #-}+ conNamePerformanceOverrideTypeINTEL :: String conNamePerformanceOverrideTypeINTEL = "PerformanceOverrideTypeINTEL" @@ -1608,23 +1650,32 @@  showTablePerformanceOverrideTypeINTEL :: [(PerformanceOverrideTypeINTEL, String)] showTablePerformanceOverrideTypeINTEL =-  [ (PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL   , "NULL_HARDWARE_INTEL")-  , (PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL, "FLUSH_GPU_CACHES_INTEL")+  [+    ( PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL+    , "NULL_HARDWARE_INTEL"+    )+  ,+    ( PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL+    , "FLUSH_GPU_CACHES_INTEL"+    )   ]  instance Show PerformanceOverrideTypeINTEL where-  showsPrec = enumShowsPrec enumPrefixPerformanceOverrideTypeINTEL-                            showTablePerformanceOverrideTypeINTEL-                            conNamePerformanceOverrideTypeINTEL-                            (\(PerformanceOverrideTypeINTEL x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceOverrideTypeINTEL+      showTablePerformanceOverrideTypeINTEL+      conNamePerformanceOverrideTypeINTEL+      (\(PerformanceOverrideTypeINTEL x) -> x)+      (showsPrec 11)  instance Read PerformanceOverrideTypeINTEL where-  readPrec = enumReadPrec enumPrefixPerformanceOverrideTypeINTEL-                          showTablePerformanceOverrideTypeINTEL-                          conNamePerformanceOverrideTypeINTEL-                          PerformanceOverrideTypeINTEL-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceOverrideTypeINTEL+      showTablePerformanceOverrideTypeINTEL+      conNamePerformanceOverrideTypeINTEL+      PerformanceOverrideTypeINTEL  -- | VkPerformanceParameterTypeINTEL - Parameters that can be queried --@@ -1637,14 +1688,19 @@  -- | 'PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL' has a boolean -- result which tells whether hardware counters can be captured.-pattern PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL    = PerformanceParameterTypeINTEL 0+pattern PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = PerformanceParameterTypeINTEL 0+ -- | 'PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL' has a 32 -- bits integer result which tells how many bits can be written into the -- 'PerformanceValueINTEL' value. pattern PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = PerformanceParameterTypeINTEL 1-{-# complete PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL,-             PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL :: PerformanceParameterTypeINTEL #-} +{-# COMPLETE+  PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL+  , PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL ::+    PerformanceParameterTypeINTEL+  #-}+ conNamePerformanceParameterTypeINTEL :: String conNamePerformanceParameterTypeINTEL = "PerformanceParameterTypeINTEL" @@ -1653,23 +1709,32 @@  showTablePerformanceParameterTypeINTEL :: [(PerformanceParameterTypeINTEL, String)] showTablePerformanceParameterTypeINTEL =-  [ (PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL   , "HW_COUNTERS_SUPPORTED_INTEL")-  , (PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL, "STREAM_MARKER_VALID_BITS_INTEL")+  [+    ( PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL+    , "HW_COUNTERS_SUPPORTED_INTEL"+    )+  ,+    ( PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL+    , "STREAM_MARKER_VALID_BITS_INTEL"+    )   ]  instance Show PerformanceParameterTypeINTEL where-  showsPrec = enumShowsPrec enumPrefixPerformanceParameterTypeINTEL-                            showTablePerformanceParameterTypeINTEL-                            conNamePerformanceParameterTypeINTEL-                            (\(PerformanceParameterTypeINTEL x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceParameterTypeINTEL+      showTablePerformanceParameterTypeINTEL+      conNamePerformanceParameterTypeINTEL+      (\(PerformanceParameterTypeINTEL x) -> x)+      (showsPrec 11)  instance Read PerformanceParameterTypeINTEL where-  readPrec = enumReadPrec enumPrefixPerformanceParameterTypeINTEL-                          showTablePerformanceParameterTypeINTEL-                          conNamePerformanceParameterTypeINTEL-                          PerformanceParameterTypeINTEL-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceParameterTypeINTEL+      showTablePerformanceParameterTypeINTEL+      conNamePerformanceParameterTypeINTEL+      PerformanceParameterTypeINTEL  -- | VkPerformanceValueTypeINTEL - Type of the parameters that can be queried --@@ -1682,20 +1747,28 @@  -- No documentation found for Nested "VkPerformanceValueTypeINTEL" "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL" pattern PERFORMANCE_VALUE_TYPE_UINT32_INTEL = PerformanceValueTypeINTEL 0+ -- No documentation found for Nested "VkPerformanceValueTypeINTEL" "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL" pattern PERFORMANCE_VALUE_TYPE_UINT64_INTEL = PerformanceValueTypeINTEL 1+ -- No documentation found for Nested "VkPerformanceValueTypeINTEL" "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL"-pattern PERFORMANCE_VALUE_TYPE_FLOAT_INTEL  = PerformanceValueTypeINTEL 2+pattern PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = PerformanceValueTypeINTEL 2+ -- No documentation found for Nested "VkPerformanceValueTypeINTEL" "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL"-pattern PERFORMANCE_VALUE_TYPE_BOOL_INTEL   = PerformanceValueTypeINTEL 3+pattern PERFORMANCE_VALUE_TYPE_BOOL_INTEL = PerformanceValueTypeINTEL 3+ -- No documentation found for Nested "VkPerformanceValueTypeINTEL" "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL" pattern PERFORMANCE_VALUE_TYPE_STRING_INTEL = PerformanceValueTypeINTEL 4-{-# complete PERFORMANCE_VALUE_TYPE_UINT32_INTEL,-             PERFORMANCE_VALUE_TYPE_UINT64_INTEL,-             PERFORMANCE_VALUE_TYPE_FLOAT_INTEL,-             PERFORMANCE_VALUE_TYPE_BOOL_INTEL,-             PERFORMANCE_VALUE_TYPE_STRING_INTEL :: PerformanceValueTypeINTEL #-} +{-# COMPLETE+  PERFORMANCE_VALUE_TYPE_UINT32_INTEL+  , PERFORMANCE_VALUE_TYPE_UINT64_INTEL+  , PERFORMANCE_VALUE_TYPE_FLOAT_INTEL+  , PERFORMANCE_VALUE_TYPE_BOOL_INTEL+  , PERFORMANCE_VALUE_TYPE_STRING_INTEL ::+    PerformanceValueTypeINTEL+  #-}+ conNamePerformanceValueTypeINTEL :: String conNamePerformanceValueTypeINTEL = "PerformanceValueTypeINTEL" @@ -1704,26 +1777,44 @@  showTablePerformanceValueTypeINTEL :: [(PerformanceValueTypeINTEL, String)] showTablePerformanceValueTypeINTEL =-  [ (PERFORMANCE_VALUE_TYPE_UINT32_INTEL, "UINT32_INTEL")-  , (PERFORMANCE_VALUE_TYPE_UINT64_INTEL, "UINT64_INTEL")-  , (PERFORMANCE_VALUE_TYPE_FLOAT_INTEL , "FLOAT_INTEL")-  , (PERFORMANCE_VALUE_TYPE_BOOL_INTEL  , "BOOL_INTEL")-  , (PERFORMANCE_VALUE_TYPE_STRING_INTEL, "STRING_INTEL")+  [+    ( PERFORMANCE_VALUE_TYPE_UINT32_INTEL+    , "UINT32_INTEL"+    )+  ,+    ( PERFORMANCE_VALUE_TYPE_UINT64_INTEL+    , "UINT64_INTEL"+    )+  ,+    ( PERFORMANCE_VALUE_TYPE_FLOAT_INTEL+    , "FLOAT_INTEL"+    )+  ,+    ( PERFORMANCE_VALUE_TYPE_BOOL_INTEL+    , "BOOL_INTEL"+    )+  ,+    ( PERFORMANCE_VALUE_TYPE_STRING_INTEL+    , "STRING_INTEL"+    )   ]  instance Show PerformanceValueTypeINTEL where-  showsPrec = enumShowsPrec enumPrefixPerformanceValueTypeINTEL-                            showTablePerformanceValueTypeINTEL-                            conNamePerformanceValueTypeINTEL-                            (\(PerformanceValueTypeINTEL x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceValueTypeINTEL+      showTablePerformanceValueTypeINTEL+      conNamePerformanceValueTypeINTEL+      (\(PerformanceValueTypeINTEL x) -> x)+      (showsPrec 11)  instance Read PerformanceValueTypeINTEL where-  readPrec = enumReadPrec enumPrefixPerformanceValueTypeINTEL-                          showTablePerformanceValueTypeINTEL-                          conNamePerformanceValueTypeINTEL-                          PerformanceValueTypeINTEL-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceValueTypeINTEL+      showTablePerformanceValueTypeINTEL+      conNamePerformanceValueTypeINTEL+      PerformanceValueTypeINTEL  -- No documentation found for TopLevel "VkQueryPoolCreateInfoINTEL" type QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -1200,6 +1200,8 @@                                                                                      , GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR                                                                                      , GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR                                                                                      , GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR+                                                                                     , GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT+                                                                                     , GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT                                                                                      , ..                                                                                      )                                                         , GeometryFlagsKHR@@ -1213,6 +1215,9 @@                                                                                                , BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR                                                                                                , BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR                                                                                                , BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR+                                                                                               , BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT+                                                                                               , BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT+                                                                                               , BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT                                                                                                , BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV                                                                                                , ..                                                                                                )@@ -1343,6 +1348,7 @@ import Vulkan.Extensions.Handles (AccelerationStructureKHR) import Vulkan.Extensions.Handles (AccelerationStructureKHR(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (AccelerationStructureMotionInfoNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_opacity_micromap (AccelerationStructureTrianglesOpacityMicromapEXT) import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks) import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Handles (Buffer)@@ -1483,7 +1489,9 @@                                    -- chapter.                                    ("allocator" ::: Maybe AllocationCallbacks)                                 -> io ()-destroyAccelerationStructureKHR device accelerationStructure allocator = liftIO . evalContT $ do+destroyAccelerationStructureKHR device+                                  accelerationStructure+                                  allocator = liftIO . evalContT $ do   let vkDestroyAccelerationStructureKHRPtr = pVkDestroyAccelerationStructureKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyAccelerationStructureKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyAccelerationStructureKHR is null" Nothing Nothing@@ -1491,7 +1499,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyAccelerationStructureKHR" (vkDestroyAccelerationStructureKHR' (deviceHandle (device)) (accelerationStructure) pAllocator)+  lift $ traceAroundEvent "vkDestroyAccelerationStructureKHR" (vkDestroyAccelerationStructureKHR'+                                                                 (deviceHandle (device))+                                                                 (accelerationStructure)+                                                                 pAllocator)   pure $ ()  @@ -1593,7 +1604,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyAccelerationStructureKHR is null" Nothing Nothing   let vkCmdCopyAccelerationStructureKHR' = mkVkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHRPtr   pInfo <- ContT $ withCStruct (info)-  lift $ traceAroundEvent "vkCmdCopyAccelerationStructureKHR" (vkCmdCopyAccelerationStructureKHR' (commandBufferHandle (commandBuffer)) pInfo)+  lift $ traceAroundEvent "vkCmdCopyAccelerationStructureKHR" (vkCmdCopyAccelerationStructureKHR'+                                                                 (commandBufferHandle (commandBuffer))+                                                                 pInfo)   pure $ ()  @@ -1695,13 +1708,18 @@                                 -- defining the copy operation.                                 CopyAccelerationStructureInfoKHR                              -> io (Result)-copyAccelerationStructureKHR device deferredOperation info = liftIO . evalContT $ do+copyAccelerationStructureKHR device+                               deferredOperation+                               info = liftIO . evalContT $ do   let vkCopyAccelerationStructureKHRPtr = pVkCopyAccelerationStructureKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCopyAccelerationStructureKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyAccelerationStructureKHR is null" Nothing Nothing   let vkCopyAccelerationStructureKHR' = mkVkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHRPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkCopyAccelerationStructureKHR" (vkCopyAccelerationStructureKHR' (deviceHandle (device)) (deferredOperation) pInfo)+  r <- lift $ traceAroundEvent "vkCopyAccelerationStructureKHR" (vkCopyAccelerationStructureKHR'+                                                                   (deviceHandle (device))+                                                                   (deferredOperation)+                                                                   pInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -1848,13 +1866,16 @@                                            -- structure defining the copy operation.                                            CopyAccelerationStructureToMemoryInfoKHR                                         -> io ()-cmdCopyAccelerationStructureToMemoryKHR commandBuffer info = liftIO . evalContT $ do+cmdCopyAccelerationStructureToMemoryKHR commandBuffer+                                          info = liftIO . evalContT $ do   let vkCmdCopyAccelerationStructureToMemoryKHRPtr = pVkCmdCopyAccelerationStructureToMemoryKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdCopyAccelerationStructureToMemoryKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyAccelerationStructureToMemoryKHR is null" Nothing Nothing   let vkCmdCopyAccelerationStructureToMemoryKHR' = mkVkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHRPtr   pInfo <- ContT $ withCStruct (info)-  lift $ traceAroundEvent "vkCmdCopyAccelerationStructureToMemoryKHR" (vkCmdCopyAccelerationStructureToMemoryKHR' (commandBufferHandle (commandBuffer)) pInfo)+  lift $ traceAroundEvent "vkCmdCopyAccelerationStructureToMemoryKHR" (vkCmdCopyAccelerationStructureToMemoryKHR'+                                                                         (commandBufferHandle (commandBuffer))+                                                                         pInfo)   pure $ ()  @@ -1964,13 +1985,18 @@                                         -- structure defining the copy operation.                                         CopyAccelerationStructureToMemoryInfoKHR                                      -> io (Result)-copyAccelerationStructureToMemoryKHR device deferredOperation info = liftIO . evalContT $ do+copyAccelerationStructureToMemoryKHR device+                                       deferredOperation+                                       info = liftIO . evalContT $ do   let vkCopyAccelerationStructureToMemoryKHRPtr = pVkCopyAccelerationStructureToMemoryKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCopyAccelerationStructureToMemoryKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyAccelerationStructureToMemoryKHR is null" Nothing Nothing   let vkCopyAccelerationStructureToMemoryKHR' = mkVkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHRPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkCopyAccelerationStructureToMemoryKHR" (vkCopyAccelerationStructureToMemoryKHR' (deviceHandle (device)) (deferredOperation) pInfo)+  r <- lift $ traceAroundEvent "vkCopyAccelerationStructureToMemoryKHR" (vkCopyAccelerationStructureToMemoryKHR'+                                                                           (deviceHandle (device))+                                                                           (deferredOperation)+                                                                           pInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -2086,13 +2112,16 @@                                            -- structure defining the copy operation.                                            CopyMemoryToAccelerationStructureInfoKHR                                         -> io ()-cmdCopyMemoryToAccelerationStructureKHR commandBuffer info = liftIO . evalContT $ do+cmdCopyMemoryToAccelerationStructureKHR commandBuffer+                                          info = liftIO . evalContT $ do   let vkCmdCopyMemoryToAccelerationStructureKHRPtr = pVkCmdCopyMemoryToAccelerationStructureKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdCopyMemoryToAccelerationStructureKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyMemoryToAccelerationStructureKHR is null" Nothing Nothing   let vkCmdCopyMemoryToAccelerationStructureKHR' = mkVkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHRPtr   pInfo <- ContT $ withCStruct (info)-  lift $ traceAroundEvent "vkCmdCopyMemoryToAccelerationStructureKHR" (vkCmdCopyMemoryToAccelerationStructureKHR' (commandBufferHandle (commandBuffer)) pInfo)+  lift $ traceAroundEvent "vkCmdCopyMemoryToAccelerationStructureKHR" (vkCmdCopyMemoryToAccelerationStructureKHR'+                                                                         (commandBufferHandle (commandBuffer))+                                                                         pInfo)   pure $ ()  @@ -2198,13 +2227,18 @@                                         -- structure defining the copy operation.                                         CopyMemoryToAccelerationStructureInfoKHR                                      -> io (Result)-copyMemoryToAccelerationStructureKHR device deferredOperation info = liftIO . evalContT $ do+copyMemoryToAccelerationStructureKHR device+                                       deferredOperation+                                       info = liftIO . evalContT $ do   let vkCopyMemoryToAccelerationStructureKHRPtr = pVkCopyMemoryToAccelerationStructureKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCopyMemoryToAccelerationStructureKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCopyMemoryToAccelerationStructureKHR is null" Nothing Nothing   let vkCopyMemoryToAccelerationStructureKHR' = mkVkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHRPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkCopyMemoryToAccelerationStructureKHR" (vkCopyMemoryToAccelerationStructureKHR' (deviceHandle (device)) (deferredOperation) pInfo)+  r <- lift $ traceAroundEvent "vkCopyMemoryToAccelerationStructureKHR" (vkCopyMemoryToAccelerationStructureKHR'+                                                                           (deviceHandle (device))+                                                                           (deferredOperation)+                                                                           pInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -2362,14 +2396,24 @@                                                -- contain the @accelerationStructureCount@ number of results.                                                ("firstQuery" ::: Word32)                                             -> io ()-cmdWriteAccelerationStructuresPropertiesKHR commandBuffer accelerationStructures queryType queryPool firstQuery = liftIO . evalContT $ do+cmdWriteAccelerationStructuresPropertiesKHR commandBuffer+                                              accelerationStructures+                                              queryType+                                              queryPool+                                              firstQuery = liftIO . evalContT $ do   let vkCmdWriteAccelerationStructuresPropertiesKHRPtr = pVkCmdWriteAccelerationStructuresPropertiesKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdWriteAccelerationStructuresPropertiesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteAccelerationStructuresPropertiesKHR is null" Nothing Nothing   let vkCmdWriteAccelerationStructuresPropertiesKHR' = mkVkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHRPtr   pPAccelerationStructures <- ContT $ allocaBytes @AccelerationStructureKHR ((Data.Vector.length (accelerationStructures)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPAccelerationStructures `plusPtr` (8 * (i)) :: Ptr AccelerationStructureKHR) (e)) (accelerationStructures)-  lift $ traceAroundEvent "vkCmdWriteAccelerationStructuresPropertiesKHR" (vkCmdWriteAccelerationStructuresPropertiesKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (queryPool) (firstQuery))+  lift $ traceAroundEvent "vkCmdWriteAccelerationStructuresPropertiesKHR" (vkCmdWriteAccelerationStructuresPropertiesKHR'+                                                                             (commandBufferHandle (commandBuffer))+                                                                             ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32))+                                                                             (pPAccelerationStructures)+                                                                             (queryType)+                                                                             (queryPool)+                                                                             (firstQuery))   pure $ ()  @@ -2542,14 +2586,26 @@                                             -- within @pData@.                                             ("stride" ::: Word64)                                          -> io ()-writeAccelerationStructuresPropertiesKHR device accelerationStructures queryType dataSize data' stride = liftIO . evalContT $ do+writeAccelerationStructuresPropertiesKHR device+                                           accelerationStructures+                                           queryType+                                           dataSize+                                           data'+                                           stride = liftIO . evalContT $ do   let vkWriteAccelerationStructuresPropertiesKHRPtr = pVkWriteAccelerationStructuresPropertiesKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkWriteAccelerationStructuresPropertiesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWriteAccelerationStructuresPropertiesKHR is null" Nothing Nothing   let vkWriteAccelerationStructuresPropertiesKHR' = mkVkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHRPtr   pPAccelerationStructures <- ContT $ allocaBytes @AccelerationStructureKHR ((Data.Vector.length (accelerationStructures)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPAccelerationStructures `plusPtr` (8 * (i)) :: Ptr AccelerationStructureKHR) (e)) (accelerationStructures)-  r <- lift $ traceAroundEvent "vkWriteAccelerationStructuresPropertiesKHR" (vkWriteAccelerationStructuresPropertiesKHR' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (CSize (dataSize)) (data') (CSize (stride)))+  r <- lift $ traceAroundEvent "vkWriteAccelerationStructuresPropertiesKHR" (vkWriteAccelerationStructuresPropertiesKHR'+                                                                               (deviceHandle (device))+                                                                               ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32))+                                                                               (pPAccelerationStructures)+                                                                               (queryType)+                                                                               (CSize (dataSize))+                                                                               (data')+                                                                               (CSize (stride)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -2598,14 +2654,18 @@                                                   -- structure specifying version information to check against the device.                                                   AccelerationStructureVersionInfoKHR                                                -> io (AccelerationStructureCompatibilityKHR)-getDeviceAccelerationStructureCompatibilityKHR device versionInfo = liftIO . evalContT $ do+getDeviceAccelerationStructureCompatibilityKHR device+                                                 versionInfo = liftIO . evalContT $ do   let vkGetDeviceAccelerationStructureCompatibilityKHRPtr = pVkGetDeviceAccelerationStructureCompatibilityKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetDeviceAccelerationStructureCompatibilityKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceAccelerationStructureCompatibilityKHR is null" Nothing Nothing   let vkGetDeviceAccelerationStructureCompatibilityKHR' = mkVkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHRPtr   pVersionInfo <- ContT $ withCStruct (versionInfo)   pPCompatibility <- ContT $ bracket (callocBytes @AccelerationStructureCompatibilityKHR 4) free-  lift $ traceAroundEvent "vkGetDeviceAccelerationStructureCompatibilityKHR" (vkGetDeviceAccelerationStructureCompatibilityKHR' (deviceHandle (device)) pVersionInfo (pPCompatibility))+  lift $ traceAroundEvent "vkGetDeviceAccelerationStructureCompatibilityKHR" (vkGetDeviceAccelerationStructureCompatibilityKHR'+                                                                                (deviceHandle (device))+                                                                                pVersionInfo+                                                                                (pPCompatibility))   pCompatibility <- lift $ peek @AccelerationStructureCompatibilityKHR pPCompatibility   pure $ (pCompatibility) @@ -2697,7 +2757,9 @@ -- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks', -- 'Vulkan.Core10.Handles.Device' createAccelerationStructureKHR :: forall a io-                                . (Extendss AccelerationStructureCreateInfoKHR a, PokeChain a, MonadIO io)+                                . ( Extendss AccelerationStructureCreateInfoKHR a+                                  , PokeChain a+                                  , MonadIO io )                                => -- | @device@ is the logical device that creates the acceleration structure                                   -- object.                                   Device@@ -2710,7 +2772,9 @@                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io (AccelerationStructureKHR)-createAccelerationStructureKHR device createInfo allocator = liftIO . evalContT $ do+createAccelerationStructureKHR device+                                 createInfo+                                 allocator = liftIO . evalContT $ do   let vkCreateAccelerationStructureKHRPtr = pVkCreateAccelerationStructureKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateAccelerationStructureKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateAccelerationStructureKHR is null" Nothing Nothing@@ -2720,7 +2784,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPAccelerationStructure <- ContT $ bracket (callocBytes @AccelerationStructureKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateAccelerationStructureKHR" (vkCreateAccelerationStructureKHR' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPAccelerationStructure))+  r <- lift $ traceAroundEvent "vkCreateAccelerationStructureKHR" (vkCreateAccelerationStructureKHR'+                                                                     (deviceHandle (device))+                                                                     (forgetExtensions pCreateInfo)+                                                                     pAllocator+                                                                     (pPAccelerationStructure))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pAccelerationStructure <- lift $ peek @AccelerationStructureKHR pPAccelerationStructure   pure $ (pAccelerationStructure)@@ -3322,7 +3390,9 @@                                      -- is stored, as defined by @pInfos@[i].                                      ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR))                                   -> io ()-cmdBuildAccelerationStructuresKHR commandBuffer infos buildRangeInfos = liftIO . evalContT $ do+cmdBuildAccelerationStructuresKHR commandBuffer+                                    infos+                                    buildRangeInfos = liftIO . evalContT $ do   let vkCmdBuildAccelerationStructuresKHRPtr = pVkCmdBuildAccelerationStructuresKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBuildAccelerationStructuresKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBuildAccelerationStructuresKHR is null" Nothing Nothing@@ -3337,7 +3407,11 @@     pPpBuildRangeInfos' <- ContT $ allocaBytes @AccelerationStructureBuildRangeInfoKHR ((Data.Vector.length (e)) * 16)     lift $ Data.Vector.imapM_ (\i' e' -> poke (pPpBuildRangeInfos' `plusPtr` (16 * (i')) :: Ptr AccelerationStructureBuildRangeInfoKHR) (e')) (e)     lift $ poke (pPpBuildRangeInfos `plusPtr` (8 * (i)) :: Ptr (Ptr AccelerationStructureBuildRangeInfoKHR)) (pPpBuildRangeInfos')) (buildRangeInfos)-  lift $ traceAroundEvent "vkCmdBuildAccelerationStructuresKHR" (vkCmdBuildAccelerationStructuresKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPpBuildRangeInfos))+  lift $ traceAroundEvent "vkCmdBuildAccelerationStructuresKHR" (vkCmdBuildAccelerationStructuresKHR'+                                                                   (commandBufferHandle (commandBuffer))+                                                                   ((fromIntegral pInfosLength :: Word32))+                                                                   (pPInfos)+                                                                   (pPpBuildRangeInfos))   pure $ ()  @@ -3961,7 +4035,11 @@                                              -- geometry.                                              ("maxPrimitiveCounts" ::: Vector (Vector Word32))                                           -> io ()-cmdBuildAccelerationStructuresIndirectKHR commandBuffer infos indirectDeviceAddresses indirectStrides maxPrimitiveCounts = liftIO . evalContT $ do+cmdBuildAccelerationStructuresIndirectKHR commandBuffer+                                            infos+                                            indirectDeviceAddresses+                                            indirectStrides+                                            maxPrimitiveCounts = liftIO . evalContT $ do   let vkCmdBuildAccelerationStructuresIndirectKHRPtr = pVkCmdBuildAccelerationStructuresIndirectKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBuildAccelerationStructuresIndirectKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBuildAccelerationStructuresIndirectKHR is null" Nothing Nothing@@ -3984,7 +4062,13 @@     pPpMaxPrimitiveCounts' <- ContT $ allocaBytes @Word32 ((Data.Vector.length (e)) * 4)     lift $ Data.Vector.imapM_ (\i' e' -> poke (pPpMaxPrimitiveCounts' `plusPtr` (4 * (i')) :: Ptr Word32) (e')) (e)     lift $ poke (pPpMaxPrimitiveCounts `plusPtr` (8 * (i)) :: Ptr (Ptr Word32)) (pPpMaxPrimitiveCounts')) (maxPrimitiveCounts)-  lift $ traceAroundEvent "vkCmdBuildAccelerationStructuresIndirectKHR" (vkCmdBuildAccelerationStructuresIndirectKHR' (commandBufferHandle (commandBuffer)) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPIndirectDeviceAddresses) (pPIndirectStrides) (pPpMaxPrimitiveCounts))+  lift $ traceAroundEvent "vkCmdBuildAccelerationStructuresIndirectKHR" (vkCmdBuildAccelerationStructuresIndirectKHR'+                                                                           (commandBufferHandle (commandBuffer))+                                                                           ((fromIntegral pInfosLength :: Word32))+                                                                           (pPInfos)+                                                                           (pPIndirectDeviceAddresses)+                                                                           (pPIndirectStrides)+                                                                           (pPpMaxPrimitiveCounts))   pure $ ()  @@ -4456,7 +4540,10 @@                                   -- is stored, as defined by @pInfos@[i].                                   ("buildRangeInfos" ::: Vector (Vector AccelerationStructureBuildRangeInfoKHR))                                -> io (Result)-buildAccelerationStructuresKHR device deferredOperation infos buildRangeInfos = liftIO . evalContT $ do+buildAccelerationStructuresKHR device+                                 deferredOperation+                                 infos+                                 buildRangeInfos = liftIO . evalContT $ do   let vkBuildAccelerationStructuresKHRPtr = pVkBuildAccelerationStructuresKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkBuildAccelerationStructuresKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBuildAccelerationStructuresKHR is null" Nothing Nothing@@ -4471,7 +4558,12 @@     pPpBuildRangeInfos' <- ContT $ allocaBytes @AccelerationStructureBuildRangeInfoKHR ((Data.Vector.length (e)) * 16)     lift $ Data.Vector.imapM_ (\i' e' -> poke (pPpBuildRangeInfos' `plusPtr` (16 * (i')) :: Ptr AccelerationStructureBuildRangeInfoKHR) (e')) (e)     lift $ poke (pPpBuildRangeInfos `plusPtr` (8 * (i)) :: Ptr (Ptr AccelerationStructureBuildRangeInfoKHR)) (pPpBuildRangeInfos')) (buildRangeInfos)-  r <- lift $ traceAroundEvent "vkBuildAccelerationStructuresKHR" (vkBuildAccelerationStructuresKHR' (deviceHandle (device)) (deferredOperation) ((fromIntegral pInfosLength :: Word32)) (pPInfos) (pPpBuildRangeInfos))+  r <- lift $ traceAroundEvent "vkBuildAccelerationStructuresKHR" (vkBuildAccelerationStructuresKHR'+                                                                     (deviceHandle (device))+                                                                     (deferredOperation)+                                                                     ((fromIntegral pInfosLength :: Word32))+                                                                     (pPInfos)+                                                                     (pPpBuildRangeInfos))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -4551,7 +4643,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureDeviceAddressKHR is null" Nothing Nothing   let vkGetAccelerationStructureDeviceAddressKHR' = mkVkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHRPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkGetAccelerationStructureDeviceAddressKHR" (vkGetAccelerationStructureDeviceAddressKHR' (deviceHandle (device)) pInfo)+  r <- lift $ traceAroundEvent "vkGetAccelerationStructureDeviceAddressKHR" (vkGetAccelerationStructureDeviceAddressKHR'+                                                                               (deviceHandle (device))+                                                                               pInfo)   pure $ (r)  @@ -4629,6 +4723,14 @@ --     -   Its @primitiveCount@ member is less than or equal to the --         corresponding element of @pMaxPrimitiveCounts@. --+--     -   For each element of either @pGeometries@ or @ppGeometries@ at a+--         given index, with a @geometryType@ member equal to+--         'GEOMETRY_TYPE_TRIANGLES_KHR', if the @pNext@ chain contains+--         'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT'+--         the corresponding member of @pBuildInfo@ also contains+--         'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT'+--         and with an equivalent @micromap@.+-- -- Similarly, the @updateScratchSize@ value will support any build command -- specifying the 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR' @mode@ -- under the above conditions, and the @buildScratchSize@ value will@@ -4706,7 +4808,10 @@                                          -- primitives built into each geometry.                                          ("maxPrimitiveCounts" ::: Vector Word32)                                       -> io (("sizeInfo" ::: AccelerationStructureBuildSizesInfoKHR))-getAccelerationStructureBuildSizesKHR device buildType buildInfo maxPrimitiveCounts = liftIO . evalContT $ do+getAccelerationStructureBuildSizesKHR device+                                        buildType+                                        buildInfo+                                        maxPrimitiveCounts = liftIO . evalContT $ do   let vkGetAccelerationStructureBuildSizesKHRPtr = pVkGetAccelerationStructureBuildSizesKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetAccelerationStructureBuildSizesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureBuildSizesKHR is null" Nothing Nothing@@ -4719,7 +4824,12 @@       lift $ Data.Vector.imapM_ (\i e -> poke (pPMaxPrimitiveCounts `plusPtr` (4 * (i)) :: Ptr Word32) (e)) ((maxPrimitiveCounts))       pure $ pPMaxPrimitiveCounts   pPSizeInfo <- ContT (withZeroCStruct @AccelerationStructureBuildSizesInfoKHR)-  lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR' (deviceHandle (device)) (buildType) pBuildInfo pMaxPrimitiveCounts (pPSizeInfo))+  lift $ traceAroundEvent "vkGetAccelerationStructureBuildSizesKHR" (vkGetAccelerationStructureBuildSizesKHR'+                                                                       (deviceHandle (device))+                                                                       (buildType)+                                                                       pBuildInfo+                                                                       pMaxPrimitiveCounts+                                                                       (pPSizeInfo))   pSizeInfo <- lift $ peekCStruct @AccelerationStructureBuildSizesInfoKHR pPSizeInfo   pure $ (pSizeInfo) @@ -4907,7 +5017,11 @@     accelerationStructureHostCommands <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))     descriptorBindingAccelerationStructureUpdateAfterBind <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))     pure $ PhysicalDeviceAccelerationStructureFeaturesKHR-             (bool32ToBool accelerationStructure) (bool32ToBool accelerationStructureCaptureReplay) (bool32ToBool accelerationStructureIndirectBuild) (bool32ToBool accelerationStructureHostCommands) (bool32ToBool descriptorBindingAccelerationStructureUpdateAfterBind)+             (bool32ToBool accelerationStructure)+             (bool32ToBool accelerationStructureCaptureReplay)+             (bool32ToBool accelerationStructureIndirectBuild)+             (bool32ToBool accelerationStructureHostCommands)+             (bool32ToBool descriptorBindingAccelerationStructureUpdateAfterBind)  instance Storable PhysicalDeviceAccelerationStructureFeaturesKHR where   sizeOf ~_ = 40@@ -5055,7 +5169,14 @@     maxDescriptorSetUpdateAfterBindAccelerationStructures <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))     minAccelerationStructureScratchOffsetAlignment <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))     pure $ PhysicalDeviceAccelerationStructurePropertiesKHR-             maxGeometryCount maxInstanceCount maxPrimitiveCount maxPerStageDescriptorAccelerationStructures maxPerStageDescriptorUpdateAfterBindAccelerationStructures maxDescriptorSetAccelerationStructures maxDescriptorSetUpdateAfterBindAccelerationStructures minAccelerationStructureScratchOffsetAlignment+             maxGeometryCount+             maxInstanceCount+             maxPrimitiveCount+             maxPerStageDescriptorAccelerationStructures+             maxPerStageDescriptorUpdateAfterBindAccelerationStructures+             maxDescriptorSetAccelerationStructures+             maxDescriptorSetUpdateAfterBindAccelerationStructures+             minAccelerationStructureScratchOffsetAlignment  instance Storable PhysicalDeviceAccelerationStructurePropertiesKHR where   sizeOf ~_ = 64@@ -5118,8 +5239,12 @@ --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR' -- -- -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext#---     @pNext@ /must/ be @NULL@ or a pointer to a valid instance of+--     Each @pNext@ member of any structure (including this one) in the+--     @pNext@ chain /must/ be either @NULL@ or a pointer to a valid+--     instance of --     'Vulkan.Extensions.VK_NV_ray_tracing_motion_blur.AccelerationStructureGeometryMotionTrianglesDataNV'+--     or+--     'Vulkan.Extensions.VK_EXT_opacity_micromap.AccelerationStructureTrianglesOpacityMicromapEXT' -- -- -   #VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-unique# --     The @sType@ value of each struct in the @pNext@ chain /must/ be@@ -5179,10 +5304,12 @@   getNext AccelerationStructureGeometryTrianglesDataKHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends AccelerationStructureGeometryTrianglesDataKHR e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @AccelerationStructureTrianglesOpacityMicromapEXT = Just f     | Just Refl <- eqT @e @AccelerationStructureGeometryMotionTrianglesDataNV = Just f     | otherwise = Nothing -instance (Extendss AccelerationStructureGeometryTrianglesDataKHR es, PokeChain es) => ToCStruct (AccelerationStructureGeometryTrianglesDataKHR es) where+instance ( Extendss AccelerationStructureGeometryTrianglesDataKHR es+         , PokeChain es ) => ToCStruct (AccelerationStructureGeometryTrianglesDataKHR es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p AccelerationStructureGeometryTrianglesDataKHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR)@@ -5536,6 +5663,13 @@ --     'BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV' is set in @flags@, --     @type@ /must/ not be 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' --+-- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-07334# If+--     @flags@ has the+--     'BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT' bit+--     set then it /must/ not have the+--     'BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT'+--     bit set.+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType#@@ -5980,7 +6114,8 @@     | Just Refl <- eqT @e @AccelerationStructureMotionInfoNV = Just f     | otherwise = Nothing -instance (Extendss AccelerationStructureCreateInfoKHR es, PokeChain es) => ToCStruct (AccelerationStructureCreateInfoKHR es) where+instance ( Extendss AccelerationStructureCreateInfoKHR es+         , PokeChain es ) => ToCStruct (AccelerationStructureCreateInfoKHR es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p AccelerationStructureCreateInfoKHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR)@@ -6005,7 +6140,8 @@     lift $ poke ((p `plusPtr` 48 :: Ptr AccelerationStructureTypeKHR)) (zero)     lift $ f -instance (Extendss AccelerationStructureCreateInfoKHR es, PeekChain es) => FromCStruct (AccelerationStructureCreateInfoKHR es) where+instance ( Extendss AccelerationStructureCreateInfoKHR es+         , PeekChain es ) => FromCStruct (AccelerationStructureCreateInfoKHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -6097,7 +6233,12 @@     maxY <- peek @CFloat ((p `plusPtr` 16 :: Ptr CFloat))     maxZ <- peek @CFloat ((p `plusPtr` 20 :: Ptr CFloat))     pure $ AabbPositionsKHR-             (coerce @CFloat @Float minX) (coerce @CFloat @Float minY) (coerce @CFloat @Float minZ) (coerce @CFloat @Float maxX) (coerce @CFloat @Float maxY) (coerce @CFloat @Float maxZ)+             (coerce @CFloat @Float minX)+             (coerce @CFloat @Float minY)+             (coerce @CFloat @Float minZ)+             (coerce @CFloat @Float maxX)+             (coerce @CFloat @Float maxY)+             (coerce @CFloat @Float maxZ)  instance Storable AabbPositionsKHR where   sizeOf ~_ = 24@@ -6194,7 +6335,18 @@     matrixRow22 <- peek @CFloat ((pmatrixRow2 `advancePtrBytes` 8 :: Ptr CFloat))     matrixRow23 <- peek @CFloat ((pmatrixRow2 `advancePtrBytes` 12 :: Ptr CFloat))     pure $ TransformMatrixKHR-             (((coerce @CFloat @Float matrixRow00), (coerce @CFloat @Float matrixRow01), (coerce @CFloat @Float matrixRow02), (coerce @CFloat @Float matrixRow03))) (((coerce @CFloat @Float matrixRow10), (coerce @CFloat @Float matrixRow11), (coerce @CFloat @Float matrixRow12), (coerce @CFloat @Float matrixRow13))) (((coerce @CFloat @Float matrixRow20), (coerce @CFloat @Float matrixRow21), (coerce @CFloat @Float matrixRow22), (coerce @CFloat @Float matrixRow23)))+             (( (coerce @CFloat @Float matrixRow00)+              , (coerce @CFloat @Float matrixRow01)+              , (coerce @CFloat @Float matrixRow02)+              , (coerce @CFloat @Float matrixRow03) ))+             (( (coerce @CFloat @Float matrixRow10)+              , (coerce @CFloat @Float matrixRow11)+              , (coerce @CFloat @Float matrixRow12)+              , (coerce @CFloat @Float matrixRow13) ))+             (( (coerce @CFloat @Float matrixRow20)+              , (coerce @CFloat @Float matrixRow21)+              , (coerce @CFloat @Float matrixRow22)+              , (coerce @CFloat @Float matrixRow23) ))  instance Storable TransformMatrixKHR where   sizeOf ~_ = 48@@ -6313,7 +6465,12 @@     let flags' = ((((flags `shiftR` 24)) .&. coerce @Word32 0xff))     accelerationStructureReference <- peek @Word64 ((p `plusPtr` 56 :: Ptr Word64))     pure $ AccelerationStructureInstanceKHR-             transform instanceCustomIndex' mask' instanceShaderBindingTableRecordOffset' flags' accelerationStructureReference+             transform+             instanceCustomIndex'+             mask'+             instanceShaderBindingTableRecordOffset'+             flags'+             accelerationStructureReference  instance Storable AccelerationStructureInstanceKHR where   sizeOf ~_ = 64@@ -6398,7 +6555,7 @@ -- @pVersionData@ is a /pointer/ to an array of -- 2×'Vulkan.Core10.APIConstants.UUID_SIZE' @uint8_t@ values instead of two -- 'Vulkan.Core10.APIConstants.UUID_SIZE' arrays as the expected use case--- for this member is to be pointed at the header of an previously+-- for this member is to be pointed at the header of a previously -- serialized acceleration structure (via -- 'cmdCopyAccelerationStructureToMemoryKHR' or -- 'copyAccelerationStructureToMemoryKHR') that is loaded in memory. Using@@ -6431,7 +6588,7 @@     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR)     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)     lift $ unless (Data.ByteString.length (versionData) == 2 * UUID_SIZE) $-      throwIO $ IOError Nothing InvalidArgument "" "AccelerationStructureVersionKHR::versionData must be 2*VK_UUID_SIZE bytes" Nothing Nothing+      throwIO $ IOError Nothing InvalidArgument "" "VkAccelerationStructureVersionInfoKHR::versionData must be 2*VK_UUID_SIZE bytes" Nothing Nothing     versionData' <- fmap (castPtr @CChar @Word8) . ContT $ unsafeUseAsCString (versionData)     lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr Word8))) versionData'     lift $ f@@ -6445,7 +6602,8 @@ instance FromCStruct AccelerationStructureVersionInfoKHR where   peekCStruct p = do     versionData <- peek @(Ptr Word8) ((p `plusPtr` 16 :: Ptr (Ptr Word8)))-    versionData' <- packCStringLen (castPtr @Word8 @CChar versionData, 2 * UUID_SIZE)+    versionData' <- packCStringLen ( castPtr @Word8 @CChar versionData+                                   , 2 * UUID_SIZE )     pure $ AccelerationStructureVersionInfoKHR              versionData' @@ -6890,23 +7048,32 @@ -- | 'GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR' disables face -- 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://registry.khronos.org/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.-pattern GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR         = GeometryInstanceFlagBitsKHR 0x00000002+pattern GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = GeometryInstanceFlagBitsKHR 0x00000002+ -- | 'GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR' causes this instance to act as -- though 'GEOMETRY_OPAQUE_BIT_KHR' were specified on all geometries -- referenced by this instance. This behavior /can/ be overridden by the -- SPIR-V @NoOpaqueKHR@ ray flag.-pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR                 = GeometryInstanceFlagBitsKHR 0x00000004+pattern GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = GeometryInstanceFlagBitsKHR 0x00000004+ -- | 'GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR' causes this instance to act -- as though 'GEOMETRY_OPAQUE_BIT_KHR' were not specified on all geometries -- referenced by this instance. This behavior /can/ be overridden by the -- SPIR-V @OpaqueKHR@ ray flag.-pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR              = GeometryInstanceFlagBitsKHR 0x00000008+pattern GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = GeometryInstanceFlagBitsKHR 0x00000008 +-- No documentation found for Nested "VkGeometryInstanceFlagBitsKHR" "VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT"+pattern GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = GeometryInstanceFlagBitsKHR 0x00000020++-- No documentation found for Nested "VkGeometryInstanceFlagBitsKHR" "VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT"+pattern GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = GeometryInstanceFlagBitsKHR 0x00000010+ conNameGeometryInstanceFlagBitsKHR :: String conNameGeometryInstanceFlagBitsKHR = "GeometryInstanceFlagBitsKHR" @@ -6915,25 +7082,48 @@  showTableGeometryInstanceFlagBitsKHR :: [(GeometryInstanceFlagBitsKHR, String)] showTableGeometryInstanceFlagBitsKHR =-  [ (GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, "TRIANGLE_FACING_CULL_DISABLE_BIT_KHR")-  , (GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR        , "TRIANGLE_FLIP_FACING_BIT_KHR")-  , (GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR                , "FORCE_OPAQUE_BIT_KHR")-  , (GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR             , "FORCE_NO_OPAQUE_BIT_KHR")+  [+    ( GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR+    , "TRIANGLE_FACING_CULL_DISABLE_BIT_KHR"+    )+  ,+    ( GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR+    , "TRIANGLE_FLIP_FACING_BIT_KHR"+    )+  ,+    ( GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR+    , "FORCE_OPAQUE_BIT_KHR"+    )+  ,+    ( GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR+    , "FORCE_NO_OPAQUE_BIT_KHR"+    )+  ,+    ( GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT+    , "DISABLE_OPACITY_MICROMAPS_EXT"+    )+  ,+    ( GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT+    , "FORCE_OPACITY_MICROMAP_2_STATE_EXT"+    )   ]  instance Show GeometryInstanceFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixGeometryInstanceFlagBitsKHR-                            showTableGeometryInstanceFlagBitsKHR-                            conNameGeometryInstanceFlagBitsKHR-                            (\(GeometryInstanceFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixGeometryInstanceFlagBitsKHR+      showTableGeometryInstanceFlagBitsKHR+      conNameGeometryInstanceFlagBitsKHR+      (\(GeometryInstanceFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read GeometryInstanceFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixGeometryInstanceFlagBitsKHR-                          showTableGeometryInstanceFlagBitsKHR-                          conNameGeometryInstanceFlagBitsKHR-                          GeometryInstanceFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixGeometryInstanceFlagBitsKHR+      showTableGeometryInstanceFlagBitsKHR+      conNameGeometryInstanceFlagBitsKHR+      GeometryInstanceFlagBitsKHR  type GeometryFlagsKHR = GeometryFlagBitsKHR @@ -6950,7 +7140,8 @@  -- | 'GEOMETRY_OPAQUE_BIT_KHR' indicates that this geometry does not invoke -- the any-hit shaders even if present in a hit group.-pattern GEOMETRY_OPAQUE_BIT_KHR                          = GeometryFlagBitsKHR 0x00000001+pattern GEOMETRY_OPAQUE_BIT_KHR = GeometryFlagBitsKHR 0x00000001+ -- | 'GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR' indicates that the -- implementation /must/ only call the any-hit shader a single time for -- each primitive in this geometry. If this bit is absent an implementation@@ -6965,23 +7156,29 @@  showTableGeometryFlagBitsKHR :: [(GeometryFlagBitsKHR, String)] showTableGeometryFlagBitsKHR =-  [ (GEOMETRY_OPAQUE_BIT_KHR                         , "OPAQUE_BIT_KHR")-  , (GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR, "NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR")+  [ (GEOMETRY_OPAQUE_BIT_KHR, "OPAQUE_BIT_KHR")+  ,+    ( GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR+    , "NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR"+    )   ]  instance Show GeometryFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixGeometryFlagBitsKHR-                            showTableGeometryFlagBitsKHR-                            conNameGeometryFlagBitsKHR-                            (\(GeometryFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixGeometryFlagBitsKHR+      showTableGeometryFlagBitsKHR+      conNameGeometryFlagBitsKHR+      (\(GeometryFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read GeometryFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixGeometryFlagBitsKHR-                          showTableGeometryFlagBitsKHR-                          conNameGeometryFlagBitsKHR-                          GeometryFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixGeometryFlagBitsKHR+      showTableGeometryFlagBitsKHR+      conNameGeometryFlagBitsKHR+      GeometryFlagBitsKHR  type BuildAccelerationStructureFlagsKHR = BuildAccelerationStructureFlagBitsKHR @@ -7011,28 +7208,51 @@ -- 'AccelerationStructureBuildGeometryInfoKHR' or an @update@ of -- 'Vulkan.Core10.FundamentalTypes.TRUE' in -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV' .-pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR      = BuildAccelerationStructureFlagBitsKHR 0x00000001+pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000001+ -- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR' indicates that -- the specified acceleration structure /can/ act as the source for a copy -- acceleration structure command with @mode@ of -- 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR' to produce a compacted -- acceleration structure.-pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR  = BuildAccelerationStructureFlagBitsKHR 0x00000002+pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000002+ -- | 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR' indicates that -- the given acceleration structure build /should/ prioritize trace -- performance over build time. pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000004+ -- | 'BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR' indicates that -- the given acceleration structure build /should/ prioritize build time -- over trace performance. pattern BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000008+ -- | 'BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR' indicates that this -- acceleration structure /should/ minimize the size of the scratch memory -- and the final result acceleration structure, potentially at the expense -- of build time or trace performance.-pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR        = BuildAccelerationStructureFlagBitsKHR 0x00000010+pattern BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = BuildAccelerationStructureFlagBitsKHR 0x00000010++-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT'+-- indicates that the data of the opacity micromaps associated with the+-- specified acceleration structure /may/ change with an acceleration+-- structure update.+pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = BuildAccelerationStructureFlagBitsKHR 0x00000100++-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT'+-- indicates that the specified acceleration structure /may/ be referenced+-- in an instance with 'GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT'+-- set.+pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = BuildAccelerationStructureFlagBitsKHR 0x00000080++-- | 'BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT'+-- indicates that the opacity micromaps associated with the specified+-- acceleration structure /may/ change with an acceleration structure+-- update.+pattern BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = BuildAccelerationStructureFlagBitsKHR 0x00000040+ -- No documentation found for Nested "VkBuildAccelerationStructureFlagBitsKHR" "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV"-pattern BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV             = BuildAccelerationStructureFlagBitsKHR 0x00000020+pattern BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = BuildAccelerationStructureFlagBitsKHR 0x00000020  conNameBuildAccelerationStructureFlagBitsKHR :: String conNameBuildAccelerationStructureFlagBitsKHR = "BuildAccelerationStructureFlagBitsKHR"@@ -7042,27 +7262,60 @@  showTableBuildAccelerationStructureFlagBitsKHR :: [(BuildAccelerationStructureFlagBitsKHR, String)] showTableBuildAccelerationStructureFlagBitsKHR =-  [ (BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR     , "ALLOW_UPDATE_BIT_KHR")-  , (BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR , "ALLOW_COMPACTION_BIT_KHR")-  , (BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, "PREFER_FAST_TRACE_BIT_KHR")-  , (BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, "PREFER_FAST_BUILD_BIT_KHR")-  , (BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR       , "LOW_MEMORY_BIT_KHR")-  , (BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV            , "MOTION_BIT_NV")+  [+    ( BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR+    , "ALLOW_UPDATE_BIT_KHR"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR+    , "ALLOW_COMPACTION_BIT_KHR"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR+    , "PREFER_FAST_TRACE_BIT_KHR"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR+    , "PREFER_FAST_BUILD_BIT_KHR"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR+    , "LOW_MEMORY_BIT_KHR"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT+    , "ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT+    , "ALLOW_DISABLE_OPACITY_MICROMAPS_EXT"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT+    , "ALLOW_OPACITY_MICROMAP_UPDATE_EXT"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV+    , "MOTION_BIT_NV"+    )   ]  instance Show BuildAccelerationStructureFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixBuildAccelerationStructureFlagBitsKHR-                            showTableBuildAccelerationStructureFlagBitsKHR-                            conNameBuildAccelerationStructureFlagBitsKHR-                            (\(BuildAccelerationStructureFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixBuildAccelerationStructureFlagBitsKHR+      showTableBuildAccelerationStructureFlagBitsKHR+      conNameBuildAccelerationStructureFlagBitsKHR+      (\(BuildAccelerationStructureFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read BuildAccelerationStructureFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixBuildAccelerationStructureFlagBitsKHR-                          showTableBuildAccelerationStructureFlagBitsKHR-                          conNameBuildAccelerationStructureFlagBitsKHR-                          BuildAccelerationStructureFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixBuildAccelerationStructureFlagBitsKHR+      showTableBuildAccelerationStructureFlagBitsKHR+      conNameBuildAccelerationStructureFlagBitsKHR+      BuildAccelerationStructureFlagBitsKHR  type AccelerationStructureCreateFlagsKHR = AccelerationStructureCreateFlagBitsKHR @@ -7079,8 +7332,8 @@ -- | 'ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR' -- specifies that the acceleration structure’s address /can/ be saved and -- reused on a subsequent run.-pattern ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR =-  AccelerationStructureCreateFlagBitsKHR 0x00000001+pattern ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = AccelerationStructureCreateFlagBitsKHR 0x00000001+ -- No documentation found for Nested "VkAccelerationStructureCreateFlagBitsKHR" "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV" pattern ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = AccelerationStructureCreateFlagBitsKHR 0x00000004 @@ -7092,23 +7345,32 @@  showTableAccelerationStructureCreateFlagBitsKHR :: [(AccelerationStructureCreateFlagBitsKHR, String)] showTableAccelerationStructureCreateFlagBitsKHR =-  [ (ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, "DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR")-  , (ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV                        , "MOTION_BIT_NV")+  [+    ( ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR+    , "DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR"+    )+  ,+    ( ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV+    , "MOTION_BIT_NV"+    )   ]  instance Show AccelerationStructureCreateFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureCreateFlagBitsKHR-                            showTableAccelerationStructureCreateFlagBitsKHR-                            conNameAccelerationStructureCreateFlagBitsKHR-                            (\(AccelerationStructureCreateFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureCreateFlagBitsKHR+      showTableAccelerationStructureCreateFlagBitsKHR+      conNameAccelerationStructureCreateFlagBitsKHR+      (\(AccelerationStructureCreateFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AccelerationStructureCreateFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixAccelerationStructureCreateFlagBitsKHR-                          showTableAccelerationStructureCreateFlagBitsKHR-                          conNameAccelerationStructureCreateFlagBitsKHR-                          AccelerationStructureCreateFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureCreateFlagBitsKHR+      showTableAccelerationStructureCreateFlagBitsKHR+      conNameAccelerationStructureCreateFlagBitsKHR+      AccelerationStructureCreateFlagBitsKHR  -- | VkCopyAccelerationStructureModeKHR - Acceleration structure copy mode --@@ -7129,7 +7391,8 @@ -- the same parameters as @src@. If @src@ contains references to other -- acceleration structures, @dst@ will reference the same acceleration -- structures.-pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR       = CopyAccelerationStructureModeKHR 0+pattern COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = CopyAccelerationStructureModeKHR 0+ -- | 'COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR' creates a more compact -- version of an acceleration structure @src@ into @dst@. The acceleration -- structure @dst@ /must/ have been created with a size at least as large@@ -7138,20 +7401,26 @@ -- acceleration structure specified by @src@. If @src@ contains references -- to other acceleration structures, @dst@ will reference the same -- acceleration structures.-pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR     = CopyAccelerationStructureModeKHR 1+pattern COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = CopyAccelerationStructureModeKHR 1+ -- | 'COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR' serializes the -- acceleration structure to a semi-opaque format which can be reloaded on -- a compatible implementation.-pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR   = CopyAccelerationStructureModeKHR 2+pattern COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = CopyAccelerationStructureModeKHR 2+ -- | 'COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR' deserializes the -- semi-opaque serialization format in the buffer to the acceleration -- structure. pattern COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = CopyAccelerationStructureModeKHR 3-{-# complete COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,-             COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,-             COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR,-             COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR :: CopyAccelerationStructureModeKHR #-} +{-# COMPLETE+  COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR+  , COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR+  , COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR+  , COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR ::+    CopyAccelerationStructureModeKHR+  #-}+ conNameCopyAccelerationStructureModeKHR :: String conNameCopyAccelerationStructureModeKHR = "CopyAccelerationStructureModeKHR" @@ -7160,25 +7429,40 @@  showTableCopyAccelerationStructureModeKHR :: [(CopyAccelerationStructureModeKHR, String)] showTableCopyAccelerationStructureModeKHR =-  [ (COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR      , "CLONE_KHR")-  , (COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR    , "COMPACT_KHR")-  , (COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR  , "SERIALIZE_KHR")-  , (COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR, "DESERIALIZE_KHR")+  [+    ( COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR+    , "CLONE_KHR"+    )+  ,+    ( COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR+    , "COMPACT_KHR"+    )+  ,+    ( COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR+    , "SERIALIZE_KHR"+    )+  ,+    ( COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR+    , "DESERIALIZE_KHR"+    )   ]  instance Show CopyAccelerationStructureModeKHR where-  showsPrec = enumShowsPrec enumPrefixCopyAccelerationStructureModeKHR-                            showTableCopyAccelerationStructureModeKHR-                            conNameCopyAccelerationStructureModeKHR-                            (\(CopyAccelerationStructureModeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixCopyAccelerationStructureModeKHR+      showTableCopyAccelerationStructureModeKHR+      conNameCopyAccelerationStructureModeKHR+      (\(CopyAccelerationStructureModeKHR x) -> x)+      (showsPrec 11)  instance Read CopyAccelerationStructureModeKHR where-  readPrec = enumReadPrec enumPrefixCopyAccelerationStructureModeKHR-                          showTableCopyAccelerationStructureModeKHR-                          conNameCopyAccelerationStructureModeKHR-                          CopyAccelerationStructureModeKHR-+  readPrec =+    enumReadPrec+      enumPrefixCopyAccelerationStructureModeKHR+      showTableCopyAccelerationStructureModeKHR+      conNameCopyAccelerationStructureModeKHR+      CopyAccelerationStructureModeKHR  -- | VkBuildAccelerationStructureModeKHR - Enum specifying the type of build -- operation to perform@@ -7193,14 +7477,19 @@ -- | 'BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR' specifies that the -- destination acceleration structure will be built using the specified -- geometries.-pattern BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR  = BuildAccelerationStructureModeKHR 0+pattern BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = BuildAccelerationStructureModeKHR 0+ -- | 'BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR' specifies that the -- destination acceleration structure will be built using data in a source -- acceleration structure, updated by the specified geometries. pattern BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = BuildAccelerationStructureModeKHR 1-{-# complete BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR,-             BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR :: BuildAccelerationStructureModeKHR #-} +{-# COMPLETE+  BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR+  , BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR ::+    BuildAccelerationStructureModeKHR+  #-}+ conNameBuildAccelerationStructureModeKHR :: String conNameBuildAccelerationStructureModeKHR = "BuildAccelerationStructureModeKHR" @@ -7209,23 +7498,32 @@  showTableBuildAccelerationStructureModeKHR :: [(BuildAccelerationStructureModeKHR, String)] showTableBuildAccelerationStructureModeKHR =-  [ (BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR , "BUILD_KHR")-  , (BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, "UPDATE_KHR")+  [+    ( BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR+    , "BUILD_KHR"+    )+  ,+    ( BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR+    , "UPDATE_KHR"+    )   ]  instance Show BuildAccelerationStructureModeKHR where-  showsPrec = enumShowsPrec enumPrefixBuildAccelerationStructureModeKHR-                            showTableBuildAccelerationStructureModeKHR-                            conNameBuildAccelerationStructureModeKHR-                            (\(BuildAccelerationStructureModeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixBuildAccelerationStructureModeKHR+      showTableBuildAccelerationStructureModeKHR+      conNameBuildAccelerationStructureModeKHR+      (\(BuildAccelerationStructureModeKHR x) -> x)+      (showsPrec 11)  instance Read BuildAccelerationStructureModeKHR where-  readPrec = enumReadPrec enumPrefixBuildAccelerationStructureModeKHR-                          showTableBuildAccelerationStructureModeKHR-                          conNameBuildAccelerationStructureModeKHR-                          BuildAccelerationStructureModeKHR-+  readPrec =+    enumReadPrec+      enumPrefixBuildAccelerationStructureModeKHR+      showTableBuildAccelerationStructureModeKHR+      conNameBuildAccelerationStructureModeKHR+      BuildAccelerationStructureModeKHR  -- | VkAccelerationStructureTypeKHR - Type of acceleration structure --@@ -7242,20 +7540,26 @@ -- | 'ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR' is a top-level acceleration -- structure containing instance data referring to bottom-level -- acceleration structures.-pattern ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR    = AccelerationStructureTypeKHR 0+pattern ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = AccelerationStructureTypeKHR 0+ -- | 'ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR' is a bottom-level -- acceleration structure containing the AABBs or geometry to be -- intersected. pattern ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = AccelerationStructureTypeKHR 1+ -- | 'ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR' is an acceleration structure -- whose type is determined at build time used for special circumstances. -- In these cases, the acceleration structure type is not known at creation -- time, but /must/ be specified at build time as either top or bottom.-pattern ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR      = AccelerationStructureTypeKHR 2-{-# complete ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,-             ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,-             ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR :: AccelerationStructureTypeKHR #-}+pattern ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = AccelerationStructureTypeKHR 2 +{-# COMPLETE+  ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR+  , ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR+  , ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR ::+    AccelerationStructureTypeKHR+  #-}+ conNameAccelerationStructureTypeKHR :: String conNameAccelerationStructureTypeKHR = "AccelerationStructureTypeKHR" @@ -7264,24 +7568,36 @@  showTableAccelerationStructureTypeKHR :: [(AccelerationStructureTypeKHR, String)] showTableAccelerationStructureTypeKHR =-  [ (ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR   , "TOP_LEVEL_KHR")-  , (ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, "BOTTOM_LEVEL_KHR")-  , (ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR     , "GENERIC_KHR")+  [+    ( ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR+    , "TOP_LEVEL_KHR"+    )+  ,+    ( ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR+    , "BOTTOM_LEVEL_KHR"+    )+  ,+    ( ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR+    , "GENERIC_KHR"+    )   ]  instance Show AccelerationStructureTypeKHR where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureTypeKHR-                            showTableAccelerationStructureTypeKHR-                            conNameAccelerationStructureTypeKHR-                            (\(AccelerationStructureTypeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureTypeKHR+      showTableAccelerationStructureTypeKHR+      conNameAccelerationStructureTypeKHR+      (\(AccelerationStructureTypeKHR x) -> x)+      (showsPrec 11)  instance Read AccelerationStructureTypeKHR where-  readPrec = enumReadPrec enumPrefixAccelerationStructureTypeKHR-                          showTableAccelerationStructureTypeKHR-                          conNameAccelerationStructureTypeKHR-                          AccelerationStructureTypeKHR-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureTypeKHR+      showTableAccelerationStructureTypeKHR+      conNameAccelerationStructureTypeKHR+      AccelerationStructureTypeKHR  -- | VkGeometryTypeKHR - Enum specifying which type of geometry is provided --@@ -7297,16 +7613,22 @@ -- | 'GEOMETRY_TYPE_TRIANGLES_KHR' specifies a geometry type consisting of -- triangles. pattern GEOMETRY_TYPE_TRIANGLES_KHR = GeometryTypeKHR 0+ -- | 'GEOMETRY_TYPE_AABBS_KHR' specifies a geometry type consisting of -- axis-aligned bounding boxes.-pattern GEOMETRY_TYPE_AABBS_KHR     = GeometryTypeKHR 1+pattern GEOMETRY_TYPE_AABBS_KHR = GeometryTypeKHR 1+ -- | 'GEOMETRY_TYPE_INSTANCES_KHR' specifies a geometry type consisting of -- acceleration structure instances. pattern GEOMETRY_TYPE_INSTANCES_KHR = GeometryTypeKHR 2-{-# complete GEOMETRY_TYPE_TRIANGLES_KHR,-             GEOMETRY_TYPE_AABBS_KHR,-             GEOMETRY_TYPE_INSTANCES_KHR :: GeometryTypeKHR #-} +{-# COMPLETE+  GEOMETRY_TYPE_TRIANGLES_KHR+  , GEOMETRY_TYPE_AABBS_KHR+  , GEOMETRY_TYPE_INSTANCES_KHR ::+    GeometryTypeKHR+  #-}+ conNameGeometryTypeKHR :: String conNameGeometryTypeKHR = "GeometryTypeKHR" @@ -7316,44 +7638,57 @@ showTableGeometryTypeKHR :: [(GeometryTypeKHR, String)] showTableGeometryTypeKHR =   [ (GEOMETRY_TYPE_TRIANGLES_KHR, "TRIANGLES_KHR")-  , (GEOMETRY_TYPE_AABBS_KHR    , "AABBS_KHR")+  , (GEOMETRY_TYPE_AABBS_KHR, "AABBS_KHR")   , (GEOMETRY_TYPE_INSTANCES_KHR, "INSTANCES_KHR")   ]  instance Show GeometryTypeKHR where-  showsPrec = enumShowsPrec enumPrefixGeometryTypeKHR-                            showTableGeometryTypeKHR-                            conNameGeometryTypeKHR-                            (\(GeometryTypeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixGeometryTypeKHR+      showTableGeometryTypeKHR+      conNameGeometryTypeKHR+      (\(GeometryTypeKHR x) -> x)+      (showsPrec 11)  instance Read GeometryTypeKHR where-  readPrec = enumReadPrec enumPrefixGeometryTypeKHR showTableGeometryTypeKHR conNameGeometryTypeKHR GeometryTypeKHR-+  readPrec =+    enumReadPrec+      enumPrefixGeometryTypeKHR+      showTableGeometryTypeKHR+      conNameGeometryTypeKHR+      GeometryTypeKHR  -- | VkAccelerationStructureBuildTypeKHR - Acceleration structure build type -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>,--- 'getAccelerationStructureBuildSizesKHR'+-- 'getAccelerationStructureBuildSizesKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getMicromapBuildSizesEXT' newtype AccelerationStructureBuildTypeKHR = AccelerationStructureBuildTypeKHR Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR' requests the memory -- requirement for operations performed by the host.-pattern ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR           = AccelerationStructureBuildTypeKHR 0+pattern ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = AccelerationStructureBuildTypeKHR 0+ -- | 'ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR' requests the memory -- requirement for operations performed by the device.-pattern ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR         = AccelerationStructureBuildTypeKHR 1+pattern ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = AccelerationStructureBuildTypeKHR 1+ -- | 'ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR' requests the -- memory requirement for operations performed by either the host, or the -- device. pattern ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = AccelerationStructureBuildTypeKHR 2-{-# complete ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR,-             ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR,-             ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR :: AccelerationStructureBuildTypeKHR #-} +{-# COMPLETE+  ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR+  , ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR+  , ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR ::+    AccelerationStructureBuildTypeKHR+  #-}+ conNameAccelerationStructureBuildTypeKHR :: String conNameAccelerationStructureBuildTypeKHR = "AccelerationStructureBuildTypeKHR" @@ -7362,24 +7697,36 @@  showTableAccelerationStructureBuildTypeKHR :: [(AccelerationStructureBuildTypeKHR, String)] showTableAccelerationStructureBuildTypeKHR =-  [ (ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR          , "HOST_KHR")-  , (ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR        , "DEVICE_KHR")-  , (ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR, "HOST_OR_DEVICE_KHR")+  [+    ( ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR+    , "HOST_KHR"+    )+  ,+    ( ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR+    , "DEVICE_KHR"+    )+  ,+    ( ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR+    , "HOST_OR_DEVICE_KHR"+    )   ]  instance Show AccelerationStructureBuildTypeKHR where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureBuildTypeKHR-                            showTableAccelerationStructureBuildTypeKHR-                            conNameAccelerationStructureBuildTypeKHR-                            (\(AccelerationStructureBuildTypeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureBuildTypeKHR+      showTableAccelerationStructureBuildTypeKHR+      conNameAccelerationStructureBuildTypeKHR+      (\(AccelerationStructureBuildTypeKHR x) -> x)+      (showsPrec 11)  instance Read AccelerationStructureBuildTypeKHR where-  readPrec = enumReadPrec enumPrefixAccelerationStructureBuildTypeKHR-                          showTableAccelerationStructureBuildTypeKHR-                          conNameAccelerationStructureBuildTypeKHR-                          AccelerationStructureBuildTypeKHR-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureBuildTypeKHR+      showTableAccelerationStructureBuildTypeKHR+      conNameAccelerationStructureBuildTypeKHR+      AccelerationStructureBuildTypeKHR  -- | VkAccelerationStructureCompatibilityKHR - Acceleration structure -- compatibility@@ -7387,21 +7734,27 @@ -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_acceleration_structure VK_KHR_acceleration_structure>,--- 'getDeviceAccelerationStructureCompatibilityKHR'+-- 'getDeviceAccelerationStructureCompatibilityKHR',+-- 'Vulkan.Extensions.VK_EXT_opacity_micromap.getDeviceMicromapCompatibilityEXT' newtype AccelerationStructureCompatibilityKHR = AccelerationStructureCompatibilityKHR Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR' if the -- @pVersionData@ version acceleration structure is compatible with -- @device@.-pattern ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR   = AccelerationStructureCompatibilityKHR 0+pattern ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = AccelerationStructureCompatibilityKHR 0+ -- | 'ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR' if the -- @pVersionData@ version acceleration structure is not compatible with -- @device@. pattern ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = AccelerationStructureCompatibilityKHR 1-{-# complete ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR,-             ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR :: AccelerationStructureCompatibilityKHR #-} +{-# COMPLETE+  ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR+  , ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR ::+    AccelerationStructureCompatibilityKHR+  #-}+ conNameAccelerationStructureCompatibilityKHR :: String conNameAccelerationStructureCompatibilityKHR = "AccelerationStructureCompatibilityKHR" @@ -7410,23 +7763,32 @@  showTableAccelerationStructureCompatibilityKHR :: [(AccelerationStructureCompatibilityKHR, String)] showTableAccelerationStructureCompatibilityKHR =-  [ (ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR  , "COMPATIBLE_KHR")-  , (ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR, "INCOMPATIBLE_KHR")+  [+    ( ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR+    , "COMPATIBLE_KHR"+    )+  ,+    ( ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR+    , "INCOMPATIBLE_KHR"+    )   ]  instance Show AccelerationStructureCompatibilityKHR where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureCompatibilityKHR-                            showTableAccelerationStructureCompatibilityKHR-                            conNameAccelerationStructureCompatibilityKHR-                            (\(AccelerationStructureCompatibilityKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureCompatibilityKHR+      showTableAccelerationStructureCompatibilityKHR+      conNameAccelerationStructureCompatibilityKHR+      (\(AccelerationStructureCompatibilityKHR x) -> x)+      (showsPrec 11)  instance Read AccelerationStructureCompatibilityKHR where-  readPrec = enumReadPrec enumPrefixAccelerationStructureCompatibilityKHR-                          showTableAccelerationStructureCompatibilityKHR-                          conNameAccelerationStructureCompatibilityKHR-                          AccelerationStructureCompatibilityKHR-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureCompatibilityKHR+      showTableAccelerationStructureCompatibilityKHR+      conNameAccelerationStructureCompatibilityKHR+      AccelerationStructureCompatibilityKHR  type KHR_ACCELERATION_STRUCTURE_SPEC_VERSION = 13 
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs-boot view
@@ -1227,10 +1227,12 @@ type role AccelerationStructureCreateInfoKHR nominal data AccelerationStructureCreateInfoKHR (es :: [Type]) -instance (Extendss AccelerationStructureCreateInfoKHR es, PokeChain es) => ToCStruct (AccelerationStructureCreateInfoKHR es)+instance ( Extendss AccelerationStructureCreateInfoKHR es+         , PokeChain es ) => ToCStruct (AccelerationStructureCreateInfoKHR es) instance Show (Chain es) => Show (AccelerationStructureCreateInfoKHR es) -instance (Extendss AccelerationStructureCreateInfoKHR es, PeekChain es) => FromCStruct (AccelerationStructureCreateInfoKHR es)+instance ( Extendss AccelerationStructureCreateInfoKHR es+         , PeekChain es ) => FromCStruct (AccelerationStructureCreateInfoKHR es)   data AccelerationStructureDeviceAddressInfoKHR@@ -1262,7 +1264,8 @@ type role AccelerationStructureGeometryTrianglesDataKHR nominal data AccelerationStructureGeometryTrianglesDataKHR (es :: [Type]) -instance (Extendss AccelerationStructureGeometryTrianglesDataKHR es, PokeChain es) => ToCStruct (AccelerationStructureGeometryTrianglesDataKHR es)+instance ( Extendss AccelerationStructureGeometryTrianglesDataKHR es+         , PokeChain es ) => ToCStruct (AccelerationStructureGeometryTrianglesDataKHR es) instance Show (Chain es) => Show (AccelerationStructureGeometryTrianglesDataKHR es)  
src/Vulkan/Extensions/VK_KHR_android_surface.hs view
@@ -325,7 +325,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateAndroidSurfaceKHR" (vkCreateAndroidSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateAndroidSurfaceKHR" (vkCreateAndroidSurfaceKHR'+                                                              (instanceHandle (instance'))+                                                              pCreateInfo+                                                              pAllocator+                                                              (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -410,8 +414,6 @@ newtype AndroidSurfaceCreateFlagsKHR = AndroidSurfaceCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameAndroidSurfaceCreateFlagsKHR :: String conNameAndroidSurfaceCreateFlagsKHR = "AndroidSurfaceCreateFlagsKHR" @@ -422,18 +424,21 @@ showTableAndroidSurfaceCreateFlagsKHR = []  instance Show AndroidSurfaceCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixAndroidSurfaceCreateFlagsKHR-                            showTableAndroidSurfaceCreateFlagsKHR-                            conNameAndroidSurfaceCreateFlagsKHR-                            (\(AndroidSurfaceCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAndroidSurfaceCreateFlagsKHR+      showTableAndroidSurfaceCreateFlagsKHR+      conNameAndroidSurfaceCreateFlagsKHR+      (\(AndroidSurfaceCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AndroidSurfaceCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixAndroidSurfaceCreateFlagsKHR-                          showTableAndroidSurfaceCreateFlagsKHR-                          conNameAndroidSurfaceCreateFlagsKHR-                          AndroidSurfaceCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixAndroidSurfaceCreateFlagsKHR+      showTableAndroidSurfaceCreateFlagsKHR+      conNameAndroidSurfaceCreateFlagsKHR+      AndroidSurfaceCreateFlagsKHR  type KHR_ANDROID_SURFACE_SPEC_VERSION = 6 
src/Vulkan/Extensions/VK_KHR_deferred_host_operations.hs view
@@ -376,7 +376,10 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPDeferredOperation <- ContT $ bracket (callocBytes @DeferredOperationKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateDeferredOperationKHR" (vkCreateDeferredOperationKHR' (deviceHandle (device)) pAllocator (pPDeferredOperation))+  r <- lift $ traceAroundEvent "vkCreateDeferredOperationKHR" (vkCreateDeferredOperationKHR'+                                                                 (deviceHandle (device))+                                                                 pAllocator+                                                                 (pPDeferredOperation))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDeferredOperation <- lift $ peek @DeferredOperationKHR pPDeferredOperation   pure $ (pDeferredOperation)@@ -466,7 +469,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyDeferredOperationKHR" (vkDestroyDeferredOperationKHR' (deviceHandle (device)) (operation) pAllocator)+  lift $ traceAroundEvent "vkDestroyDeferredOperationKHR" (vkDestroyDeferredOperationKHR'+                                                             (deviceHandle (device))+                                                             (operation)+                                                             pAllocator)   pure $ ()  @@ -548,7 +554,9 @@   unless (vkGetDeferredOperationMaxConcurrencyKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeferredOperationMaxConcurrencyKHR is null" Nothing Nothing   let vkGetDeferredOperationMaxConcurrencyKHR' = mkVkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHRPtr-  r <- traceAroundEvent "vkGetDeferredOperationMaxConcurrencyKHR" (vkGetDeferredOperationMaxConcurrencyKHR' (deviceHandle (device)) (operation))+  r <- traceAroundEvent "vkGetDeferredOperationMaxConcurrencyKHR" (vkGetDeferredOperationMaxConcurrencyKHR'+                                                                     (deviceHandle (device))+                                                                     (operation))   pure $ (r)  @@ -611,7 +619,9 @@   unless (vkGetDeferredOperationResultKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeferredOperationResultKHR is null" Nothing Nothing   let vkGetDeferredOperationResultKHR' = mkVkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHRPtr-  r <- traceAroundEvent "vkGetDeferredOperationResultKHR" (vkGetDeferredOperationResultKHR' (deviceHandle (device)) (operation))+  r <- traceAroundEvent "vkGetDeferredOperationResultKHR" (vkGetDeferredOperationResultKHR'+                                                             (deviceHandle (device))+                                                             (operation))   pure $ (r)  @@ -713,7 +723,9 @@   unless (vkDeferredOperationJoinKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDeferredOperationJoinKHR is null" Nothing Nothing   let vkDeferredOperationJoinKHR' = mkVkDeferredOperationJoinKHR vkDeferredOperationJoinKHRPtr-  r <- traceAroundEvent "vkDeferredOperationJoinKHR" (vkDeferredOperationJoinKHR' (deviceHandle (device)) (operation))+  r <- traceAroundEvent "vkDeferredOperationJoinKHR" (vkDeferredOperationJoinKHR'+                                                        (deviceHandle (device))+                                                        (operation))   when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) 
src/Vulkan/Extensions/VK_KHR_display.hs view
@@ -709,12 +709,18 @@   let vkGetPhysicalDeviceDisplayPropertiesKHR' = mkVkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPropertiesKHR" (vkGetPhysicalDeviceDisplayPropertiesKHR' physicalDevice' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPropertiesKHR" (vkGetPhysicalDeviceDisplayPropertiesKHR'+                                                                            physicalDevice'+                                                                            (pPPropertyCount)+                                                                            (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @DisplayPropertiesKHR ((fromIntegral (pPropertyCount)) * 48)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 48) :: Ptr DisplayPropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPropertiesKHR" (vkGetPhysicalDeviceDisplayPropertiesKHR' physicalDevice' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPropertiesKHR" (vkGetPhysicalDeviceDisplayPropertiesKHR'+                                                                             physicalDevice'+                                                                             (pPPropertyCount)+                                                                             ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayPropertiesKHR (((pPProperties) `advancePtrBytes` (48 * (i)) :: Ptr DisplayPropertiesKHR)))@@ -787,12 +793,18 @@   let vkGetPhysicalDeviceDisplayPlanePropertiesKHR' = mkVkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" (vkGetPhysicalDeviceDisplayPlanePropertiesKHR' physicalDevice' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" (vkGetPhysicalDeviceDisplayPlanePropertiesKHR'+                                                                                 physicalDevice'+                                                                                 (pPPropertyCount)+                                                                                 (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @DisplayPlanePropertiesKHR ((fromIntegral (pPropertyCount)) * 16)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 16) :: Ptr DisplayPlanePropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" (vkGetPhysicalDeviceDisplayPlanePropertiesKHR' physicalDevice' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" (vkGetPhysicalDeviceDisplayPlanePropertiesKHR'+                                                                                  physicalDevice'+                                                                                  (pPPropertyCount)+                                                                                  ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayPlanePropertiesKHR (((pPProperties) `advancePtrBytes` (16 * (i)) :: Ptr DisplayPlanePropertiesKHR)))@@ -871,18 +883,27 @@                                        -- /must/ be in the range [0, physical device plane count - 1].                                        ("planeIndex" ::: Word32)                                     -> io (Result, ("displays" ::: Vector DisplayKHR))-getDisplayPlaneSupportedDisplaysKHR physicalDevice planeIndex = liftIO . evalContT $ do+getDisplayPlaneSupportedDisplaysKHR physicalDevice+                                      planeIndex = liftIO . evalContT $ do   let vkGetDisplayPlaneSupportedDisplaysKHRPtr = pVkGetDisplayPlaneSupportedDisplaysKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetDisplayPlaneSupportedDisplaysKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDisplayPlaneSupportedDisplaysKHR is null" Nothing Nothing   let vkGetDisplayPlaneSupportedDisplaysKHR' = mkVkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPDisplayCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetDisplayPlaneSupportedDisplaysKHR" (vkGetDisplayPlaneSupportedDisplaysKHR' physicalDevice' (planeIndex) (pPDisplayCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetDisplayPlaneSupportedDisplaysKHR" (vkGetDisplayPlaneSupportedDisplaysKHR'+                                                                          physicalDevice'+                                                                          (planeIndex)+                                                                          (pPDisplayCount)+                                                                          (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDisplayCount <- lift $ peek @Word32 pPDisplayCount   pPDisplays <- ContT $ bracket (callocBytes @DisplayKHR ((fromIntegral (pDisplayCount)) * 8)) free-  r' <- lift $ traceAroundEvent "vkGetDisplayPlaneSupportedDisplaysKHR" (vkGetDisplayPlaneSupportedDisplaysKHR' physicalDevice' (planeIndex) (pPDisplayCount) (pPDisplays))+  r' <- lift $ traceAroundEvent "vkGetDisplayPlaneSupportedDisplaysKHR" (vkGetDisplayPlaneSupportedDisplaysKHR'+                                                                           physicalDevice'+                                                                           (planeIndex)+                                                                           (pPDisplayCount)+                                                                           (pPDisplays))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pDisplayCount' <- lift $ peek @Word32 pPDisplayCount   pDisplays' <- lift $ generateM (fromIntegral (pDisplayCount')) (\i -> peek @DisplayKHR ((pPDisplays `advancePtrBytes` (8 * (i)) :: Ptr DisplayKHR)))@@ -966,12 +987,20 @@   let vkGetDisplayModePropertiesKHR' = mkVkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetDisplayModePropertiesKHR" (vkGetDisplayModePropertiesKHR' physicalDevice' (display) (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetDisplayModePropertiesKHR" (vkGetDisplayModePropertiesKHR'+                                                                  physicalDevice'+                                                                  (display)+                                                                  (pPPropertyCount)+                                                                  (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @DisplayModePropertiesKHR ((fromIntegral (pPropertyCount)) * 24)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 24) :: Ptr DisplayModePropertiesKHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetDisplayModePropertiesKHR" (vkGetDisplayModePropertiesKHR' physicalDevice' (display) (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetDisplayModePropertiesKHR" (vkGetDisplayModePropertiesKHR'+                                                                   physicalDevice'+                                                                   (display)+                                                                   (pPPropertyCount)+                                                                   ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayModePropertiesKHR (((pPProperties) `advancePtrBytes` (24 * (i)) :: Ptr DisplayModePropertiesKHR)))@@ -1050,7 +1079,10 @@                         -- <https://registry.khronos.org/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+createDisplayModeKHR physicalDevice+                       display+                       createInfo+                       allocator = liftIO . evalContT $ do   let vkCreateDisplayModeKHRPtr = pVkCreateDisplayModeKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateDisplayModeKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDisplayModeKHR is null" Nothing Nothing@@ -1060,7 +1092,12 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPMode <- ContT $ bracket (callocBytes @DisplayModeKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateDisplayModeKHR" (vkCreateDisplayModeKHR' (physicalDeviceHandle (physicalDevice)) (display) pCreateInfo pAllocator (pPMode))+  r <- lift $ traceAroundEvent "vkCreateDisplayModeKHR" (vkCreateDisplayModeKHR'+                                                           (physicalDeviceHandle (physicalDevice))+                                                           (display)+                                                           pCreateInfo+                                                           pAllocator+                                                           (pPMode))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMode <- lift $ peek @DisplayModeKHR pPMode   pure $ (pMode)@@ -1124,13 +1161,19 @@                                   -- device.                                   ("planeIndex" ::: Word32)                                -> io (DisplayPlaneCapabilitiesKHR)-getDisplayPlaneCapabilitiesKHR physicalDevice mode planeIndex = liftIO . evalContT $ do+getDisplayPlaneCapabilitiesKHR physicalDevice+                                 mode+                                 planeIndex = liftIO . evalContT $ do   let vkGetDisplayPlaneCapabilitiesKHRPtr = pVkGetDisplayPlaneCapabilitiesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetDisplayPlaneCapabilitiesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDisplayPlaneCapabilitiesKHR is null" Nothing Nothing   let vkGetDisplayPlaneCapabilitiesKHR' = mkVkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHRPtr   pPCapabilities <- ContT (withZeroCStruct @DisplayPlaneCapabilitiesKHR)-  r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilitiesKHR" (vkGetDisplayPlaneCapabilitiesKHR' (physicalDeviceHandle (physicalDevice)) (mode) (planeIndex) (pPCapabilities))+  r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilitiesKHR" (vkGetDisplayPlaneCapabilitiesKHR'+                                                                     (physicalDeviceHandle (physicalDevice))+                                                                     (mode)+                                                                     (planeIndex)+                                                                     (pPCapabilities))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCapabilities <- lift $ peekCStruct @DisplayPlaneCapabilitiesKHR pPCapabilities   pure $ (pCapabilities)@@ -1197,7 +1240,9 @@                                 -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>).                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (SurfaceKHR)-createDisplayPlaneSurfaceKHR instance' createInfo allocator = liftIO . evalContT $ do+createDisplayPlaneSurfaceKHR instance'+                               createInfo+                               allocator = liftIO . evalContT $ do   let vkCreateDisplayPlaneSurfaceKHRPtr = pVkCreateDisplayPlaneSurfaceKHR (case instance' of Instance{instanceCmds} -> instanceCmds)   lift $ unless (vkCreateDisplayPlaneSurfaceKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateDisplayPlaneSurfaceKHR is null" Nothing Nothing@@ -1207,7 +1252,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateDisplayPlaneSurfaceKHR" (vkCreateDisplayPlaneSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateDisplayPlaneSurfaceKHR" (vkCreateDisplayPlaneSurfaceKHR'+                                                                   (instanceHandle (instance'))+                                                                   pCreateInfo+                                                                   pAllocator+                                                                   (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -1309,7 +1358,13 @@     planeReorderPossible <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))     persistentContent <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))     pure $ DisplayPropertiesKHR-             display displayName physicalDimensions physicalResolution supportedTransforms (bool32ToBool planeReorderPossible) (bool32ToBool persistentContent)+             display+             displayName+             physicalDimensions+             physicalResolution+             supportedTransforms+             (bool32ToBool planeReorderPossible)+             (bool32ToBool persistentContent)  instance Zero DisplayPropertiesKHR where   zero = DisplayPropertiesKHR@@ -1693,7 +1748,15 @@     minDstExtent <- peekCStruct @Extent2D ((p `plusPtr` 52 :: Ptr Extent2D))     maxDstExtent <- peekCStruct @Extent2D ((p `plusPtr` 60 :: Ptr Extent2D))     pure $ DisplayPlaneCapabilitiesKHR-             supportedAlpha minSrcPosition maxSrcPosition minSrcExtent maxSrcExtent minDstPosition maxDstPosition minDstExtent maxDstExtent+             supportedAlpha+             minSrcPosition+             maxSrcPosition+             minSrcExtent+             maxSrcExtent+             minDstPosition+             maxDstPosition+             minDstExtent+             maxDstExtent  instance Storable DisplayPlaneCapabilitiesKHR where   sizeOf ~_ = 68@@ -1865,7 +1928,14 @@     alphaMode <- peek @DisplayPlaneAlphaFlagBitsKHR ((p `plusPtr` 48 :: Ptr DisplayPlaneAlphaFlagBitsKHR))     imageExtent <- peekCStruct @Extent2D ((p `plusPtr` 52 :: Ptr Extent2D))     pure $ DisplaySurfaceCreateInfoKHR-             flags displayMode planeIndex planeStackIndex transform (coerce @CFloat @Float globalAlpha) alphaMode imageExtent+             flags+             displayMode+             planeIndex+             planeStackIndex+             transform+             (coerce @CFloat @Float globalAlpha)+             alphaMode+             imageExtent  instance Storable DisplaySurfaceCreateInfoKHR where   sizeOf ~_ = 64@@ -1899,8 +1969,6 @@ newtype DisplayModeCreateFlagsKHR = DisplayModeCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDisplayModeCreateFlagsKHR :: String conNameDisplayModeCreateFlagsKHR = "DisplayModeCreateFlagsKHR" @@ -1911,18 +1979,21 @@ showTableDisplayModeCreateFlagsKHR = []  instance Show DisplayModeCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixDisplayModeCreateFlagsKHR-                            showTableDisplayModeCreateFlagsKHR-                            conNameDisplayModeCreateFlagsKHR-                            (\(DisplayModeCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDisplayModeCreateFlagsKHR+      showTableDisplayModeCreateFlagsKHR+      conNameDisplayModeCreateFlagsKHR+      (\(DisplayModeCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DisplayModeCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixDisplayModeCreateFlagsKHR-                          showTableDisplayModeCreateFlagsKHR-                          conNameDisplayModeCreateFlagsKHR-                          DisplayModeCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixDisplayModeCreateFlagsKHR+      showTableDisplayModeCreateFlagsKHR+      conNameDisplayModeCreateFlagsKHR+      DisplayModeCreateFlagsKHR  -- | VkDisplaySurfaceCreateFlagsKHR - Reserved for future use --@@ -1938,8 +2009,6 @@ newtype DisplaySurfaceCreateFlagsKHR = DisplaySurfaceCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameDisplaySurfaceCreateFlagsKHR :: String conNameDisplaySurfaceCreateFlagsKHR = "DisplaySurfaceCreateFlagsKHR" @@ -1950,18 +2019,21 @@ showTableDisplaySurfaceCreateFlagsKHR = []  instance Show DisplaySurfaceCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixDisplaySurfaceCreateFlagsKHR-                            showTableDisplaySurfaceCreateFlagsKHR-                            conNameDisplaySurfaceCreateFlagsKHR-                            (\(DisplaySurfaceCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDisplaySurfaceCreateFlagsKHR+      showTableDisplaySurfaceCreateFlagsKHR+      conNameDisplaySurfaceCreateFlagsKHR+      (\(DisplaySurfaceCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DisplaySurfaceCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixDisplaySurfaceCreateFlagsKHR-                          showTableDisplaySurfaceCreateFlagsKHR-                          conNameDisplaySurfaceCreateFlagsKHR-                          DisplaySurfaceCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixDisplaySurfaceCreateFlagsKHR+      showTableDisplaySurfaceCreateFlagsKHR+      conNameDisplaySurfaceCreateFlagsKHR+      DisplaySurfaceCreateFlagsKHR  type DisplayPlaneAlphaFlagsKHR = DisplayPlaneAlphaFlagBitsKHR @@ -1976,17 +2048,20 @@  -- | 'DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR' specifies that the source image -- will be treated as opaque.-pattern DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                  = DisplayPlaneAlphaFlagBitsKHR 0x00000001+pattern DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = DisplayPlaneAlphaFlagBitsKHR 0x00000001+ -- | 'DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR' specifies that a global alpha value -- /must/ be specified that will be applied to all pixels in the source -- image.-pattern DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                  = DisplayPlaneAlphaFlagBitsKHR 0x00000002+pattern DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = DisplayPlaneAlphaFlagBitsKHR 0x00000002+ -- | 'DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR' specifies that the alpha value -- will be determined by the alpha component of the source image’s pixels. -- If the source format contains no alpha values, no blending will be -- applied. The source alpha values are not premultiplied into the source -- image’s other color components.-pattern DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR               = DisplayPlaneAlphaFlagBitsKHR 0x00000004+pattern DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = DisplayPlaneAlphaFlagBitsKHR 0x00000004+ -- | 'DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR' is equivalent to -- 'DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR', except the source alpha values -- are assumed to be premultiplied into the source image’s other color@@ -2001,25 +2076,40 @@  showTableDisplayPlaneAlphaFlagBitsKHR :: [(DisplayPlaneAlphaFlagBitsKHR, String)] showTableDisplayPlaneAlphaFlagBitsKHR =-  [ (DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR                 , "OPAQUE_BIT_KHR")-  , (DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR                 , "GLOBAL_BIT_KHR")-  , (DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR              , "PER_PIXEL_BIT_KHR")-  , (DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR, "PER_PIXEL_PREMULTIPLIED_BIT_KHR")+  [+    ( DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR+    , "OPAQUE_BIT_KHR"+    )+  ,+    ( DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR+    , "GLOBAL_BIT_KHR"+    )+  ,+    ( DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR+    , "PER_PIXEL_BIT_KHR"+    )+  ,+    ( DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR+    , "PER_PIXEL_PREMULTIPLIED_BIT_KHR"+    )   ]  instance Show DisplayPlaneAlphaFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixDisplayPlaneAlphaFlagBitsKHR-                            showTableDisplayPlaneAlphaFlagBitsKHR-                            conNameDisplayPlaneAlphaFlagBitsKHR-                            (\(DisplayPlaneAlphaFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDisplayPlaneAlphaFlagBitsKHR+      showTableDisplayPlaneAlphaFlagBitsKHR+      conNameDisplayPlaneAlphaFlagBitsKHR+      (\(DisplayPlaneAlphaFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DisplayPlaneAlphaFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixDisplayPlaneAlphaFlagBitsKHR-                          showTableDisplayPlaneAlphaFlagBitsKHR-                          conNameDisplayPlaneAlphaFlagBitsKHR-                          DisplayPlaneAlphaFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixDisplayPlaneAlphaFlagBitsKHR+      showTableDisplayPlaneAlphaFlagBitsKHR+      conNameDisplayPlaneAlphaFlagBitsKHR+      DisplayPlaneAlphaFlagBitsKHR  type KHR_DISPLAY_SPEC_VERSION = 23 
src/Vulkan/Extensions/VK_KHR_display_swapchain.hs view
@@ -409,7 +409,12 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSwapchains <- ContT $ bracket (callocBytes @SwapchainKHR ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free-  r <- lift $ traceAroundEvent "vkCreateSharedSwapchainsKHR" (vkCreateSharedSwapchainsKHR' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPSwapchains))+  r <- lift $ traceAroundEvent "vkCreateSharedSwapchainsKHR" (vkCreateSharedSwapchainsKHR'+                                                                (deviceHandle (device))+                                                                ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))+                                                                (forgetExtensions (pPCreateInfos))+                                                                pAllocator+                                                                (pPSwapchains))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSwapchains <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @SwapchainKHR ((pPSwapchains `advancePtrBytes` (8 * (i)) :: Ptr SwapchainKHR)))   pure $ (pSwapchains)
src/Vulkan/Extensions/VK_KHR_dynamic_rendering.hs view
@@ -826,7 +826,8 @@     perViewAttributes <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     perViewAttributesPositionXOnly <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ MultiviewPerViewAttributesInfoNVX-             (bool32ToBool perViewAttributes) (bool32ToBool perViewAttributesPositionXOnly)+             (bool32ToBool perViewAttributes)+             (bool32ToBool perViewAttributesPositionXOnly)  instance Storable MultiviewPerViewAttributesInfoNVX where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_KHR_external_fence_fd.hs view
@@ -243,7 +243,10 @@   let vkGetFenceFdKHR' = mkVkGetFenceFdKHR vkGetFenceFdKHRPtr   pGetFdInfo <- ContT $ withCStruct (getFdInfo)   pPFd <- ContT $ bracket (callocBytes @CInt 4) free-  r <- lift $ traceAroundEvent "vkGetFenceFdKHR" (vkGetFenceFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd))+  r <- lift $ traceAroundEvent "vkGetFenceFdKHR" (vkGetFenceFdKHR'+                                                    (deviceHandle (device))+                                                    pGetFdInfo+                                                    (pPFd))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFd <- lift $ peek @CInt pPFd   pure $ ((coerce @CInt @Int32 pFd))@@ -306,7 +309,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportFenceFdKHR is null" Nothing Nothing   let vkImportFenceFdKHR' = mkVkImportFenceFdKHR vkImportFenceFdKHRPtr   pImportFenceFdInfo <- ContT $ withCStruct (importFenceFdInfo)-  r <- lift $ traceAroundEvent "vkImportFenceFdKHR" (vkImportFenceFdKHR' (deviceHandle (device)) pImportFenceFdInfo)+  r <- lift $ traceAroundEvent "vkImportFenceFdKHR" (vkImportFenceFdKHR'+                                                       (deviceHandle (device))+                                                       pImportFenceFdInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Extensions/VK_KHR_external_fence_win32.hs view
@@ -255,7 +255,10 @@   let vkGetFenceWin32HandleKHR' = mkVkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHRPtr   pGetWin32HandleInfo <- ContT $ withCStruct (getWin32HandleInfo)   pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free-  r <- lift $ traceAroundEvent "vkGetFenceWin32HandleKHR" (vkGetFenceWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle))+  r <- lift $ traceAroundEvent "vkGetFenceWin32HandleKHR" (vkGetFenceWin32HandleKHR'+                                                             (deviceHandle (device))+                                                             pGetWin32HandleInfo+                                                             (pPHandle))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pHandle <- lift $ peek @HANDLE pPHandle   pure $ (pHandle)@@ -313,13 +316,16 @@                              -- 'ImportFenceWin32HandleInfoKHR' structure                              ImportFenceWin32HandleInfoKHR                           -> io ()-importFenceWin32HandleKHR device importFenceWin32HandleInfo = liftIO . evalContT $ do+importFenceWin32HandleKHR device+                            importFenceWin32HandleInfo = liftIO . evalContT $ do   let vkImportFenceWin32HandleKHRPtr = pVkImportFenceWin32HandleKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkImportFenceWin32HandleKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportFenceWin32HandleKHR is null" Nothing Nothing   let vkImportFenceWin32HandleKHR' = mkVkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHRPtr   pImportFenceWin32HandleInfo <- ContT $ withCStruct (importFenceWin32HandleInfo)-  r <- lift $ traceAroundEvent "vkImportFenceWin32HandleKHR" (vkImportFenceWin32HandleKHR' (deviceHandle (device)) pImportFenceWin32HandleInfo)+  r <- lift $ traceAroundEvent "vkImportFenceWin32HandleKHR" (vkImportFenceWin32HandleKHR'+                                                                (deviceHandle (device))+                                                                pImportFenceWin32HandleInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Extensions/VK_KHR_external_memory_fd.hs view
@@ -252,7 +252,10 @@   let vkGetMemoryFdKHR' = mkVkGetMemoryFdKHR vkGetMemoryFdKHRPtr   pGetFdInfo <- ContT $ withCStruct (getFdInfo)   pPFd <- ContT $ bracket (callocBytes @CInt 4) free-  r <- lift $ traceAroundEvent "vkGetMemoryFdKHR" (vkGetMemoryFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd))+  r <- lift $ traceAroundEvent "vkGetMemoryFdKHR" (vkGetMemoryFdKHR'+                                                     (deviceHandle (device))+                                                     pGetFdInfo+                                                     (pPFd))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFd <- lift $ peek @CInt pPFd   pure $ ((coerce @CInt @Int32 pFd))@@ -318,7 +321,11 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryFdPropertiesKHR is null" Nothing Nothing   let vkGetMemoryFdPropertiesKHR' = mkVkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHRPtr   pPMemoryFdProperties <- ContT (withZeroCStruct @MemoryFdPropertiesKHR)-  r <- lift $ traceAroundEvent "vkGetMemoryFdPropertiesKHR" (vkGetMemoryFdPropertiesKHR' (deviceHandle (device)) (handleType) (CInt (fd)) (pPMemoryFdProperties))+  r <- lift $ traceAroundEvent "vkGetMemoryFdPropertiesKHR" (vkGetMemoryFdPropertiesKHR'+                                                               (deviceHandle (device))+                                                               (handleType)+                                                               (CInt (fd))+                                                               (pPMemoryFdProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMemoryFdProperties <- lift $ peekCStruct @MemoryFdPropertiesKHR pPMemoryFdProperties   pure $ (pMemoryFdProperties)
src/Vulkan/Extensions/VK_KHR_external_memory_win32.hs view
@@ -273,7 +273,10 @@   let vkGetMemoryWin32HandleKHR' = mkVkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHRPtr   pGetWin32HandleInfo <- ContT $ withCStruct (getWin32HandleInfo)   pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free-  r <- lift $ traceAroundEvent "vkGetMemoryWin32HandleKHR" (vkGetMemoryWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle))+  r <- lift $ traceAroundEvent "vkGetMemoryWin32HandleKHR" (vkGetMemoryWin32HandleKHR'+                                                              (deviceHandle (device))+                                                              pGetWin32HandleInfo+                                                              (pPHandle))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pHandle <- lift $ peek @HANDLE pPHandle   pure $ (pHandle)@@ -332,13 +335,19 @@                                      -- be an external memory handle created outside of the Vulkan API                                      HANDLE                                   -> io (MemoryWin32HandlePropertiesKHR)-getMemoryWin32HandlePropertiesKHR device handleType handle = liftIO . evalContT $ do+getMemoryWin32HandlePropertiesKHR device+                                    handleType+                                    handle = liftIO . evalContT $ do   let vkGetMemoryWin32HandlePropertiesKHRPtr = pVkGetMemoryWin32HandlePropertiesKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetMemoryWin32HandlePropertiesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryWin32HandlePropertiesKHR is null" Nothing Nothing   let vkGetMemoryWin32HandlePropertiesKHR' = mkVkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHRPtr   pPMemoryWin32HandleProperties <- ContT (withZeroCStruct @MemoryWin32HandlePropertiesKHR)-  r <- lift $ traceAroundEvent "vkGetMemoryWin32HandlePropertiesKHR" (vkGetMemoryWin32HandlePropertiesKHR' (deviceHandle (device)) (handleType) (handle) (pPMemoryWin32HandleProperties))+  r <- lift $ traceAroundEvent "vkGetMemoryWin32HandlePropertiesKHR" (vkGetMemoryWin32HandlePropertiesKHR'+                                                                        (deviceHandle (device))+                                                                        (handleType)+                                                                        (handle)+                                                                        (pPMemoryWin32HandleProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pMemoryWin32HandleProperties <- lift $ peekCStruct @MemoryWin32HandlePropertiesKHR pPMemoryWin32HandleProperties   pure $ (pMemoryWin32HandleProperties)
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -243,7 +243,10 @@   let vkGetSemaphoreFdKHR' = mkVkGetSemaphoreFdKHR vkGetSemaphoreFdKHRPtr   pGetFdInfo <- ContT $ withCStruct (getFdInfo)   pPFd <- ContT $ bracket (callocBytes @CInt 4) free-  r <- lift $ traceAroundEvent "vkGetSemaphoreFdKHR" (vkGetSemaphoreFdKHR' (deviceHandle (device)) pGetFdInfo (pPFd))+  r <- lift $ traceAroundEvent "vkGetSemaphoreFdKHR" (vkGetSemaphoreFdKHR'+                                                        (deviceHandle (device))+                                                        pGetFdInfo+                                                        (pPFd))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFd <- lift $ peek @CInt pPFd   pure $ ((coerce @CInt @Int32 pFd))@@ -306,7 +309,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreFdKHR is null" Nothing Nothing   let vkImportSemaphoreFdKHR' = mkVkImportSemaphoreFdKHR vkImportSemaphoreFdKHRPtr   pImportSemaphoreFdInfo <- ContT $ withCStruct (importSemaphoreFdInfo)-  r <- lift $ traceAroundEvent "vkImportSemaphoreFdKHR" (vkImportSemaphoreFdKHR' (deviceHandle (device)) pImportSemaphoreFdInfo)+  r <- lift $ traceAroundEvent "vkImportSemaphoreFdKHR" (vkImportSemaphoreFdKHR'+                                                           (deviceHandle (device))+                                                           pImportSemaphoreFdInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  
src/Vulkan/Extensions/VK_KHR_external_semaphore_win32.hs view
@@ -290,7 +290,10 @@   let vkGetSemaphoreWin32HandleKHR' = mkVkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHRPtr   pGetWin32HandleInfo <- ContT $ withCStruct (getWin32HandleInfo)   pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free-  r <- lift $ traceAroundEvent "vkGetSemaphoreWin32HandleKHR" (vkGetSemaphoreWin32HandleKHR' (deviceHandle (device)) pGetWin32HandleInfo (pPHandle))+  r <- lift $ traceAroundEvent "vkGetSemaphoreWin32HandleKHR" (vkGetSemaphoreWin32HandleKHR'+                                                                 (deviceHandle (device))+                                                                 pGetWin32HandleInfo+                                                                 (pPHandle))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pHandle <- lift $ peek @HANDLE pPHandle   pure $ (pHandle)@@ -349,13 +352,16 @@                                  -- 'ImportSemaphoreWin32HandleInfoKHR' structure                                  ImportSemaphoreWin32HandleInfoKHR                               -> io ()-importSemaphoreWin32HandleKHR device importSemaphoreWin32HandleInfo = liftIO . evalContT $ do+importSemaphoreWin32HandleKHR device+                                importSemaphoreWin32HandleInfo = liftIO . evalContT $ do   let vkImportSemaphoreWin32HandleKHRPtr = pVkImportSemaphoreWin32HandleKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkImportSemaphoreWin32HandleKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkImportSemaphoreWin32HandleKHR is null" Nothing Nothing   let vkImportSemaphoreWin32HandleKHR' = mkVkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHRPtr   pImportSemaphoreWin32HandleInfo <- ContT $ withCStruct (importSemaphoreWin32HandleInfo)-  r <- lift $ traceAroundEvent "vkImportSemaphoreWin32HandleKHR" (vkImportSemaphoreWin32HandleKHR' (deviceHandle (device)) pImportSemaphoreWin32HandleInfo)+  r <- lift $ traceAroundEvent "vkImportSemaphoreWin32HandleKHR" (vkImportSemaphoreWin32HandleKHR'+                                                                    (deviceHandle (device))+                                                                    pImportSemaphoreWin32HandleInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -806,7 +812,10 @@     let pSignalSemaphoreValuesLength = if pSignalSemaphoreValues == nullPtr then 0 else (fromIntegral signalSemaphoreValuesCount)     pSignalSemaphoreValues' <- generateM pSignalSemaphoreValuesLength (\i -> peek @Word64 ((pSignalSemaphoreValues `advancePtrBytes` (8 * (i)) :: Ptr Word64)))     pure $ D3D12FenceSubmitInfoKHR-             waitSemaphoreValuesCount pWaitSemaphoreValues' signalSemaphoreValuesCount pSignalSemaphoreValues'+             waitSemaphoreValuesCount+             pWaitSemaphoreValues'+             signalSemaphoreValuesCount+             pSignalSemaphoreValues'  instance Zero D3D12FenceSubmitInfoKHR where   zero = D3D12FenceSubmitInfoKHR
src/Vulkan/Extensions/VK_KHR_fragment_shading_rate.hs view
@@ -469,7 +469,9 @@                                 -- for fragments generated by subsequent drawing commands.                                 ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))                              -> io ()-cmdSetFragmentShadingRateKHR commandBuffer fragmentSize combinerOps = liftIO . evalContT $ do+cmdSetFragmentShadingRateKHR commandBuffer+                               fragmentSize+                               combinerOps = liftIO . evalContT $ do   let vkCmdSetFragmentShadingRateKHRPtr = pVkCmdSetFragmentShadingRateKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetFragmentShadingRateKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFragmentShadingRateKHR is null" Nothing Nothing@@ -481,7 +483,10 @@     (e0, e1) -> do       poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0)       poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)-  lift $ traceAroundEvent "vkCmdSetFragmentShadingRateKHR" (vkCmdSetFragmentShadingRateKHR' (commandBufferHandle (commandBuffer)) pFragmentSize (pCombinerOps))+  lift $ traceAroundEvent "vkCmdSetFragmentShadingRateKHR" (vkCmdSetFragmentShadingRateKHR'+                                                              (commandBufferHandle (commandBuffer))+                                                              pFragmentSize+                                                              (pCombinerOps))   pure $ ()  @@ -635,12 +640,18 @@   let vkGetPhysicalDeviceFragmentShadingRatesKHR' = mkVkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPFragmentShadingRateCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR'+                                                                               physicalDevice'+                                                                               (pPFragmentShadingRateCount)+                                                                               (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFragmentShadingRateCount <- lift $ peek @Word32 pPFragmentShadingRateCount   pPFragmentShadingRates <- ContT $ bracket (callocBytes @PhysicalDeviceFragmentShadingRateKHR ((fromIntegral (pFragmentShadingRateCount)) * 32)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPFragmentShadingRates `advancePtrBytes` (i * 32) :: Ptr PhysicalDeviceFragmentShadingRateKHR) . ($ ())) [0..(fromIntegral (pFragmentShadingRateCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR' physicalDevice' (pPFragmentShadingRateCount) ((pPFragmentShadingRates)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceFragmentShadingRatesKHR" (vkGetPhysicalDeviceFragmentShadingRatesKHR'+                                                                                physicalDevice'+                                                                                (pPFragmentShadingRateCount)+                                                                                ((pPFragmentShadingRates)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pFragmentShadingRateCount' <- lift $ peek @Word32 pPFragmentShadingRateCount   pFragmentShadingRates' <- lift $ generateM (fromIntegral (pFragmentShadingRateCount')) (\i -> peekCStruct @PhysicalDeviceFragmentShadingRateKHR (((pPFragmentShadingRates) `advancePtrBytes` (32 * (i)) :: Ptr PhysicalDeviceFragmentShadingRateKHR)))@@ -962,7 +973,9 @@     primitiveFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     attachmentFragmentShadingRate <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceFragmentShadingRateFeaturesKHR-             (bool32ToBool pipelineFragmentShadingRate) (bool32ToBool primitiveFragmentShadingRate) (bool32ToBool attachmentFragmentShadingRate)+             (bool32ToBool pipelineFragmentShadingRate)+             (bool32ToBool primitiveFragmentShadingRate)+             (bool32ToBool attachmentFragmentShadingRate)  instance Storable PhysicalDeviceFragmentShadingRateFeaturesKHR where   sizeOf ~_ = 32@@ -1265,7 +1278,23 @@     fragmentShadingRateWithCustomSampleLocations <- peek @Bool32 ((p `plusPtr` 88 :: Ptr Bool32))     fragmentShadingRateStrictMultiplyCombiner <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))     pure $ PhysicalDeviceFragmentShadingRatePropertiesKHR-             minFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSize maxFragmentShadingRateAttachmentTexelSizeAspectRatio (bool32ToBool primitiveFragmentShadingRateWithMultipleViewports) (bool32ToBool layeredShadingRateAttachments) (bool32ToBool fragmentShadingRateNonTrivialCombinerOps) maxFragmentSize maxFragmentSizeAspectRatio maxFragmentShadingRateCoverageSamples maxFragmentShadingRateRasterizationSamples (bool32ToBool fragmentShadingRateWithShaderDepthStencilWrites) (bool32ToBool fragmentShadingRateWithSampleMask) (bool32ToBool fragmentShadingRateWithShaderSampleMask) (bool32ToBool fragmentShadingRateWithConservativeRasterization) (bool32ToBool fragmentShadingRateWithFragmentShaderInterlock) (bool32ToBool fragmentShadingRateWithCustomSampleLocations) (bool32ToBool fragmentShadingRateStrictMultiplyCombiner)+             minFragmentShadingRateAttachmentTexelSize+             maxFragmentShadingRateAttachmentTexelSize+             maxFragmentShadingRateAttachmentTexelSizeAspectRatio+             (bool32ToBool primitiveFragmentShadingRateWithMultipleViewports)+             (bool32ToBool layeredShadingRateAttachments)+             (bool32ToBool fragmentShadingRateNonTrivialCombinerOps)+             maxFragmentSize+             maxFragmentSizeAspectRatio+             maxFragmentShadingRateCoverageSamples+             maxFragmentShadingRateRasterizationSamples+             (bool32ToBool fragmentShadingRateWithShaderDepthStencilWrites)+             (bool32ToBool fragmentShadingRateWithSampleMask)+             (bool32ToBool fragmentShadingRateWithShaderSampleMask)+             (bool32ToBool fragmentShadingRateWithConservativeRasterization)+             (bool32ToBool fragmentShadingRateWithFragmentShaderInterlock)+             (bool32ToBool fragmentShadingRateWithCustomSampleLocations)+             (bool32ToBool fragmentShadingRateStrictMultiplyCombiner)  instance Storable PhysicalDeviceFragmentShadingRatePropertiesKHR where   sizeOf ~_ = 96@@ -1387,25 +1416,33 @@  -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = Axy.-pattern FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR    = FragmentShadingRateCombinerOpKHR 0+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = FragmentShadingRateCombinerOpKHR 0+ -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = Bxy. pattern FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = FragmentShadingRateCombinerOpKHR 1+ -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = min(Axy,Bxy).-pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR     = FragmentShadingRateCombinerOpKHR 2+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = FragmentShadingRateCombinerOpKHR 2+ -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = max(Axy,Bxy).-pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR     = FragmentShadingRateCombinerOpKHR 3+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = FragmentShadingRateCombinerOpKHR 3+ -- | 'FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR' specifies a combiner -- operation of combine(Axy,Bxy) = Axy*Bxy.-pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR     = FragmentShadingRateCombinerOpKHR 4-{-# complete FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR,-             FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR,-             FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR,-             FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR,-             FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR :: FragmentShadingRateCombinerOpKHR #-}+pattern FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = FragmentShadingRateCombinerOpKHR 4 +{-# COMPLETE+  FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR+  , FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR+  , FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR+  , FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR+  , FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR ::+    FragmentShadingRateCombinerOpKHR+  #-}+ conNameFragmentShadingRateCombinerOpKHR :: String conNameFragmentShadingRateCombinerOpKHR = "FragmentShadingRateCombinerOpKHR" @@ -1414,26 +1451,44 @@  showTableFragmentShadingRateCombinerOpKHR :: [(FragmentShadingRateCombinerOpKHR, String)] showTableFragmentShadingRateCombinerOpKHR =-  [ (FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR   , "KEEP_KHR")-  , (FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR, "REPLACE_KHR")-  , (FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR    , "MIN_KHR")-  , (FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR    , "MAX_KHR")-  , (FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR    , "MUL_KHR")+  [+    ( FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR+    , "KEEP_KHR"+    )+  ,+    ( FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR+    , "REPLACE_KHR"+    )+  ,+    ( FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR+    , "MIN_KHR"+    )+  ,+    ( FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR+    , "MAX_KHR"+    )+  ,+    ( FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR+    , "MUL_KHR"+    )   ]  instance Show FragmentShadingRateCombinerOpKHR where-  showsPrec = enumShowsPrec enumPrefixFragmentShadingRateCombinerOpKHR-                            showTableFragmentShadingRateCombinerOpKHR-                            conNameFragmentShadingRateCombinerOpKHR-                            (\(FragmentShadingRateCombinerOpKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixFragmentShadingRateCombinerOpKHR+      showTableFragmentShadingRateCombinerOpKHR+      conNameFragmentShadingRateCombinerOpKHR+      (\(FragmentShadingRateCombinerOpKHR x) -> x)+      (showsPrec 11)  instance Read FragmentShadingRateCombinerOpKHR where-  readPrec = enumReadPrec enumPrefixFragmentShadingRateCombinerOpKHR-                          showTableFragmentShadingRateCombinerOpKHR-                          conNameFragmentShadingRateCombinerOpKHR-                          FragmentShadingRateCombinerOpKHR-+  readPrec =+    enumReadPrec+      enumPrefixFragmentShadingRateCombinerOpKHR+      showTableFragmentShadingRateCombinerOpKHR+      conNameFragmentShadingRateCombinerOpKHR+      FragmentShadingRateCombinerOpKHR  type KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_KHR_get_display_properties2.hs view
@@ -308,12 +308,18 @@   let vkGetPhysicalDeviceDisplayProperties2KHR' = mkVkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR' physicalDevice' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR'+                                                                             physicalDevice'+                                                                             (pPPropertyCount)+                                                                             (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @DisplayProperties2KHR ((fromIntegral (pPropertyCount)) * 64)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 64) :: Ptr DisplayProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR' physicalDevice' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayProperties2KHR" (vkGetPhysicalDeviceDisplayProperties2KHR'+                                                                              physicalDevice'+                                                                              (pPPropertyCount)+                                                                              ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayProperties2KHR (((pPProperties) `advancePtrBytes` (64 * (i)) :: Ptr DisplayProperties2KHR)))@@ -382,12 +388,18 @@   let vkGetPhysicalDeviceDisplayPlaneProperties2KHR' = mkVkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR' physicalDevice' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR'+                                                                                  physicalDevice'+                                                                                  (pPPropertyCount)+                                                                                  (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @DisplayPlaneProperties2KHR ((fromIntegral (pPropertyCount)) * 32)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 32) :: Ptr DisplayPlaneProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR' physicalDevice' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" (vkGetPhysicalDeviceDisplayPlaneProperties2KHR'+                                                                                   physicalDevice'+                                                                                   (pPPropertyCount)+                                                                                   ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayPlaneProperties2KHR (((pPProperties) `advancePtrBytes` (32 * (i)) :: Ptr DisplayPlaneProperties2KHR)))@@ -464,12 +476,20 @@   let vkGetDisplayModeProperties2KHR' = mkVkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR' physicalDevice' (display) (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR'+                                                                   physicalDevice'+                                                                   (display)+                                                                   (pPPropertyCount)+                                                                   (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @DisplayModeProperties2KHR ((fromIntegral (pPropertyCount)) * 40)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 40) :: Ptr DisplayModeProperties2KHR) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR' physicalDevice' (display) (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetDisplayModeProperties2KHR" (vkGetDisplayModeProperties2KHR'+                                                                    physicalDevice'+                                                                    (display)+                                                                    (pPPropertyCount)+                                                                    ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @DisplayModeProperties2KHR (((pPProperties) `advancePtrBytes` (40 * (i)) :: Ptr DisplayModeProperties2KHR)))@@ -527,14 +547,18 @@                                    -- 'DisplayPlaneInfo2KHR' structure                                    DisplayPlaneInfo2KHR                                 -> io (DisplayPlaneCapabilities2KHR)-getDisplayPlaneCapabilities2KHR physicalDevice displayPlaneInfo = liftIO . evalContT $ do+getDisplayPlaneCapabilities2KHR physicalDevice+                                  displayPlaneInfo = liftIO . evalContT $ do   let vkGetDisplayPlaneCapabilities2KHRPtr = pVkGetDisplayPlaneCapabilities2KHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetDisplayPlaneCapabilities2KHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDisplayPlaneCapabilities2KHR is null" Nothing Nothing   let vkGetDisplayPlaneCapabilities2KHR' = mkVkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHRPtr   pDisplayPlaneInfo <- ContT $ withCStruct (displayPlaneInfo)   pPCapabilities <- ContT (withZeroCStruct @DisplayPlaneCapabilities2KHR)-  r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilities2KHR" (vkGetDisplayPlaneCapabilities2KHR' (physicalDeviceHandle (physicalDevice)) pDisplayPlaneInfo (pPCapabilities))+  r <- lift $ traceAroundEvent "vkGetDisplayPlaneCapabilities2KHR" (vkGetDisplayPlaneCapabilities2KHR'+                                                                      (physicalDeviceHandle (physicalDevice))+                                                                      pDisplayPlaneInfo+                                                                      (pPCapabilities))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCapabilities <- lift $ peekCStruct @DisplayPlaneCapabilities2KHR pPCapabilities   pure $ (pCapabilities)
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -223,6 +223,7 @@ import Vulkan.Core10.Enums.StructureType (StructureType) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceCapabilitiesFullScreenExclusiveEXT) import Vulkan.Extensions.VK_KHR_surface (SurfaceCapabilitiesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SurfaceCapabilitiesPresentBarrierNV) import Vulkan.Extensions.VK_KHR_surface (SurfaceFormatKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_full_screen_exclusive (SurfaceFullScreenExclusiveWin32InfoEXT)@@ -312,7 +313,12 @@ -- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceSurfaceInfo2KHR', -- 'SurfaceCapabilities2KHR' getPhysicalDeviceSurfaceCapabilities2KHR :: forall a b io-                                          . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, Extendss SurfaceCapabilities2KHR b, PokeChain b, PeekChain b, MonadIO io)+                                          . ( Extendss PhysicalDeviceSurfaceInfo2KHR a+                                            , PokeChain a+                                            , Extendss SurfaceCapabilities2KHR b+                                            , PokeChain b+                                            , PeekChain b+                                            , MonadIO io )                                          => -- | @physicalDevice@ is the physical device that will be associated with the                                             -- swapchain to be created, as described for                                             -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.@@ -322,14 +328,18 @@                                             -- be consumed by 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.                                             (PhysicalDeviceSurfaceInfo2KHR a)                                          -> io (SurfaceCapabilities2KHR b)-getPhysicalDeviceSurfaceCapabilities2KHR physicalDevice surfaceInfo = liftIO . evalContT $ do+getPhysicalDeviceSurfaceCapabilities2KHR physicalDevice+                                           surfaceInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfaceCapabilities2KHRPtr = pVkGetPhysicalDeviceSurfaceCapabilities2KHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfaceCapabilities2KHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceCapabilities2KHR is null" Nothing Nothing   let vkGetPhysicalDeviceSurfaceCapabilities2KHR' = mkVkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHRPtr   pSurfaceInfo <- ContT $ withCStruct (surfaceInfo)   pPSurfaceCapabilities <- ContT (withZeroCStruct @(SurfaceCapabilities2KHR _))-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilities2KHR" (vkGetPhysicalDeviceSurfaceCapabilities2KHR' (physicalDeviceHandle (physicalDevice)) (forgetExtensions pSurfaceInfo) (forgetExtensions (pPSurfaceCapabilities)))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilities2KHR" (vkGetPhysicalDeviceSurfaceCapabilities2KHR'+                                                                               (physicalDeviceHandle (physicalDevice))+                                                                               (forgetExtensions pSurfaceInfo)+                                                                               (forgetExtensions (pPSurfaceCapabilities)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurfaceCapabilities <- lift $ peekCStruct @(SurfaceCapabilities2KHR _) pPSurfaceCapabilities   pure $ (pSurfaceCapabilities)@@ -419,7 +429,12 @@ -- 'Vulkan.Core10.Handles.PhysicalDevice', 'PhysicalDeviceSurfaceInfo2KHR', -- 'SurfaceFormat2KHR' getPhysicalDeviceSurfaceFormats2KHR :: forall a b io-                                     . (Extendss PhysicalDeviceSurfaceInfo2KHR a, PokeChain a, Extendss SurfaceFormat2KHR b, PokeChain b, PeekChain b, MonadIO io)+                                     . ( Extendss PhysicalDeviceSurfaceInfo2KHR a+                                       , PokeChain a+                                       , Extendss SurfaceFormat2KHR b+                                       , PokeChain b+                                       , PeekChain b+                                       , MonadIO io )                                     => -- | @physicalDevice@ is the physical device that will be associated with the                                        -- swapchain to be created, as described for                                        -- 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.@@ -429,7 +444,8 @@                                        -- be consumed by 'Vulkan.Extensions.VK_KHR_swapchain.createSwapchainKHR'.                                        (PhysicalDeviceSurfaceInfo2KHR a)                                     -> io (Result, ("surfaceFormats" ::: Vector (SurfaceFormat2KHR b)))-getPhysicalDeviceSurfaceFormats2KHR physicalDevice surfaceInfo = liftIO . evalContT $ do+getPhysicalDeviceSurfaceFormats2KHR physicalDevice+                                      surfaceInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfaceFormats2KHRPtr = pVkGetPhysicalDeviceSurfaceFormats2KHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfaceFormats2KHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceFormats2KHR is null" Nothing Nothing@@ -438,12 +454,20 @@   pSurfaceInfo <- ContT $ withCStruct (surfaceInfo)   let x9 = forgetExtensions pSurfaceInfo   pPSurfaceFormatCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (forgetExtensions (nullPtr)))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR'+                                                                          physicalDevice'+                                                                          x9+                                                                          (pPSurfaceFormatCount)+                                                                          (forgetExtensions (nullPtr)))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurfaceFormatCount <- lift $ peek @Word32 pPSurfaceFormatCount   pPSurfaceFormats <- ContT $ bracket (callocBytes @(SurfaceFormat2KHR _) ((fromIntegral (pSurfaceFormatCount)) * 24)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSurfaceFormats `advancePtrBytes` (i * 24) :: Ptr (SurfaceFormat2KHR _)) . ($ ())) [0..(fromIntegral (pSurfaceFormatCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR' physicalDevice' x9 (pPSurfaceFormatCount) (forgetExtensions ((pPSurfaceFormats))))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormats2KHR" (vkGetPhysicalDeviceSurfaceFormats2KHR'+                                                                           physicalDevice'+                                                                           x9+                                                                           (pPSurfaceFormatCount)+                                                                           (forgetExtensions ((pPSurfaceFormats))))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pSurfaceFormatCount' <- lift $ peek @Word32 pPSurfaceFormatCount   pSurfaceFormats' <- lift $ generateM (fromIntegral (pSurfaceFormatCount')) (\i -> peekCStruct @(SurfaceFormat2KHR _) (((pPSurfaceFormats) `advancePtrBytes` (24 * (i)) :: Ptr (SurfaceFormat2KHR _))))@@ -562,7 +586,8 @@     | Just Refl <- eqT @e @SurfaceFullScreenExclusiveInfoEXT = Just f     | otherwise = Nothing -instance (Extendss PhysicalDeviceSurfaceInfo2KHR es, PokeChain es) => ToCStruct (PhysicalDeviceSurfaceInfo2KHR es) where+instance ( Extendss PhysicalDeviceSurfaceInfo2KHR es+         , PokeChain es ) => ToCStruct (PhysicalDeviceSurfaceInfo2KHR es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PhysicalDeviceSurfaceInfo2KHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR)@@ -578,7 +603,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss PhysicalDeviceSurfaceInfo2KHR es, PeekChain es) => FromCStruct (PhysicalDeviceSurfaceInfo2KHR es) where+instance ( Extendss PhysicalDeviceSurfaceInfo2KHR es+         , PeekChain es ) => FromCStruct (PhysicalDeviceSurfaceInfo2KHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -623,6 +649,7 @@ --     'Vulkan.Extensions.VK_AMD_display_native_hdr.DisplayNativeHdrSurfaceCapabilitiesAMD', --     'Vulkan.Extensions.VK_KHR_shared_presentable_image.SharedPresentSurfaceCapabilitiesKHR', --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceCapabilitiesFullScreenExclusiveEXT',+--     'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV', --     or --     'Vulkan.Extensions.VK_KHR_surface_protected_capabilities.SurfaceProtectedCapabilitiesKHR' --@@ -655,13 +682,15 @@   getNext SurfaceCapabilities2KHR{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SurfaceCapabilities2KHR e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @SurfaceCapabilitiesPresentBarrierNV = Just f     | Just Refl <- eqT @e @SurfaceCapabilitiesFullScreenExclusiveEXT = Just f     | Just Refl <- eqT @e @SurfaceProtectedCapabilitiesKHR = Just f     | Just Refl <- eqT @e @SharedPresentSurfaceCapabilitiesKHR = Just f     | Just Refl <- eqT @e @DisplayNativeHdrSurfaceCapabilitiesAMD = Just f     | otherwise = Nothing -instance (Extendss SurfaceCapabilities2KHR es, PokeChain es) => ToCStruct (SurfaceCapabilities2KHR es) where+instance ( Extendss SurfaceCapabilities2KHR es+         , PokeChain es ) => ToCStruct (SurfaceCapabilities2KHR es) where   withCStruct x f = allocaBytes 72 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SurfaceCapabilities2KHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR)@@ -678,7 +707,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr SurfaceCapabilitiesKHR)) (zero)     lift $ f -instance (Extendss SurfaceCapabilities2KHR es, PeekChain es) => FromCStruct (SurfaceCapabilities2KHR es) where+instance ( Extendss SurfaceCapabilities2KHR es+         , PeekChain es ) => FromCStruct (SurfaceCapabilities2KHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -744,7 +774,8 @@     | Just Refl <- eqT @e @ImageCompressionPropertiesEXT = Just f     | otherwise = Nothing -instance (Extendss SurfaceFormat2KHR es, PokeChain es) => ToCStruct (SurfaceFormat2KHR es) where+instance ( Extendss SurfaceFormat2KHR es+         , PokeChain es ) => ToCStruct (SurfaceFormat2KHR es) where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SurfaceFormat2KHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR)@@ -761,7 +792,8 @@     lift $ poke ((p `plusPtr` 16 :: Ptr SurfaceFormatKHR)) (zero)     lift $ f -instance (Extendss SurfaceFormat2KHR es, PeekChain es) => FromCStruct (SurfaceFormat2KHR es) where+instance ( Extendss SurfaceFormat2KHR es+         , PeekChain es ) => FromCStruct (SurfaceFormat2KHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs-boot view
@@ -156,26 +156,32 @@ type role PhysicalDeviceSurfaceInfo2KHR nominal data PhysicalDeviceSurfaceInfo2KHR (es :: [Type]) -instance (Extendss PhysicalDeviceSurfaceInfo2KHR es, PokeChain es) => ToCStruct (PhysicalDeviceSurfaceInfo2KHR es)+instance ( Extendss PhysicalDeviceSurfaceInfo2KHR es+         , PokeChain es ) => ToCStruct (PhysicalDeviceSurfaceInfo2KHR es) instance Show (Chain es) => Show (PhysicalDeviceSurfaceInfo2KHR es) -instance (Extendss PhysicalDeviceSurfaceInfo2KHR es, PeekChain es) => FromCStruct (PhysicalDeviceSurfaceInfo2KHR es)+instance ( Extendss PhysicalDeviceSurfaceInfo2KHR es+         , PeekChain es ) => FromCStruct (PhysicalDeviceSurfaceInfo2KHR es)   type role SurfaceCapabilities2KHR nominal data SurfaceCapabilities2KHR (es :: [Type]) -instance (Extendss SurfaceCapabilities2KHR es, PokeChain es) => ToCStruct (SurfaceCapabilities2KHR es)+instance ( Extendss SurfaceCapabilities2KHR es+         , PokeChain es ) => ToCStruct (SurfaceCapabilities2KHR es) instance Show (Chain es) => Show (SurfaceCapabilities2KHR es) -instance (Extendss SurfaceCapabilities2KHR es, PeekChain es) => FromCStruct (SurfaceCapabilities2KHR es)+instance ( Extendss SurfaceCapabilities2KHR es+         , PeekChain es ) => FromCStruct (SurfaceCapabilities2KHR es)   type role SurfaceFormat2KHR nominal data SurfaceFormat2KHR (es :: [Type]) -instance (Extendss SurfaceFormat2KHR es, PokeChain es) => ToCStruct (SurfaceFormat2KHR es)+instance ( Extendss SurfaceFormat2KHR es+         , PokeChain es ) => ToCStruct (SurfaceFormat2KHR es) instance Show (Chain es) => Show (SurfaceFormat2KHR es) -instance (Extendss SurfaceFormat2KHR es, PeekChain es) => FromCStruct (SurfaceFormat2KHR es)+instance ( Extendss SurfaceFormat2KHR es+         , PeekChain es ) => FromCStruct (SurfaceFormat2KHR es) 
src/Vulkan/Extensions/VK_KHR_global_priority.hs view
@@ -483,23 +483,31 @@ -- '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+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+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+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 #-} +{-# 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" @@ -508,25 +516,34 @@  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")+  [ (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)+  showsPrec =+    enumShowsPrec+      enumPrefixQueueGlobalPriorityKHR+      showTableQueueGlobalPriorityKHR+      conNameQueueGlobalPriorityKHR+      (\(QueueGlobalPriorityKHR x) -> x)+      (showsPrec 11)  instance Read QueueGlobalPriorityKHR where-  readPrec = enumReadPrec enumPrefixQueueGlobalPriorityKHR-                          showTableQueueGlobalPriorityKHR-                          conNameQueueGlobalPriorityKHR-                          QueueGlobalPriorityKHR-+  readPrec =+    enumReadPrec+      enumPrefixQueueGlobalPriorityKHR+      showTableQueueGlobalPriorityKHR+      conNameQueueGlobalPriorityKHR+      QueueGlobalPriorityKHR  type KHR_GLOBAL_PRIORITY_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_KHR_performance_query.hs view
@@ -706,21 +706,32 @@                                                                  -- device we want to get properties for.                                                                  ("queueFamilyIndex" ::: Word32)                                                               -> io (Result, ("counters" ::: Vector PerformanceCounterKHR), ("counterDescriptions" ::: Vector PerformanceCounterDescriptionKHR))-enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR physicalDevice queueFamilyIndex = liftIO . evalContT $ do+enumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR physicalDevice+                                                                queueFamilyIndex = liftIO . evalContT $ do   let vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRPtr = pVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR is null" Nothing Nothing   let vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' = mkVkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPCounterCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' physicalDevice' (queueFamilyIndex) (pPCounterCount) (nullPtr) (nullPtr))+  r <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR'+                                                                                                    physicalDevice'+                                                                                                    (queueFamilyIndex)+                                                                                                    (pPCounterCount)+                                                                                                    (nullPtr)+                                                                                                    (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCounterCount <- lift $ peek @Word32 pPCounterCount   pPCounters <- ContT $ bracket (callocBytes @PerformanceCounterKHR ((fromIntegral (pCounterCount)) * 48)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCounters `advancePtrBytes` (i * 48) :: Ptr PerformanceCounterKHR) . ($ ())) [0..(fromIntegral (pCounterCount)) - 1]   pPCounterDescriptions <- ContT $ bracket (callocBytes @PerformanceCounterDescriptionKHR ((fromIntegral (pCounterCount)) * 792)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCounterDescriptions `advancePtrBytes` (i * 792) :: Ptr PerformanceCounterDescriptionKHR) . ($ ())) [0..(fromIntegral (pCounterCount)) - 1]-  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR' physicalDevice' (queueFamilyIndex) (pPCounterCount) ((pPCounters)) ((pPCounterDescriptions)))+  r' <- lift $ traceAroundEvent "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" (vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR'+                                                                                                     physicalDevice'+                                                                                                     (queueFamilyIndex)+                                                                                                     (pPCounterCount)+                                                                                                     ((pPCounters))+                                                                                                     ((pPCounterDescriptions)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pCounterCount' <- lift $ peek @Word32 pPCounterCount   let x33 = pCounterCount'@@ -773,14 +784,18 @@                                                          -- 'QueryPoolPerformanceCreateInfoKHR' structure                                                          ("performanceQueryCreateInfo" ::: QueryPoolPerformanceCreateInfoKHR)                                                       -> io (("numPasses" ::: Word32))-getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR physicalDevice performanceQueryCreateInfo = liftIO . evalContT $ do+getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR physicalDevice+                                                        performanceQueryCreateInfo = liftIO . evalContT $ do   let vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRPtr = pVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR is null" Nothing Nothing   let vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' = mkVkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHRPtr   pPerformanceQueryCreateInfo <- ContT $ withCStruct (performanceQueryCreateInfo)   pPNumPasses <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" (vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' (physicalDeviceHandle (physicalDevice)) pPerformanceQueryCreateInfo (pPNumPasses))+  lift $ traceAroundEvent "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" (vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR'+                                                                                       (physicalDeviceHandle (physicalDevice))+                                                                                       pPerformanceQueryCreateInfo+                                                                                       (pPNumPasses))   pNumPasses <- lift $ peek @Word32 pPNumPasses   pure $ (pNumPasses) @@ -835,7 +850,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireProfilingLockKHR is null" Nothing Nothing   let vkAcquireProfilingLockKHR' = mkVkAcquireProfilingLockKHR vkAcquireProfilingLockKHRPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkAcquireProfilingLockKHR" (vkAcquireProfilingLockKHR' (deviceHandle (device)) pInfo)+  r <- lift $ traceAroundEvent "vkAcquireProfilingLockKHR" (vkAcquireProfilingLockKHR'+                                                              (deviceHandle (device))+                                                              pInfo)   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -873,7 +890,8 @@   unless (vkReleaseProfilingLockKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkReleaseProfilingLockKHR is null" Nothing Nothing   let vkReleaseProfilingLockKHR' = mkVkReleaseProfilingLockKHR vkReleaseProfilingLockKHRPtr-  traceAroundEvent "vkReleaseProfilingLockKHR" (vkReleaseProfilingLockKHR' (deviceHandle (device)))+  traceAroundEvent "vkReleaseProfilingLockKHR" (vkReleaseProfilingLockKHR'+                                                  (deviceHandle (device)))   pure $ ()  @@ -962,7 +980,8 @@     performanceCounterQueryPools <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     performanceCounterMultipleQueryPools <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDevicePerformanceQueryFeaturesKHR-             (bool32ToBool performanceCounterQueryPools) (bool32ToBool performanceCounterMultipleQueryPools)+             (bool32ToBool performanceCounterQueryPools)+             (bool32ToBool performanceCounterMultipleQueryPools)  instance Storable PhysicalDevicePerformanceQueryFeaturesKHR where   sizeOf ~_ = 24@@ -1447,18 +1466,24 @@ -- | 'PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR' - the performance counter -- scope is a single complete command buffer. pattern PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = PerformanceCounterScopeKHR 0+ -- | 'PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR' - the performance counter -- scope is zero or more complete render passes. The performance query -- containing the performance counter /must/ begin and end outside a render -- pass instance.-pattern PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR    = PerformanceCounterScopeKHR 1+pattern PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = PerformanceCounterScopeKHR 1+ -- | 'PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR' - the performance counter scope -- is zero or more commands.-pattern PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR        = PerformanceCounterScopeKHR 2-{-# complete PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,-             PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,-             PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR :: PerformanceCounterScopeKHR #-}+pattern PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = PerformanceCounterScopeKHR 2 +{-# COMPLETE+  PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR+  , PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR+  , PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR ::+    PerformanceCounterScopeKHR+  #-}+ conNamePerformanceCounterScopeKHR :: String conNamePerformanceCounterScopeKHR = "PerformanceCounterScopeKHR" @@ -1467,24 +1492,36 @@  showTablePerformanceCounterScopeKHR :: [(PerformanceCounterScopeKHR, String)] showTablePerformanceCounterScopeKHR =-  [ (PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, "COMMAND_BUFFER_KHR")-  , (PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR   , "RENDER_PASS_KHR")-  , (PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR       , "COMMAND_KHR")+  [+    ( PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR+    , "COMMAND_BUFFER_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR+    , "RENDER_PASS_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR+    , "COMMAND_KHR"+    )   ]  instance Show PerformanceCounterScopeKHR where-  showsPrec = enumShowsPrec enumPrefixPerformanceCounterScopeKHR-                            showTablePerformanceCounterScopeKHR-                            conNamePerformanceCounterScopeKHR-                            (\(PerformanceCounterScopeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceCounterScopeKHR+      showTablePerformanceCounterScopeKHR+      conNamePerformanceCounterScopeKHR+      (\(PerformanceCounterScopeKHR x) -> x)+      (showsPrec 11)  instance Read PerformanceCounterScopeKHR where-  readPrec = enumReadPrec enumPrefixPerformanceCounterScopeKHR-                          showTablePerformanceCounterScopeKHR-                          conNamePerformanceCounterScopeKHR-                          PerformanceCounterScopeKHR-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceCounterScopeKHR+      showTablePerformanceCounterScopeKHR+      conNamePerformanceCounterScopeKHR+      PerformanceCounterScopeKHR  -- | VkPerformanceCounterUnitKHR - Supported counter unit types --@@ -1497,49 +1534,63 @@  -- | 'PERFORMANCE_COUNTER_UNIT_GENERIC_KHR' - the performance counter unit is -- a generic data point.-pattern PERFORMANCE_COUNTER_UNIT_GENERIC_KHR          = PerformanceCounterUnitKHR 0+pattern PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = PerformanceCounterUnitKHR 0+ -- | 'PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR' - the performance counter unit -- is a percentage (%).-pattern PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR       = PerformanceCounterUnitKHR 1+pattern PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = PerformanceCounterUnitKHR 1+ -- | 'PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR' - the performance counter -- unit is a value of nanoseconds (ns).-pattern PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR      = PerformanceCounterUnitKHR 2+pattern PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = PerformanceCounterUnitKHR 2+ -- | 'PERFORMANCE_COUNTER_UNIT_BYTES_KHR' - the performance counter unit is a -- value of bytes.-pattern PERFORMANCE_COUNTER_UNIT_BYTES_KHR            = PerformanceCounterUnitKHR 3+pattern PERFORMANCE_COUNTER_UNIT_BYTES_KHR = PerformanceCounterUnitKHR 3+ -- | 'PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR' - the performance -- counter unit is a value of bytes\/s. pattern PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = PerformanceCounterUnitKHR 4+ -- | 'PERFORMANCE_COUNTER_UNIT_KELVIN_KHR' - the performance counter unit is -- a temperature reported in Kelvin.-pattern PERFORMANCE_COUNTER_UNIT_KELVIN_KHR           = PerformanceCounterUnitKHR 5+pattern PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = PerformanceCounterUnitKHR 5+ -- | 'PERFORMANCE_COUNTER_UNIT_WATTS_KHR' - the performance counter unit is a -- value of watts (W).-pattern PERFORMANCE_COUNTER_UNIT_WATTS_KHR            = PerformanceCounterUnitKHR 6+pattern PERFORMANCE_COUNTER_UNIT_WATTS_KHR = PerformanceCounterUnitKHR 6+ -- | 'PERFORMANCE_COUNTER_UNIT_VOLTS_KHR' - the performance counter unit is a -- value of volts (V).-pattern PERFORMANCE_COUNTER_UNIT_VOLTS_KHR            = PerformanceCounterUnitKHR 7+pattern PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = PerformanceCounterUnitKHR 7+ -- | 'PERFORMANCE_COUNTER_UNIT_AMPS_KHR' - the performance counter unit is a -- value of amps (A).-pattern PERFORMANCE_COUNTER_UNIT_AMPS_KHR             = PerformanceCounterUnitKHR 8+pattern PERFORMANCE_COUNTER_UNIT_AMPS_KHR = PerformanceCounterUnitKHR 8+ -- | 'PERFORMANCE_COUNTER_UNIT_HERTZ_KHR' - the performance counter unit is a -- value of hertz (Hz).-pattern PERFORMANCE_COUNTER_UNIT_HERTZ_KHR            = PerformanceCounterUnitKHR 9+pattern PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = PerformanceCounterUnitKHR 9+ -- | 'PERFORMANCE_COUNTER_UNIT_CYCLES_KHR' - the performance counter unit is -- a value of cycles.-pattern PERFORMANCE_COUNTER_UNIT_CYCLES_KHR           = PerformanceCounterUnitKHR 10-{-# complete PERFORMANCE_COUNTER_UNIT_GENERIC_KHR,-             PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR,-             PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR,-             PERFORMANCE_COUNTER_UNIT_BYTES_KHR,-             PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR,-             PERFORMANCE_COUNTER_UNIT_KELVIN_KHR,-             PERFORMANCE_COUNTER_UNIT_WATTS_KHR,-             PERFORMANCE_COUNTER_UNIT_VOLTS_KHR,-             PERFORMANCE_COUNTER_UNIT_AMPS_KHR,-             PERFORMANCE_COUNTER_UNIT_HERTZ_KHR,-             PERFORMANCE_COUNTER_UNIT_CYCLES_KHR :: PerformanceCounterUnitKHR #-}+pattern PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = PerformanceCounterUnitKHR 10 +{-# COMPLETE+  PERFORMANCE_COUNTER_UNIT_GENERIC_KHR+  , PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR+  , PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR+  , PERFORMANCE_COUNTER_UNIT_BYTES_KHR+  , PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR+  , PERFORMANCE_COUNTER_UNIT_KELVIN_KHR+  , PERFORMANCE_COUNTER_UNIT_WATTS_KHR+  , PERFORMANCE_COUNTER_UNIT_VOLTS_KHR+  , PERFORMANCE_COUNTER_UNIT_AMPS_KHR+  , PERFORMANCE_COUNTER_UNIT_HERTZ_KHR+  , PERFORMANCE_COUNTER_UNIT_CYCLES_KHR ::+    PerformanceCounterUnitKHR+  #-}+ conNamePerformanceCounterUnitKHR :: String conNamePerformanceCounterUnitKHR = "PerformanceCounterUnitKHR" @@ -1548,32 +1599,68 @@  showTablePerformanceCounterUnitKHR :: [(PerformanceCounterUnitKHR, String)] showTablePerformanceCounterUnitKHR =-  [ (PERFORMANCE_COUNTER_UNIT_GENERIC_KHR         , "GENERIC_KHR")-  , (PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR      , "PERCENTAGE_KHR")-  , (PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR     , "NANOSECONDS_KHR")-  , (PERFORMANCE_COUNTER_UNIT_BYTES_KHR           , "BYTES_KHR")-  , (PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR, "BYTES_PER_SECOND_KHR")-  , (PERFORMANCE_COUNTER_UNIT_KELVIN_KHR          , "KELVIN_KHR")-  , (PERFORMANCE_COUNTER_UNIT_WATTS_KHR           , "WATTS_KHR")-  , (PERFORMANCE_COUNTER_UNIT_VOLTS_KHR           , "VOLTS_KHR")-  , (PERFORMANCE_COUNTER_UNIT_AMPS_KHR            , "AMPS_KHR")-  , (PERFORMANCE_COUNTER_UNIT_HERTZ_KHR           , "HERTZ_KHR")-  , (PERFORMANCE_COUNTER_UNIT_CYCLES_KHR          , "CYCLES_KHR")+  [+    ( PERFORMANCE_COUNTER_UNIT_GENERIC_KHR+    , "GENERIC_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR+    , "PERCENTAGE_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR+    , "NANOSECONDS_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_BYTES_KHR+    , "BYTES_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR+    , "BYTES_PER_SECOND_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_KELVIN_KHR+    , "KELVIN_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_WATTS_KHR+    , "WATTS_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_VOLTS_KHR+    , "VOLTS_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_AMPS_KHR+    , "AMPS_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_HERTZ_KHR+    , "HERTZ_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_UNIT_CYCLES_KHR+    , "CYCLES_KHR"+    )   ]  instance Show PerformanceCounterUnitKHR where-  showsPrec = enumShowsPrec enumPrefixPerformanceCounterUnitKHR-                            showTablePerformanceCounterUnitKHR-                            conNamePerformanceCounterUnitKHR-                            (\(PerformanceCounterUnitKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceCounterUnitKHR+      showTablePerformanceCounterUnitKHR+      conNamePerformanceCounterUnitKHR+      (\(PerformanceCounterUnitKHR x) -> x)+      (showsPrec 11)  instance Read PerformanceCounterUnitKHR where-  readPrec = enumReadPrec enumPrefixPerformanceCounterUnitKHR-                          showTablePerformanceCounterUnitKHR-                          conNamePerformanceCounterUnitKHR-                          PerformanceCounterUnitKHR-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceCounterUnitKHR+      showTablePerformanceCounterUnitKHR+      conNamePerformanceCounterUnitKHR+      PerformanceCounterUnitKHR  -- | VkPerformanceCounterStorageKHR - Supported counter storage types --@@ -1586,29 +1673,38 @@  -- | 'PERFORMANCE_COUNTER_STORAGE_INT32_KHR' - the performance counter -- storage is a 32-bit signed integer.-pattern PERFORMANCE_COUNTER_STORAGE_INT32_KHR   = PerformanceCounterStorageKHR 0+pattern PERFORMANCE_COUNTER_STORAGE_INT32_KHR = PerformanceCounterStorageKHR 0+ -- | 'PERFORMANCE_COUNTER_STORAGE_INT64_KHR' - the performance counter -- storage is a 64-bit signed integer.-pattern PERFORMANCE_COUNTER_STORAGE_INT64_KHR   = PerformanceCounterStorageKHR 1+pattern PERFORMANCE_COUNTER_STORAGE_INT64_KHR = PerformanceCounterStorageKHR 1+ -- | 'PERFORMANCE_COUNTER_STORAGE_UINT32_KHR' - the performance counter -- storage is a 32-bit unsigned integer.-pattern PERFORMANCE_COUNTER_STORAGE_UINT32_KHR  = PerformanceCounterStorageKHR 2+pattern PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = PerformanceCounterStorageKHR 2+ -- | 'PERFORMANCE_COUNTER_STORAGE_UINT64_KHR' - the performance counter -- storage is a 64-bit unsigned integer.-pattern PERFORMANCE_COUNTER_STORAGE_UINT64_KHR  = PerformanceCounterStorageKHR 3+pattern PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = PerformanceCounterStorageKHR 3+ -- | 'PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR' - the performance counter -- storage is a 32-bit floating-point. pattern PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = PerformanceCounterStorageKHR 4+ -- | 'PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR' - the performance counter -- storage is a 64-bit floating-point. pattern PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = PerformanceCounterStorageKHR 5-{-# complete PERFORMANCE_COUNTER_STORAGE_INT32_KHR,-             PERFORMANCE_COUNTER_STORAGE_INT64_KHR,-             PERFORMANCE_COUNTER_STORAGE_UINT32_KHR,-             PERFORMANCE_COUNTER_STORAGE_UINT64_KHR,-             PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR,-             PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR :: PerformanceCounterStorageKHR #-} +{-# COMPLETE+  PERFORMANCE_COUNTER_STORAGE_INT32_KHR+  , PERFORMANCE_COUNTER_STORAGE_INT64_KHR+  , PERFORMANCE_COUNTER_STORAGE_UINT32_KHR+  , PERFORMANCE_COUNTER_STORAGE_UINT64_KHR+  , PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR+  , PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR ::+    PerformanceCounterStorageKHR+  #-}+ conNamePerformanceCounterStorageKHR :: String conNamePerformanceCounterStorageKHR = "PerformanceCounterStorageKHR" @@ -1617,27 +1713,48 @@  showTablePerformanceCounterStorageKHR :: [(PerformanceCounterStorageKHR, String)] showTablePerformanceCounterStorageKHR =-  [ (PERFORMANCE_COUNTER_STORAGE_INT32_KHR  , "INT32_KHR")-  , (PERFORMANCE_COUNTER_STORAGE_INT64_KHR  , "INT64_KHR")-  , (PERFORMANCE_COUNTER_STORAGE_UINT32_KHR , "UINT32_KHR")-  , (PERFORMANCE_COUNTER_STORAGE_UINT64_KHR , "UINT64_KHR")-  , (PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR, "FLOAT32_KHR")-  , (PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR, "FLOAT64_KHR")+  [+    ( PERFORMANCE_COUNTER_STORAGE_INT32_KHR+    , "INT32_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_STORAGE_INT64_KHR+    , "INT64_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_STORAGE_UINT32_KHR+    , "UINT32_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_STORAGE_UINT64_KHR+    , "UINT64_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR+    , "FLOAT32_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR+    , "FLOAT64_KHR"+    )   ]  instance Show PerformanceCounterStorageKHR where-  showsPrec = enumShowsPrec enumPrefixPerformanceCounterStorageKHR-                            showTablePerformanceCounterStorageKHR-                            conNamePerformanceCounterStorageKHR-                            (\(PerformanceCounterStorageKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceCounterStorageKHR+      showTablePerformanceCounterStorageKHR+      conNamePerformanceCounterStorageKHR+      (\(PerformanceCounterStorageKHR x) -> x)+      (showsPrec 11)  instance Read PerformanceCounterStorageKHR where-  readPrec = enumReadPrec enumPrefixPerformanceCounterStorageKHR-                          showTablePerformanceCounterStorageKHR-                          conNamePerformanceCounterStorageKHR-                          PerformanceCounterStorageKHR-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceCounterStorageKHR+      showTablePerformanceCounterStorageKHR+      conNamePerformanceCounterStorageKHR+      PerformanceCounterStorageKHR  type PerformanceCounterDescriptionFlagsKHR = PerformanceCounterDescriptionFlagBitsKHR @@ -1654,13 +1771,12 @@ -- | 'PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR' -- specifies that recording the counter /may/ have a noticeable performance -- impact.-pattern PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR =-  PerformanceCounterDescriptionFlagBitsKHR 0x00000001+pattern PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = PerformanceCounterDescriptionFlagBitsKHR 0x00000001+ -- | 'PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR' -- specifies that concurrently recording the counter while other submitted -- command buffers are running /may/ impact the accuracy of the recording.-pattern PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR =-  PerformanceCounterDescriptionFlagBitsKHR 0x00000002+pattern PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = PerformanceCounterDescriptionFlagBitsKHR 0x00000002  conNamePerformanceCounterDescriptionFlagBitsKHR :: String conNamePerformanceCounterDescriptionFlagBitsKHR = "PerformanceCounterDescriptionFlagBitsKHR"@@ -1670,23 +1786,32 @@  showTablePerformanceCounterDescriptionFlagBitsKHR :: [(PerformanceCounterDescriptionFlagBitsKHR, String)] showTablePerformanceCounterDescriptionFlagBitsKHR =-  [ (PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, "PERFORMANCE_IMPACTING_BIT_KHR")-  , (PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, "CONCURRENTLY_IMPACTED_BIT_KHR")+  [+    ( PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR+    , "PERFORMANCE_IMPACTING_BIT_KHR"+    )+  ,+    ( PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR+    , "CONCURRENTLY_IMPACTED_BIT_KHR"+    )   ]  instance Show PerformanceCounterDescriptionFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixPerformanceCounterDescriptionFlagBitsKHR-                            showTablePerformanceCounterDescriptionFlagBitsKHR-                            conNamePerformanceCounterDescriptionFlagBitsKHR-                            (\(PerformanceCounterDescriptionFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPerformanceCounterDescriptionFlagBitsKHR+      showTablePerformanceCounterDescriptionFlagBitsKHR+      conNamePerformanceCounterDescriptionFlagBitsKHR+      (\(PerformanceCounterDescriptionFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PerformanceCounterDescriptionFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixPerformanceCounterDescriptionFlagBitsKHR-                          showTablePerformanceCounterDescriptionFlagBitsKHR-                          conNamePerformanceCounterDescriptionFlagBitsKHR-                          PerformanceCounterDescriptionFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixPerformanceCounterDescriptionFlagBitsKHR+      showTablePerformanceCounterDescriptionFlagBitsKHR+      conNamePerformanceCounterDescriptionFlagBitsKHR+      PerformanceCounterDescriptionFlagBitsKHR  type AcquireProfilingLockFlagsKHR = AcquireProfilingLockFlagBitsKHR @@ -1699,8 +1824,6 @@ newtype AcquireProfilingLockFlagBitsKHR = AcquireProfilingLockFlagBitsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameAcquireProfilingLockFlagBitsKHR :: String conNameAcquireProfilingLockFlagBitsKHR = "AcquireProfilingLockFlagBitsKHR" @@ -1711,18 +1834,21 @@ showTableAcquireProfilingLockFlagBitsKHR = []  instance Show AcquireProfilingLockFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixAcquireProfilingLockFlagBitsKHR-                            showTableAcquireProfilingLockFlagBitsKHR-                            conNameAcquireProfilingLockFlagBitsKHR-                            (\(AcquireProfilingLockFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAcquireProfilingLockFlagBitsKHR+      showTableAcquireProfilingLockFlagBitsKHR+      conNameAcquireProfilingLockFlagBitsKHR+      (\(AcquireProfilingLockFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AcquireProfilingLockFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixAcquireProfilingLockFlagBitsKHR-                          showTableAcquireProfilingLockFlagBitsKHR-                          conNameAcquireProfilingLockFlagBitsKHR-                          AcquireProfilingLockFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixAcquireProfilingLockFlagBitsKHR+      showTableAcquireProfilingLockFlagBitsKHR+      conNameAcquireProfilingLockFlagBitsKHR+      AcquireProfilingLockFlagBitsKHR  type KHR_PERFORMANCE_QUERY_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_KHR_pipeline_executable_properties.hs view
@@ -373,12 +373,20 @@   let device' = deviceHandle (device)   pPipelineInfo <- ContT $ withCStruct (pipelineInfo)   pPExecutableCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPipelineExecutablePropertiesKHR" (vkGetPipelineExecutablePropertiesKHR' device' pPipelineInfo (pPExecutableCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPipelineExecutablePropertiesKHR" (vkGetPipelineExecutablePropertiesKHR'+                                                                         device'+                                                                         pPipelineInfo+                                                                         (pPExecutableCount)+                                                                         (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pExecutableCount <- lift $ peek @Word32 pPExecutableCount   pPProperties <- ContT $ bracket (callocBytes @PipelineExecutablePropertiesKHR ((fromIntegral (pExecutableCount)) * 536)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 536) :: Ptr PipelineExecutablePropertiesKHR) . ($ ())) [0..(fromIntegral (pExecutableCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPipelineExecutablePropertiesKHR" (vkGetPipelineExecutablePropertiesKHR' device' pPipelineInfo (pPExecutableCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetPipelineExecutablePropertiesKHR" (vkGetPipelineExecutablePropertiesKHR'+                                                                          device'+                                                                          pPipelineInfo+                                                                          (pPExecutableCount)+                                                                          ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pExecutableCount' <- lift $ peek @Word32 pPExecutableCount   pProperties' <- lift $ generateM (fromIntegral (pExecutableCount')) (\i -> peekCStruct @PipelineExecutablePropertiesKHR (((pPProperties) `advancePtrBytes` (536 * (i)) :: Ptr PipelineExecutablePropertiesKHR)))@@ -468,7 +476,8 @@                                    -> -- | @pExecutableInfo@ describes the pipeline executable being queried.                                       PipelineExecutableInfoKHR                                    -> io (Result, ("statistics" ::: Vector PipelineExecutableStatisticKHR))-getPipelineExecutableStatisticsKHR device executableInfo = liftIO . evalContT $ do+getPipelineExecutableStatisticsKHR device+                                     executableInfo = liftIO . evalContT $ do   let vkGetPipelineExecutableStatisticsKHRPtr = pVkGetPipelineExecutableStatisticsKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetPipelineExecutableStatisticsKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineExecutableStatisticsKHR is null" Nothing Nothing@@ -476,12 +485,20 @@   let device' = deviceHandle (device)   pExecutableInfo <- ContT $ withCStruct (executableInfo)   pPStatisticCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPipelineExecutableStatisticsKHR" (vkGetPipelineExecutableStatisticsKHR' device' pExecutableInfo (pPStatisticCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPipelineExecutableStatisticsKHR" (vkGetPipelineExecutableStatisticsKHR'+                                                                         device'+                                                                         pExecutableInfo+                                                                         (pPStatisticCount)+                                                                         (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pStatisticCount <- lift $ peek @Word32 pPStatisticCount   pPStatistics <- ContT $ bracket (callocBytes @PipelineExecutableStatisticKHR ((fromIntegral (pStatisticCount)) * 544)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPStatistics `advancePtrBytes` (i * 544) :: Ptr PipelineExecutableStatisticKHR) . ($ ())) [0..(fromIntegral (pStatisticCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPipelineExecutableStatisticsKHR" (vkGetPipelineExecutableStatisticsKHR' device' pExecutableInfo (pPStatisticCount) ((pPStatistics)))+  r' <- lift $ traceAroundEvent "vkGetPipelineExecutableStatisticsKHR" (vkGetPipelineExecutableStatisticsKHR'+                                                                          device'+                                                                          pExecutableInfo+                                                                          (pPStatisticCount)+                                                                          ((pPStatistics)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pStatisticCount' <- lift $ peek @Word32 pPStatisticCount   pStatistics' <- lift $ generateM (fromIntegral (pStatisticCount')) (\i -> peekCStruct @PipelineExecutableStatisticKHR (((pPStatistics) `advancePtrBytes` (544 * (i)) :: Ptr PipelineExecutableStatisticKHR)))@@ -581,7 +598,8 @@                                                 -> -- | @pExecutableInfo@ describes the pipeline executable being queried.                                                    PipelineExecutableInfoKHR                                                 -> io (Result, ("internalRepresentations" ::: Vector PipelineExecutableInternalRepresentationKHR))-getPipelineExecutableInternalRepresentationsKHR device executableInfo = liftIO . evalContT $ do+getPipelineExecutableInternalRepresentationsKHR device+                                                  executableInfo = liftIO . evalContT $ do   let vkGetPipelineExecutableInternalRepresentationsKHRPtr = pVkGetPipelineExecutableInternalRepresentationsKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetPipelineExecutableInternalRepresentationsKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPipelineExecutableInternalRepresentationsKHR is null" Nothing Nothing@@ -589,12 +607,20 @@   let device' = deviceHandle (device)   pExecutableInfo <- ContT $ withCStruct (executableInfo)   pPInternalRepresentationCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPipelineExecutableInternalRepresentationsKHR" (vkGetPipelineExecutableInternalRepresentationsKHR' device' pExecutableInfo (pPInternalRepresentationCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPipelineExecutableInternalRepresentationsKHR" (vkGetPipelineExecutableInternalRepresentationsKHR'+                                                                                      device'+                                                                                      pExecutableInfo+                                                                                      (pPInternalRepresentationCount)+                                                                                      (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pInternalRepresentationCount <- lift $ peek @Word32 pPInternalRepresentationCount   pPInternalRepresentations <- ContT $ bracket (callocBytes @PipelineExecutableInternalRepresentationKHR ((fromIntegral (pInternalRepresentationCount)) * 552)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPInternalRepresentations `advancePtrBytes` (i * 552) :: Ptr PipelineExecutableInternalRepresentationKHR) . ($ ())) [0..(fromIntegral (pInternalRepresentationCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPipelineExecutableInternalRepresentationsKHR" (vkGetPipelineExecutableInternalRepresentationsKHR' device' pExecutableInfo (pPInternalRepresentationCount) ((pPInternalRepresentations)))+  r' <- lift $ traceAroundEvent "vkGetPipelineExecutableInternalRepresentationsKHR" (vkGetPipelineExecutableInternalRepresentationsKHR'+                                                                                       device'+                                                                                       pExecutableInfo+                                                                                       (pPInternalRepresentationCount)+                                                                                       ((pPInternalRepresentations)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pInternalRepresentationCount' <- lift $ peek @Word32 pPInternalRepresentationCount   pInternalRepresentations' <- lift $ generateM (fromIntegral (pInternalRepresentationCount')) (\i -> peekCStruct @PipelineExecutableInternalRepresentationKHR (((pPInternalRepresentations) `advancePtrBytes` (552 * (i)) :: Ptr PipelineExecutableInternalRepresentationKHR)))@@ -1047,7 +1073,11 @@     dataSize <- peek @CSize ((p `plusPtr` 536 :: Ptr CSize))     pData <- peek @(Ptr ()) ((p `plusPtr` 544 :: Ptr (Ptr ())))     pure $ PipelineExecutableInternalRepresentationKHR-             name description (bool32ToBool isText) (coerce @CSize @Word64 dataSize) pData+             name+             description+             (bool32ToBool isText)+             (coerce @CSize @Word64 dataSize)+             pData  instance Storable PipelineExecutableInternalRepresentationKHR where   sizeOf ~_ = 552@@ -1114,24 +1144,31 @@ -- 'Vulkan.Core10.FundamentalTypes.TRUE' or -- 'Vulkan.Core10.FundamentalTypes.FALSE' and /should/ be read from the -- @b32@ field of 'PipelineExecutableStatisticValueKHR'.-pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR  = PipelineExecutableStatisticFormatKHR 0+pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = PipelineExecutableStatisticFormatKHR 0+ -- | 'PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR' specifies that the -- statistic is returned as a signed 64-bit integer and /should/ be read -- from the @i64@ field of 'PipelineExecutableStatisticValueKHR'.-pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR   = PipelineExecutableStatisticFormatKHR 1+pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = PipelineExecutableStatisticFormatKHR 1+ -- | 'PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR' specifies that the -- statistic is returned as an unsigned 64-bit integer and /should/ be read -- from the @u64@ field of 'PipelineExecutableStatisticValueKHR'.-pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR  = PipelineExecutableStatisticFormatKHR 2+pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = PipelineExecutableStatisticFormatKHR 2+ -- | 'PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR' specifies that the -- statistic is returned as a 64-bit floating-point value and /should/ be -- read from the @f64@ field of 'PipelineExecutableStatisticValueKHR'. pattern PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = PipelineExecutableStatisticFormatKHR 3-{-# complete PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR,-             PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR,-             PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR,-             PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR :: PipelineExecutableStatisticFormatKHR #-} +{-# COMPLETE+  PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR+  , PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR+  , PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR+  , PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR ::+    PipelineExecutableStatisticFormatKHR+  #-}+ conNamePipelineExecutableStatisticFormatKHR :: String conNamePipelineExecutableStatisticFormatKHR = "PipelineExecutableStatisticFormatKHR" @@ -1140,25 +1177,40 @@  showTablePipelineExecutableStatisticFormatKHR :: [(PipelineExecutableStatisticFormatKHR, String)] showTablePipelineExecutableStatisticFormatKHR =-  [ (PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR , "BOOL32_KHR")-  , (PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR  , "INT64_KHR")-  , (PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR , "UINT64_KHR")-  , (PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR, "FLOAT64_KHR")+  [+    ( PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR+    , "BOOL32_KHR"+    )+  ,+    ( PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR+    , "INT64_KHR"+    )+  ,+    ( PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR+    , "UINT64_KHR"+    )+  ,+    ( PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR+    , "FLOAT64_KHR"+    )   ]  instance Show PipelineExecutableStatisticFormatKHR where-  showsPrec = enumShowsPrec enumPrefixPipelineExecutableStatisticFormatKHR-                            showTablePipelineExecutableStatisticFormatKHR-                            conNamePipelineExecutableStatisticFormatKHR-                            (\(PipelineExecutableStatisticFormatKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineExecutableStatisticFormatKHR+      showTablePipelineExecutableStatisticFormatKHR+      conNamePipelineExecutableStatisticFormatKHR+      (\(PipelineExecutableStatisticFormatKHR x) -> x)+      (showsPrec 11)  instance Read PipelineExecutableStatisticFormatKHR where-  readPrec = enumReadPrec enumPrefixPipelineExecutableStatisticFormatKHR-                          showTablePipelineExecutableStatisticFormatKHR-                          conNamePipelineExecutableStatisticFormatKHR-                          PipelineExecutableStatisticFormatKHR-+  readPrec =+    enumReadPrec+      enumPrefixPipelineExecutableStatisticFormatKHR+      showTablePipelineExecutableStatisticFormatKHR+      conNamePipelineExecutableStatisticFormatKHR+      PipelineExecutableStatisticFormatKHR  type KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_KHR_pipeline_library.hs view
@@ -135,6 +135,30 @@ --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT' --     flag set --+-- -   #VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07404# If @pipeline@+--     is being created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT',+--     every element of @pLibraries@ /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--+-- -   #VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07405# If @pipeline@+--     is being created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT',+--     every element of @pLibraries@ /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT'+--+-- -   #VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07406# If @pipeline@+--     is being created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT',+--     every element of @pLibraries@ /must/ have been created with+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+--+-- -   #VUID-VkPipelineLibraryCreateInfoKHR-pipeline-07407# If @pipeline@+--     is being created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT',+--     every element of @pLibraries@ /must/ have been created without+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkPipelineLibraryCreateInfoKHR-sType-sType# @sType@ /must/ be
src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -362,7 +362,21 @@     triangleFans <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))     vertexAttributeAccessBeyondStride <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))     pure $ PhysicalDevicePortabilitySubsetFeaturesKHR-             (bool32ToBool constantAlphaColorBlendFactors) (bool32ToBool events) (bool32ToBool imageViewFormatReinterpretation) (bool32ToBool imageViewFormatSwizzle) (bool32ToBool imageView2DOn3DImage) (bool32ToBool multisampleArrayImage) (bool32ToBool mutableComparisonSamplers) (bool32ToBool pointPolygons) (bool32ToBool samplerMipLodBias) (bool32ToBool separateStencilMaskRef) (bool32ToBool shaderSampleRateInterpolationFunctions) (bool32ToBool tessellationIsolines) (bool32ToBool tessellationPointMode) (bool32ToBool triangleFans) (bool32ToBool vertexAttributeAccessBeyondStride)+             (bool32ToBool constantAlphaColorBlendFactors)+             (bool32ToBool events)+             (bool32ToBool imageViewFormatReinterpretation)+             (bool32ToBool imageViewFormatSwizzle)+             (bool32ToBool imageView2DOn3DImage)+             (bool32ToBool multisampleArrayImage)+             (bool32ToBool mutableComparisonSamplers)+             (bool32ToBool pointPolygons)+             (bool32ToBool samplerMipLodBias)+             (bool32ToBool separateStencilMaskRef)+             (bool32ToBool shaderSampleRateInterpolationFunctions)+             (bool32ToBool tessellationIsolines)+             (bool32ToBool tessellationPointMode)+             (bool32ToBool triangleFans)+             (bool32ToBool vertexAttributeAccessBeyondStride)  instance Storable PhysicalDevicePortabilitySubsetFeaturesKHR where   sizeOf ~_ = 80
src/Vulkan/Extensions/VK_KHR_present_wait.hs view
@@ -225,12 +225,19 @@                                  -- nanosecond, and /may/ be longer than the requested period.                                  ("timeout" ::: Word64)                               -> io (Result)-waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHR device swapchain presentId timeout = liftIO $ do+waitForPresentKHRSafeOrUnsafe mkVkWaitForPresentKHR device+                                                      swapchain+                                                      presentId+                                                      timeout = liftIO $ do   let vkWaitForPresentKHRPtr = pVkWaitForPresentKHR (case device of Device{deviceCmds} -> deviceCmds)   unless (vkWaitForPresentKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkWaitForPresentKHR is null" Nothing Nothing   let vkWaitForPresentKHR' = mkVkWaitForPresentKHR vkWaitForPresentKHRPtr-  r <- traceAroundEvent "vkWaitForPresentKHR" (vkWaitForPresentKHR' (deviceHandle (device)) (swapchain) (presentId) (timeout))+  r <- traceAroundEvent "vkWaitForPresentKHR" (vkWaitForPresentKHR'+                                                 (deviceHandle (device))+                                                 (swapchain)+                                                 (presentId)+                                                 (timeout))   when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) 
src/Vulkan/Extensions/VK_KHR_push_descriptor.hs view
@@ -355,14 +355,24 @@                            -- the descriptors to be updated.                            ("descriptorWrites" ::: Vector (SomeStruct WriteDescriptorSet))                         -> io ()-cmdPushDescriptorSetKHR commandBuffer pipelineBindPoint layout set descriptorWrites = liftIO . evalContT $ do+cmdPushDescriptorSetKHR commandBuffer+                          pipelineBindPoint+                          layout+                          set+                          descriptorWrites = liftIO . evalContT $ do   let vkCmdPushDescriptorSetKHRPtr = pVkCmdPushDescriptorSetKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdPushDescriptorSetKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushDescriptorSetKHR is null" Nothing Nothing   let vkCmdPushDescriptorSetKHR' = mkVkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHRPtr   pPDescriptorWrites <- ContT $ allocaBytes @(WriteDescriptorSet _) ((Data.Vector.length (descriptorWrites)) * 64)   Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPDescriptorWrites `plusPtr` (64 * (i)) :: Ptr (WriteDescriptorSet _))) (e) . ($ ())) (descriptorWrites)-  lift $ traceAroundEvent "vkCmdPushDescriptorSetKHR" (vkCmdPushDescriptorSetKHR' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (layout) (set) ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32)) (forgetExtensions (pPDescriptorWrites)))+  lift $ traceAroundEvent "vkCmdPushDescriptorSetKHR" (vkCmdPushDescriptorSetKHR'+                                                         (commandBufferHandle (commandBuffer))+                                                         (pipelineBindPoint)+                                                         (layout)+                                                         (set)+                                                         ((fromIntegral (Data.Vector.length $ (descriptorWrites)) :: Word32))+                                                         (forgetExtensions (pPDescriptorWrites)))   pure $ ()  @@ -524,12 +534,21 @@                                        -- update.                                        ("data" ::: Ptr ())                                     -> io ()-cmdPushDescriptorSetWithTemplateKHR commandBuffer descriptorUpdateTemplate layout set data' = liftIO $ do+cmdPushDescriptorSetWithTemplateKHR commandBuffer+                                      descriptorUpdateTemplate+                                      layout+                                      set+                                      data' = liftIO $ do   let vkCmdPushDescriptorSetWithTemplateKHRPtr = pVkCmdPushDescriptorSetWithTemplateKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdPushDescriptorSetWithTemplateKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPushDescriptorSetWithTemplateKHR is null" Nothing Nothing   let vkCmdPushDescriptorSetWithTemplateKHR' = mkVkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHRPtr-  traceAroundEvent "vkCmdPushDescriptorSetWithTemplateKHR" (vkCmdPushDescriptorSetWithTemplateKHR' (commandBufferHandle (commandBuffer)) (descriptorUpdateTemplate) (layout) (set) (data'))+  traceAroundEvent "vkCmdPushDescriptorSetWithTemplateKHR" (vkCmdPushDescriptorSetWithTemplateKHR'+                                                              (commandBufferHandle (commandBuffer))+                                                              (descriptorUpdateTemplate)+                                                              (layout)+                                                              (set)+                                                              (data'))   pure $ ()  
src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs view
@@ -729,7 +729,9 @@   unless (vkCmdTraceRaysIndirect2KHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdTraceRaysIndirect2KHR is null" Nothing Nothing   let vkCmdTraceRaysIndirect2KHR' = mkVkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHRPtr-  traceAroundEvent "vkCmdTraceRaysIndirect2KHR" (vkCmdTraceRaysIndirect2KHR' (commandBufferHandle (commandBuffer)) (indirectDeviceAddress))+  traceAroundEvent "vkCmdTraceRaysIndirect2KHR" (vkCmdTraceRaysIndirect2KHR'+                                                   (commandBufferHandle (commandBuffer))+                                                   (indirectDeviceAddress))   pure $ ()  @@ -1031,7 +1033,20 @@     height <- peek @Word32 ((p `plusPtr` 92 :: Ptr Word32))     depth <- peek @Word32 ((p `plusPtr` 96 :: Ptr Word32))     pure $ TraceRaysIndirectCommand2KHR-             raygenShaderRecordAddress raygenShaderRecordSize missShaderBindingTableAddress missShaderBindingTableSize missShaderBindingTableStride hitShaderBindingTableAddress hitShaderBindingTableSize hitShaderBindingTableStride callableShaderBindingTableAddress callableShaderBindingTableSize callableShaderBindingTableStride width height depth+             raygenShaderRecordAddress+             raygenShaderRecordSize+             missShaderBindingTableAddress+             missShaderBindingTableSize+             missShaderBindingTableStride+             hitShaderBindingTableAddress+             hitShaderBindingTableSize+             hitShaderBindingTableStride+             callableShaderBindingTableAddress+             callableShaderBindingTableSize+             callableShaderBindingTableStride+             width+             height+             depth  instance Storable TraceRaysIndirectCommand2KHR where   sizeOf ~_ = 104@@ -1136,7 +1151,8 @@     rayTracingMaintenance1 <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     rayTracingPipelineTraceRaysIndirect2 <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceRayTracingMaintenance1FeaturesKHR-             (bool32ToBool rayTracingMaintenance1) (bool32ToBool rayTracingPipelineTraceRaysIndirect2)+             (bool32ToBool rayTracingMaintenance1)+             (bool32ToBool rayTracingPipelineTraceRaysIndirect2)  instance Storable PhysicalDeviceRayTracingMaintenance1FeaturesKHR where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -1508,7 +1508,14 @@                 -> -- | @depth@ is depth of the ray trace query dimensions.                    ("depth" ::: Word32)                 -> io ()-cmdTraceRaysKHR commandBuffer raygenShaderBindingTable missShaderBindingTable hitShaderBindingTable callableShaderBindingTable width height depth = liftIO . evalContT $ do+cmdTraceRaysKHR commandBuffer+                  raygenShaderBindingTable+                  missShaderBindingTable+                  hitShaderBindingTable+                  callableShaderBindingTable+                  width+                  height+                  depth = liftIO . evalContT $ do   let vkCmdTraceRaysKHRPtr = pVkCmdTraceRaysKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdTraceRaysKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdTraceRaysKHR is null" Nothing Nothing@@ -1517,7 +1524,15 @@   pMissShaderBindingTable <- ContT $ withCStruct (missShaderBindingTable)   pHitShaderBindingTable <- ContT $ withCStruct (hitShaderBindingTable)   pCallableShaderBindingTable <- ContT $ withCStruct (callableShaderBindingTable)-  lift $ traceAroundEvent "vkCmdTraceRaysKHR" (vkCmdTraceRaysKHR' (commandBufferHandle (commandBuffer)) pRaygenShaderBindingTable pMissShaderBindingTable pHitShaderBindingTable pCallableShaderBindingTable (width) (height) (depth))+  lift $ traceAroundEvent "vkCmdTraceRaysKHR" (vkCmdTraceRaysKHR'+                                                 (commandBufferHandle (commandBuffer))+                                                 pRaygenShaderBindingTable+                                                 pMissShaderBindingTable+                                                 pHitShaderBindingTable+                                                 pCallableShaderBindingTable+                                                 (width)+                                                 (height)+                                                 (depth))   pure $ ()  @@ -1607,12 +1622,23 @@                                       -- be written.                                       ("data" ::: Ptr ())                                    -> io ()-getRayTracingShaderGroupHandlesKHR device pipeline firstGroup groupCount dataSize data' = liftIO $ do+getRayTracingShaderGroupHandlesKHR device+                                     pipeline+                                     firstGroup+                                     groupCount+                                     dataSize+                                     data' = liftIO $ do   let vkGetRayTracingShaderGroupHandlesKHRPtr = pVkGetRayTracingShaderGroupHandlesKHR (case device of Device{deviceCmds} -> deviceCmds)   unless (vkGetRayTracingShaderGroupHandlesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRayTracingShaderGroupHandlesKHR is null" Nothing Nothing   let vkGetRayTracingShaderGroupHandlesKHR' = mkVkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHRPtr-  r <- traceAroundEvent "vkGetRayTracingShaderGroupHandlesKHR" (vkGetRayTracingShaderGroupHandlesKHR' (deviceHandle (device)) (pipeline) (firstGroup) (groupCount) (CSize (dataSize)) (data'))+  r <- traceAroundEvent "vkGetRayTracingShaderGroupHandlesKHR" (vkGetRayTracingShaderGroupHandlesKHR'+                                                                  (deviceHandle (device))+                                                                  (pipeline)+                                                                  (firstGroup)+                                                                  (groupCount)+                                                                  (CSize (dataSize))+                                                                  (data'))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -1707,12 +1733,23 @@                                                    -- be written.                                                    ("data" ::: Ptr ())                                                 -> io ()-getRayTracingCaptureReplayShaderGroupHandlesKHR device pipeline firstGroup groupCount dataSize data' = liftIO $ do+getRayTracingCaptureReplayShaderGroupHandlesKHR device+                                                  pipeline+                                                  firstGroup+                                                  groupCount+                                                  dataSize+                                                  data' = liftIO $ do   let vkGetRayTracingCaptureReplayShaderGroupHandlesKHRPtr = pVkGetRayTracingCaptureReplayShaderGroupHandlesKHR (case device of Device{deviceCmds} -> deviceCmds)   unless (vkGetRayTracingCaptureReplayShaderGroupHandlesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRayTracingCaptureReplayShaderGroupHandlesKHR is null" Nothing Nothing   let vkGetRayTracingCaptureReplayShaderGroupHandlesKHR' = mkVkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHRPtr-  r <- traceAroundEvent "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" (vkGetRayTracingCaptureReplayShaderGroupHandlesKHR' (deviceHandle (device)) (pipeline) (firstGroup) (groupCount) (CSize (dataSize)) (data'))+  r <- traceAroundEvent "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" (vkGetRayTracingCaptureReplayShaderGroupHandlesKHR'+                                                                               (deviceHandle (device))+                                                                               (pipeline)+                                                                               (firstGroup)+                                                                               (groupCount)+                                                                               (CSize (dataSize))+                                                                               (data'))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -1870,7 +1907,11 @@                                 -- chapter.                                 ("allocator" ::: Maybe AllocationCallbacks)                              -> io (Result, ("pipelines" ::: Vector Pipeline))-createRayTracingPipelinesKHR device deferredOperation pipelineCache createInfos allocator = liftIO . evalContT $ do+createRayTracingPipelinesKHR device+                               deferredOperation+                               pipelineCache+                               createInfos+                               allocator = liftIO . evalContT $ do   let vkCreateRayTracingPipelinesKHRPtr = pVkCreateRayTracingPipelinesKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateRayTracingPipelinesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateRayTracingPipelinesKHR is null" Nothing Nothing@@ -1881,7 +1922,14 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free-  r <- lift $ traceAroundEvent "vkCreateRayTracingPipelinesKHR" (vkCreateRayTracingPipelinesKHR' (deviceHandle (device)) (deferredOperation) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))+  r <- lift $ traceAroundEvent "vkCreateRayTracingPipelinesKHR" (vkCreateRayTracingPipelinesKHR'+                                                                   (deviceHandle (device))+                                                                   (deferredOperation)+                                                                   (pipelineCache)+                                                                   ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))+                                                                   (forgetExtensions (pPCreateInfos))+                                                                   pAllocator+                                                                   (pPPipelines))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))   pure $ (r, pPipelines)@@ -1895,9 +1943,20 @@ -- To just extract the pair pass '(,)' as the last argument. -- withRayTracingPipelinesKHR :: forall io r . MonadIO io => Device -> DeferredOperationKHR -> PipelineCache -> Vector (SomeStruct RayTracingPipelineCreateInfoKHR) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r-withRayTracingPipelinesKHR device deferredOperation pipelineCache pCreateInfos pAllocator b =-  b (createRayTracingPipelinesKHR device deferredOperation pipelineCache pCreateInfos pAllocator)-    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)+withRayTracingPipelinesKHR device+                             deferredOperation+                             pipelineCache+                             pCreateInfos+                             pAllocator+                             b =+  b (createRayTracingPipelinesKHR device+                                    deferredOperation+                                    pipelineCache+                                    pCreateInfos+                                    pAllocator)+    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device+                                                         o1Elem+                                                         pAllocator) o1)   foreign import ccall@@ -2546,7 +2605,12 @@                            -- parameters.                            ("indirectDeviceAddress" ::: DeviceAddress)                         -> io ()-cmdTraceRaysIndirectKHR commandBuffer raygenShaderBindingTable missShaderBindingTable hitShaderBindingTable callableShaderBindingTable indirectDeviceAddress = liftIO . evalContT $ do+cmdTraceRaysIndirectKHR commandBuffer+                          raygenShaderBindingTable+                          missShaderBindingTable+                          hitShaderBindingTable+                          callableShaderBindingTable+                          indirectDeviceAddress = liftIO . evalContT $ do   let vkCmdTraceRaysIndirectKHRPtr = pVkCmdTraceRaysIndirectKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdTraceRaysIndirectKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdTraceRaysIndirectKHR is null" Nothing Nothing@@ -2555,7 +2619,13 @@   pMissShaderBindingTable <- ContT $ withCStruct (missShaderBindingTable)   pHitShaderBindingTable <- ContT $ withCStruct (hitShaderBindingTable)   pCallableShaderBindingTable <- ContT $ withCStruct (callableShaderBindingTable)-  lift $ traceAroundEvent "vkCmdTraceRaysIndirectKHR" (vkCmdTraceRaysIndirectKHR' (commandBufferHandle (commandBuffer)) pRaygenShaderBindingTable pMissShaderBindingTable pHitShaderBindingTable pCallableShaderBindingTable (indirectDeviceAddress))+  lift $ traceAroundEvent "vkCmdTraceRaysIndirectKHR" (vkCmdTraceRaysIndirectKHR'+                                                         (commandBufferHandle (commandBuffer))+                                                         pRaygenShaderBindingTable+                                                         pMissShaderBindingTable+                                                         pHitShaderBindingTable+                                                         pCallableShaderBindingTable+                                                         (indirectDeviceAddress))   pure $ ()  @@ -2619,12 +2689,19 @@                                      -> -- | @groupShader@ is the type of shader from the group to query.                                         ShaderGroupShaderKHR                                      -> io (DeviceSize)-getRayTracingShaderGroupStackSizeKHR device pipeline group groupShader = liftIO $ do+getRayTracingShaderGroupStackSizeKHR device+                                       pipeline+                                       group+                                       groupShader = liftIO $ do   let vkGetRayTracingShaderGroupStackSizeKHRPtr = pVkGetRayTracingShaderGroupStackSizeKHR (case device of Device{deviceCmds} -> deviceCmds)   unless (vkGetRayTracingShaderGroupStackSizeKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetRayTracingShaderGroupStackSizeKHR is null" Nothing Nothing   let vkGetRayTracingShaderGroupStackSizeKHR' = mkVkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHRPtr-  r <- traceAroundEvent "vkGetRayTracingShaderGroupStackSizeKHR" (vkGetRayTracingShaderGroupStackSizeKHR' (deviceHandle (device)) (pipeline) (group) (groupShader))+  r <- traceAroundEvent "vkGetRayTracingShaderGroupStackSizeKHR" (vkGetRayTracingShaderGroupStackSizeKHR'+                                                                    (deviceHandle (device))+                                                                    (pipeline)+                                                                    (group)+                                                                    (groupShader))   pure $ (r)  @@ -2706,12 +2783,15 @@                                         -- trace commands.                                         ("pipelineStackSize" ::: Word32)                                      -> io ()-cmdSetRayTracingPipelineStackSizeKHR commandBuffer pipelineStackSize = liftIO $ do+cmdSetRayTracingPipelineStackSizeKHR commandBuffer+                                       pipelineStackSize = liftIO $ do   let vkCmdSetRayTracingPipelineStackSizeKHRPtr = pVkCmdSetRayTracingPipelineStackSizeKHR (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdSetRayTracingPipelineStackSizeKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetRayTracingPipelineStackSizeKHR is null" Nothing Nothing   let vkCmdSetRayTracingPipelineStackSizeKHR' = mkVkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHRPtr-  traceAroundEvent "vkCmdSetRayTracingPipelineStackSizeKHR" (vkCmdSetRayTracingPipelineStackSizeKHR' (commandBufferHandle (commandBuffer)) (pipelineStackSize))+  traceAroundEvent "vkCmdSetRayTracingPipelineStackSizeKHR" (vkCmdSetRayTracingPipelineStackSizeKHR'+                                                               (commandBufferHandle (commandBuffer))+                                                               (pipelineStackSize))   pure $ ()  @@ -2869,7 +2949,12 @@     intersectionShader <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))     pShaderGroupCaptureReplayHandle <- peek @(Ptr ()) ((p `plusPtr` 40 :: Ptr (Ptr ())))     pure $ RayTracingShaderGroupCreateInfoKHR-             type' generalShader closestHitShader anyHitShader intersectionShader pShaderGroupCaptureReplayHandle+             type'+             generalShader+             closestHitShader+             anyHitShader+             intersectionShader+             pShaderGroupCaptureReplayHandle  instance Storable RayTracingShaderGroupCreateInfoKHR where   sizeOf ~_ = 48@@ -3152,6 +3237,14 @@ --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CALLABLE_BIT_KHR' --+-- -   #VUID-VkRayTracingPipelineCreateInfoKHR-flags-07403# If @flags@+--     includes+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT',+--     each element of @pLibraryInfo->pLibraries@ /must/ have been created+--     with the+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'+--     bit set+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType# @sType@ /must/@@ -3281,7 +3374,8 @@     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | otherwise = Nothing -instance (Extendss RayTracingPipelineCreateInfoKHR es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoKHR es) where+instance ( Extendss RayTracingPipelineCreateInfoKHR es+         , PokeChain es ) => ToCStruct (RayTracingPipelineCreateInfoKHR es) where   withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)   pokeCStruct p RayTracingPipelineCreateInfoKHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR)@@ -3324,7 +3418,8 @@     lift $ poke ((p `plusPtr` 96 :: Ptr Int32)) (zero)     lift $ f -instance (Extendss RayTracingPipelineCreateInfoKHR es, PeekChain es) => FromCStruct (RayTracingPipelineCreateInfoKHR es) where+instance ( Extendss RayTracingPipelineCreateInfoKHR es+         , PeekChain es ) => FromCStruct (RayTracingPipelineCreateInfoKHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -3346,7 +3441,17 @@     basePipelineHandle <- peek @Pipeline ((p `plusPtr` 88 :: Ptr Pipeline))     basePipelineIndex <- peek @Int32 ((p `plusPtr` 96 :: Ptr Int32))     pure $ RayTracingPipelineCreateInfoKHR-             next flags pStages' pGroups' maxPipelineRayRecursionDepth pLibraryInfo' pLibraryInterface' pDynamicState' layout basePipelineHandle basePipelineIndex+             next+             flags+             pStages'+             pGroups'+             maxPipelineRayRecursionDepth+             pLibraryInfo'+             pLibraryInterface'+             pDynamicState'+             layout+             basePipelineHandle+             basePipelineIndex  instance es ~ '[] => Zero (RayTracingPipelineCreateInfoKHR es) where   zero = RayTracingPipelineCreateInfoKHR@@ -3483,7 +3588,11 @@     rayTracingPipelineTraceRaysIndirect <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))     rayTraversalPrimitiveCulling <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))     pure $ PhysicalDeviceRayTracingPipelineFeaturesKHR-             (bool32ToBool rayTracingPipeline) (bool32ToBool rayTracingPipelineShaderGroupHandleCaptureReplay) (bool32ToBool rayTracingPipelineShaderGroupHandleCaptureReplayMixed) (bool32ToBool rayTracingPipelineTraceRaysIndirect) (bool32ToBool rayTraversalPrimitiveCulling)+             (bool32ToBool rayTracingPipeline)+             (bool32ToBool rayTracingPipelineShaderGroupHandleCaptureReplay)+             (bool32ToBool rayTracingPipelineShaderGroupHandleCaptureReplayMixed)+             (bool32ToBool rayTracingPipelineTraceRaysIndirect)+             (bool32ToBool rayTraversalPrimitiveCulling)  instance Storable PhysicalDeviceRayTracingPipelineFeaturesKHR where   sizeOf ~_ = 40@@ -3595,7 +3704,14 @@     shaderGroupHandleAlignment <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))     maxRayHitAttributeSize <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))     pure $ PhysicalDeviceRayTracingPipelinePropertiesKHR-             shaderGroupHandleSize maxRayRecursionDepth maxShaderGroupStride shaderGroupBaseAlignment shaderGroupHandleCaptureReplaySize maxRayDispatchInvocationCount shaderGroupHandleAlignment maxRayHitAttributeSize+             shaderGroupHandleSize+             maxRayRecursionDepth+             maxShaderGroupStride+             shaderGroupBaseAlignment+             shaderGroupHandleCaptureReplaySize+             maxRayDispatchInvocationCount+             shaderGroupHandleAlignment+             maxRayHitAttributeSize  instance Storable PhysicalDeviceRayTracingPipelinePropertiesKHR where   sizeOf ~_ = 48@@ -3880,20 +3996,26 @@ -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MISS_BIT_KHR', or -- 'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CALLABLE_BIT_KHR' -- shader in it.-pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR              = RayTracingShaderGroupTypeKHR 0+pattern RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = RayTracingShaderGroupTypeKHR 0+ -- | 'RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR' specifies a -- shader group that only hits triangles and /must/ not contain an -- intersection shader, only closest hit and any-hit shaders.-pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR  = RayTracingShaderGroupTypeKHR 1+pattern RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = RayTracingShaderGroupTypeKHR 1+ -- | 'RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR' specifies a -- shader group that only intersects with custom geometry and /must/ -- contain an intersection shader and /may/ contain closest hit and any-hit -- shaders. pattern RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = RayTracingShaderGroupTypeKHR 2-{-# complete RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,-             RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,-             RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR :: RayTracingShaderGroupTypeKHR #-} +{-# COMPLETE+  RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR+  , RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR+  , RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR ::+    RayTracingShaderGroupTypeKHR+  #-}+ conNameRayTracingShaderGroupTypeKHR :: String conNameRayTracingShaderGroupTypeKHR = "RayTracingShaderGroupTypeKHR" @@ -3902,24 +4024,36 @@  showTableRayTracingShaderGroupTypeKHR :: [(RayTracingShaderGroupTypeKHR, String)] showTableRayTracingShaderGroupTypeKHR =-  [ (RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR             , "GENERAL_KHR")-  , (RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR , "TRIANGLES_HIT_GROUP_KHR")-  , (RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, "PROCEDURAL_HIT_GROUP_KHR")+  [+    ( RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR+    , "GENERAL_KHR"+    )+  ,+    ( RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR+    , "TRIANGLES_HIT_GROUP_KHR"+    )+  ,+    ( RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR+    , "PROCEDURAL_HIT_GROUP_KHR"+    )   ]  instance Show RayTracingShaderGroupTypeKHR where-  showsPrec = enumShowsPrec enumPrefixRayTracingShaderGroupTypeKHR-                            showTableRayTracingShaderGroupTypeKHR-                            conNameRayTracingShaderGroupTypeKHR-                            (\(RayTracingShaderGroupTypeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixRayTracingShaderGroupTypeKHR+      showTableRayTracingShaderGroupTypeKHR+      conNameRayTracingShaderGroupTypeKHR+      (\(RayTracingShaderGroupTypeKHR x) -> x)+      (showsPrec 11)  instance Read RayTracingShaderGroupTypeKHR where-  readPrec = enumReadPrec enumPrefixRayTracingShaderGroupTypeKHR-                          showTableRayTracingShaderGroupTypeKHR-                          conNameRayTracingShaderGroupTypeKHR-                          RayTracingShaderGroupTypeKHR-+  readPrec =+    enumReadPrec+      enumPrefixRayTracingShaderGroupTypeKHR+      showTableRayTracingShaderGroupTypeKHR+      conNameRayTracingShaderGroupTypeKHR+      RayTracingShaderGroupTypeKHR  -- | VkShaderGroupShaderKHR - Shader group shaders --@@ -3932,21 +4066,28 @@  -- | 'SHADER_GROUP_SHADER_GENERAL_KHR' uses the shader specified in the group -- with 'RayTracingShaderGroupCreateInfoKHR'::@generalShader@-pattern SHADER_GROUP_SHADER_GENERAL_KHR      = ShaderGroupShaderKHR 0+pattern SHADER_GROUP_SHADER_GENERAL_KHR = ShaderGroupShaderKHR 0+ -- | 'SHADER_GROUP_SHADER_CLOSEST_HIT_KHR' uses the shader specified in the -- group with 'RayTracingShaderGroupCreateInfoKHR'::@closestHitShader@-pattern SHADER_GROUP_SHADER_CLOSEST_HIT_KHR  = ShaderGroupShaderKHR 1+pattern SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = ShaderGroupShaderKHR 1+ -- | 'SHADER_GROUP_SHADER_ANY_HIT_KHR' uses the shader specified in the group -- with 'RayTracingShaderGroupCreateInfoKHR'::@anyHitShader@-pattern SHADER_GROUP_SHADER_ANY_HIT_KHR      = ShaderGroupShaderKHR 2+pattern SHADER_GROUP_SHADER_ANY_HIT_KHR = ShaderGroupShaderKHR 2+ -- | 'SHADER_GROUP_SHADER_INTERSECTION_KHR' uses the shader specified in the -- group with 'RayTracingShaderGroupCreateInfoKHR'::@intersectionShader@ pattern SHADER_GROUP_SHADER_INTERSECTION_KHR = ShaderGroupShaderKHR 3-{-# complete SHADER_GROUP_SHADER_GENERAL_KHR,-             SHADER_GROUP_SHADER_CLOSEST_HIT_KHR,-             SHADER_GROUP_SHADER_ANY_HIT_KHR,-             SHADER_GROUP_SHADER_INTERSECTION_KHR :: ShaderGroupShaderKHR #-} +{-# COMPLETE+  SHADER_GROUP_SHADER_GENERAL_KHR+  , SHADER_GROUP_SHADER_CLOSEST_HIT_KHR+  , SHADER_GROUP_SHADER_ANY_HIT_KHR+  , SHADER_GROUP_SHADER_INTERSECTION_KHR ::+    ShaderGroupShaderKHR+  #-}+ conNameShaderGroupShaderKHR :: String conNameShaderGroupShaderKHR = "ShaderGroupShaderKHR" @@ -3955,25 +4096,40 @@  showTableShaderGroupShaderKHR :: [(ShaderGroupShaderKHR, String)] showTableShaderGroupShaderKHR =-  [ (SHADER_GROUP_SHADER_GENERAL_KHR     , "GENERAL_KHR")-  , (SHADER_GROUP_SHADER_CLOSEST_HIT_KHR , "CLOSEST_HIT_KHR")-  , (SHADER_GROUP_SHADER_ANY_HIT_KHR     , "ANY_HIT_KHR")-  , (SHADER_GROUP_SHADER_INTERSECTION_KHR, "INTERSECTION_KHR")+  [+    ( SHADER_GROUP_SHADER_GENERAL_KHR+    , "GENERAL_KHR"+    )+  ,+    ( SHADER_GROUP_SHADER_CLOSEST_HIT_KHR+    , "CLOSEST_HIT_KHR"+    )+  ,+    ( SHADER_GROUP_SHADER_ANY_HIT_KHR+    , "ANY_HIT_KHR"+    )+  ,+    ( SHADER_GROUP_SHADER_INTERSECTION_KHR+    , "INTERSECTION_KHR"+    )   ]  instance Show ShaderGroupShaderKHR where-  showsPrec = enumShowsPrec enumPrefixShaderGroupShaderKHR-                            showTableShaderGroupShaderKHR-                            conNameShaderGroupShaderKHR-                            (\(ShaderGroupShaderKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixShaderGroupShaderKHR+      showTableShaderGroupShaderKHR+      conNameShaderGroupShaderKHR+      (\(ShaderGroupShaderKHR x) -> x)+      (showsPrec 11)  instance Read ShaderGroupShaderKHR where-  readPrec = enumReadPrec enumPrefixShaderGroupShaderKHR-                          showTableShaderGroupShaderKHR-                          conNameShaderGroupShaderKHR-                          ShaderGroupShaderKHR-+  readPrec =+    enumReadPrec+      enumPrefixShaderGroupShaderKHR+      showTableShaderGroupShaderKHR+      conNameShaderGroupShaderKHR+      ShaderGroupShaderKHR  type KHR_RAY_TRACING_PIPELINE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs-boot view
@@ -760,10 +760,12 @@ type role RayTracingPipelineCreateInfoKHR nominal data RayTracingPipelineCreateInfoKHR (es :: [Type]) -instance (Extendss RayTracingPipelineCreateInfoKHR es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoKHR es)+instance ( Extendss RayTracingPipelineCreateInfoKHR es+         , PokeChain es ) => ToCStruct (RayTracingPipelineCreateInfoKHR es) instance Show (Chain es) => Show (RayTracingPipelineCreateInfoKHR es) -instance (Extendss RayTracingPipelineCreateInfoKHR es, PeekChain es) => FromCStruct (RayTracingPipelineCreateInfoKHR es)+instance ( Extendss RayTracingPipelineCreateInfoKHR es+         , PeekChain es ) => FromCStruct (RayTracingPipelineCreateInfoKHR es)   data RayTracingPipelineInterfaceCreateInfoKHR
src/Vulkan/Extensions/VK_KHR_shared_presentable_image.hs view
@@ -335,7 +335,9 @@   unless (vkGetSwapchainStatusKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetSwapchainStatusKHR is null" Nothing Nothing   let vkGetSwapchainStatusKHR' = mkVkGetSwapchainStatusKHR vkGetSwapchainStatusKHRPtr-  r <- traceAroundEvent "vkGetSwapchainStatusKHR" (vkGetSwapchainStatusKHR' (deviceHandle (device)) (swapchain))+  r <- traceAroundEvent "vkGetSwapchainStatusKHR" (vkGetSwapchainStatusKHR'+                                                     (deviceHandle (device))+                                                     (swapchain))   when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) 
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -583,7 +583,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroySurfaceKHR" (vkDestroySurfaceKHR' (instanceHandle (instance')) (surface) pAllocator)+  lift $ traceAroundEvent "vkDestroySurfaceKHR" (vkDestroySurfaceKHR'+                                                   (instanceHandle (instance'))+                                                   (surface)+                                                   pAllocator)   pure $ ()  @@ -652,13 +655,19 @@                                    -> -- | @surface@ is the surface.                                       SurfaceKHR                                    -> io (("supported" ::: Bool))-getPhysicalDeviceSurfaceSupportKHR physicalDevice queueFamilyIndex surface = liftIO . evalContT $ do+getPhysicalDeviceSurfaceSupportKHR physicalDevice+                                     queueFamilyIndex+                                     surface = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfaceSupportKHRPtr = pVkGetPhysicalDeviceSurfaceSupportKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfaceSupportKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceSupportKHR is null" Nothing Nothing   let vkGetPhysicalDeviceSurfaceSupportKHR' = mkVkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHRPtr   pPSupported <- ContT $ bracket (callocBytes @Bool32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceSupportKHR" (vkGetPhysicalDeviceSurfaceSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (surface) (pPSupported))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceSupportKHR" (vkGetPhysicalDeviceSurfaceSupportKHR'+                                                                         (physicalDeviceHandle (physicalDevice))+                                                                         (queueFamilyIndex)+                                                                         (surface)+                                                                         (pPSupported))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSupported <- lift $ peek @Bool32 pPSupported   pure $ ((bool32ToBool pSupported))@@ -731,13 +740,17 @@                                         -> -- | @surface@ is the surface that will be associated with the swapchain.                                            SurfaceKHR                                         -> io (SurfaceCapabilitiesKHR)-getPhysicalDeviceSurfaceCapabilitiesKHR physicalDevice surface = liftIO . evalContT $ do+getPhysicalDeviceSurfaceCapabilitiesKHR physicalDevice+                                          surface = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfaceCapabilitiesKHRPtr = pVkGetPhysicalDeviceSurfaceCapabilitiesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfaceCapabilitiesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceCapabilitiesKHR is null" Nothing Nothing   let vkGetPhysicalDeviceSurfaceCapabilitiesKHR' = mkVkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHRPtr   pPSurfaceCapabilities <- ContT (withZeroCStruct @SurfaceCapabilitiesKHR)-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" (vkGetPhysicalDeviceSurfaceCapabilitiesKHR' (physicalDeviceHandle (physicalDevice)) (surface) (pPSurfaceCapabilities))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" (vkGetPhysicalDeviceSurfaceCapabilitiesKHR'+                                                                              (physicalDeviceHandle (physicalDevice))+                                                                              (surface)+                                                                              (pPSurfaceCapabilities))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurfaceCapabilities <- lift $ peekCStruct @SurfaceCapabilitiesKHR pPSurfaceCapabilities   pure $ (pSurfaceCapabilities)@@ -852,19 +865,28 @@                                    -> -- | @surface@ is the surface that will be associated with the swapchain.                                       SurfaceKHR                                    -> io (Result, ("surfaceFormats" ::: Vector SurfaceFormatKHR))-getPhysicalDeviceSurfaceFormatsKHR physicalDevice surface = liftIO . evalContT $ do+getPhysicalDeviceSurfaceFormatsKHR physicalDevice+                                     surface = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfaceFormatsKHRPtr = pVkGetPhysicalDeviceSurfaceFormatsKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfaceFormatsKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfaceFormatsKHR is null" Nothing Nothing   let vkGetPhysicalDeviceSurfaceFormatsKHR' = mkVkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPSurfaceFormatCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormatsKHR" (vkGetPhysicalDeviceSurfaceFormatsKHR' physicalDevice' (surface) (pPSurfaceFormatCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormatsKHR" (vkGetPhysicalDeviceSurfaceFormatsKHR'+                                                                         physicalDevice'+                                                                         (surface)+                                                                         (pPSurfaceFormatCount)+                                                                         (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurfaceFormatCount <- lift $ peek @Word32 pPSurfaceFormatCount   pPSurfaceFormats <- ContT $ bracket (callocBytes @SurfaceFormatKHR ((fromIntegral (pSurfaceFormatCount)) * 8)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPSurfaceFormats `advancePtrBytes` (i * 8) :: Ptr SurfaceFormatKHR) . ($ ())) [0..(fromIntegral (pSurfaceFormatCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormatsKHR" (vkGetPhysicalDeviceSurfaceFormatsKHR' physicalDevice' (surface) (pPSurfaceFormatCount) ((pPSurfaceFormats)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfaceFormatsKHR" (vkGetPhysicalDeviceSurfaceFormatsKHR'+                                                                          physicalDevice'+                                                                          (surface)+                                                                          (pPSurfaceFormatCount)+                                                                          ((pPSurfaceFormats)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pSurfaceFormatCount' <- lift $ peek @Word32 pPSurfaceFormatCount   pSurfaceFormats' <- lift $ generateM (fromIntegral (pSurfaceFormatCount')) (\i -> peekCStruct @SurfaceFormatKHR (((pPSurfaceFormats) `advancePtrBytes` (8 * (i)) :: Ptr SurfaceFormatKHR)))@@ -969,18 +991,27 @@                                         -> -- | @surface@ is the surface that will be associated with the swapchain.                                            SurfaceKHR                                         -> io (Result, ("presentModes" ::: Vector PresentModeKHR))-getPhysicalDeviceSurfacePresentModesKHR physicalDevice surface = liftIO . evalContT $ do+getPhysicalDeviceSurfacePresentModesKHR physicalDevice+                                          surface = liftIO . evalContT $ do   let vkGetPhysicalDeviceSurfacePresentModesKHRPtr = pVkGetPhysicalDeviceSurfacePresentModesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceSurfacePresentModesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceSurfacePresentModesKHR is null" Nothing Nothing   let vkGetPhysicalDeviceSurfacePresentModesKHR' = mkVkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPresentModeCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModesKHR" (vkGetPhysicalDeviceSurfacePresentModesKHR' physicalDevice' (surface) (pPPresentModeCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModesKHR" (vkGetPhysicalDeviceSurfacePresentModesKHR'+                                                                              physicalDevice'+                                                                              (surface)+                                                                              (pPPresentModeCount)+                                                                              (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPresentModeCount <- lift $ peek @Word32 pPPresentModeCount   pPPresentModes <- ContT $ bracket (callocBytes @PresentModeKHR ((fromIntegral (pPresentModeCount)) * 4)) free-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModesKHR" (vkGetPhysicalDeviceSurfacePresentModesKHR' physicalDevice' (surface) (pPPresentModeCount) (pPPresentModes))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSurfacePresentModesKHR" (vkGetPhysicalDeviceSurfacePresentModesKHR'+                                                                               physicalDevice'+                                                                               (surface)+                                                                               (pPPresentModeCount)+                                                                               (pPPresentModes))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPresentModeCount' <- lift $ peek @Word32 pPPresentModeCount   pPresentModes' <- lift $ generateM (fromIntegral (pPresentModeCount')) (\i -> peek @PresentModeKHR ((pPPresentModes `advancePtrBytes` (4 * (i)) :: Ptr PresentModeKHR)))@@ -1125,7 +1156,16 @@     supportedCompositeAlpha <- peek @CompositeAlphaFlagsKHR ((p `plusPtr` 44 :: Ptr CompositeAlphaFlagsKHR))     supportedUsageFlags <- peek @ImageUsageFlags ((p `plusPtr` 48 :: Ptr ImageUsageFlags))     pure $ SurfaceCapabilitiesKHR-             minImageCount maxImageCount currentExtent minImageExtent maxImageExtent maxImageArrayLayers supportedTransforms currentTransform supportedCompositeAlpha supportedUsageFlags+             minImageCount+             maxImageCount+             currentExtent+             minImageExtent+             maxImageExtent+             maxImageArrayLayers+             supportedTransforms+             currentTransform+             supportedCompositeAlpha+             supportedUsageFlags  instance Storable SurfaceCapabilitiesKHR where   sizeOf ~_ = 52@@ -1253,7 +1293,8 @@ -- meaning this mode /may/ result in visible tearing. No internal queuing -- of presentation requests is needed, as the requests are applied -- immediately.-pattern PRESENT_MODE_IMMEDIATE_KHR                 = PresentModeKHR 0+pattern PRESENT_MODE_IMMEDIATE_KHR = PresentModeKHR 0+ -- | 'PRESENT_MODE_MAILBOX_KHR' specifies that the presentation engine waits -- for the next vertical blanking period to update the current image. -- Tearing /cannot/ be observed. An internal single-entry queue is used to@@ -1263,7 +1304,8 @@ -- for re-use by the application. One request is removed from the queue and -- processed during each vertical blanking period in which the queue is -- non-empty.-pattern PRESENT_MODE_MAILBOX_KHR                   = PresentModeKHR 1+pattern PRESENT_MODE_MAILBOX_KHR = PresentModeKHR 1+ -- | 'PRESENT_MODE_FIFO_KHR' specifies that the presentation engine waits for -- the next vertical blanking period to update the current image. Tearing -- /cannot/ be observed. An internal queue is used to hold pending@@ -1272,7 +1314,8 @@ -- processed during each vertical blanking period in which the queue is -- non-empty. This is the only value of @presentMode@ that is /required/ to -- be supported.-pattern PRESENT_MODE_FIFO_KHR                      = PresentModeKHR 2+pattern PRESENT_MODE_FIFO_KHR = PresentModeKHR 2+ -- | 'PRESENT_MODE_FIFO_RELAXED_KHR' specifies that the presentation engine -- generally waits for the next vertical blanking period to update the -- current image. If a vertical blanking period has already passed since@@ -1287,7 +1330,8 @@ -- queue, and one request is removed from the beginning of the queue and -- processed during or after each vertical blanking period in which the -- queue is non-empty.-pattern PRESENT_MODE_FIFO_RELAXED_KHR              = PresentModeKHR 3+pattern PRESENT_MODE_FIFO_RELAXED_KHR = PresentModeKHR 3+ -- | 'PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR' specifies that the -- presentation engine and application have concurrent access to a single -- image, which is referred to as a /shared presentable image/. The@@ -1300,6 +1344,7 @@ -- the timing of when it will be updated. This mode /may/ result in visible -- tearing if rendering to the image is not timed correctly. pattern PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = PresentModeKHR 1000111001+ -- | 'PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR' specifies that the presentation -- engine and application have concurrent access to a single image, which -- is referred to as a /shared presentable image/. The presentation engine@@ -1308,14 +1353,18 @@ -- presentation request whenever an update is required. However, the -- presentation engine /may/ update the current image at any point, meaning -- this mode /may/ result in visible tearing.-pattern PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR     = PresentModeKHR 1000111000-{-# complete PRESENT_MODE_IMMEDIATE_KHR,-             PRESENT_MODE_MAILBOX_KHR,-             PRESENT_MODE_FIFO_KHR,-             PRESENT_MODE_FIFO_RELAXED_KHR,-             PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR,-             PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR :: PresentModeKHR #-}+pattern PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = PresentModeKHR 1000111000 +{-# COMPLETE+  PRESENT_MODE_IMMEDIATE_KHR+  , PRESENT_MODE_MAILBOX_KHR+  , PRESENT_MODE_FIFO_KHR+  , PRESENT_MODE_FIFO_RELAXED_KHR+  , PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR+  , PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR ::+    PresentModeKHR+  #-}+ conNamePresentModeKHR :: String conNamePresentModeKHR = "PresentModeKHR" @@ -1324,24 +1373,36 @@  showTablePresentModeKHR :: [(PresentModeKHR, String)] showTablePresentModeKHR =-  [ (PRESENT_MODE_IMMEDIATE_KHR                , "IMMEDIATE_KHR")-  , (PRESENT_MODE_MAILBOX_KHR                  , "MAILBOX_KHR")-  , (PRESENT_MODE_FIFO_KHR                     , "FIFO_KHR")-  , (PRESENT_MODE_FIFO_RELAXED_KHR             , "FIFO_RELAXED_KHR")-  , (PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, "SHARED_CONTINUOUS_REFRESH_KHR")-  , (PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR    , "SHARED_DEMAND_REFRESH_KHR")+  [ (PRESENT_MODE_IMMEDIATE_KHR, "IMMEDIATE_KHR")+  , (PRESENT_MODE_MAILBOX_KHR, "MAILBOX_KHR")+  , (PRESENT_MODE_FIFO_KHR, "FIFO_KHR")+  , (PRESENT_MODE_FIFO_RELAXED_KHR, "FIFO_RELAXED_KHR")+  ,+    ( PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR+    , "SHARED_CONTINUOUS_REFRESH_KHR"+    )+  ,+    ( PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR+    , "SHARED_DEMAND_REFRESH_KHR"+    )   ]  instance Show PresentModeKHR where-  showsPrec = enumShowsPrec enumPrefixPresentModeKHR-                            showTablePresentModeKHR-                            conNamePresentModeKHR-                            (\(PresentModeKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixPresentModeKHR+      showTablePresentModeKHR+      conNamePresentModeKHR+      (\(PresentModeKHR x) -> x)+      (showsPrec 11)  instance Read PresentModeKHR where-  readPrec = enumReadPrec enumPrefixPresentModeKHR showTablePresentModeKHR conNamePresentModeKHR PresentModeKHR-+  readPrec =+    enumReadPrec+      enumPrefixPresentModeKHR+      showTablePresentModeKHR+      conNamePresentModeKHR+      PresentModeKHR  -- | VkColorSpaceKHR - Supported color space of the presentation engine --@@ -1452,76 +1513,95 @@  -- | 'COLOR_SPACE_SRGB_NONLINEAR_KHR' specifies support for the sRGB color -- space.-pattern COLOR_SPACE_SRGB_NONLINEAR_KHR          = ColorSpaceKHR 0+pattern COLOR_SPACE_SRGB_NONLINEAR_KHR = ColorSpaceKHR 0+ -- | 'COLOR_SPACE_DISPLAY_NATIVE_AMD' specifies support for the display’s -- native color space. This matches the color space expectations of AMD’s -- FreeSync2 standard, for displays supporting it.-pattern COLOR_SPACE_DISPLAY_NATIVE_AMD          = ColorSpaceKHR 1000213000+pattern COLOR_SPACE_DISPLAY_NATIVE_AMD = ColorSpaceKHR 1000213000+ -- | 'COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT' specifies support for the -- extended sRGB color space to be displayed using an sRGB EOTF. pattern COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = ColorSpaceKHR 1000104014+ -- | 'COLOR_SPACE_PASS_THROUGH_EXT' specifies that color components are used -- “as is”. This is intended to allow applications to supply data for color -- spaces not described here.-pattern COLOR_SPACE_PASS_THROUGH_EXT            = ColorSpaceKHR 1000104013+pattern COLOR_SPACE_PASS_THROUGH_EXT = ColorSpaceKHR 1000104013+ -- | 'COLOR_SPACE_ADOBERGB_NONLINEAR_EXT' specifies support for the AdobeRGB -- color space to be displayed using the Gamma 2.2 EOTF.-pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT      = ColorSpaceKHR 1000104012+pattern COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = ColorSpaceKHR 1000104012+ -- | 'COLOR_SPACE_ADOBERGB_LINEAR_EXT' specifies support for the AdobeRGB -- color space to be displayed using a linear EOTF.-pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT         = ColorSpaceKHR 1000104011+pattern COLOR_SPACE_ADOBERGB_LINEAR_EXT = ColorSpaceKHR 1000104011+ -- | 'COLOR_SPACE_HDR10_HLG_EXT' specifies support for the HDR10 (BT2020 -- color space) to be displayed using the Hybrid Log Gamma (HLG) EOTF.-pattern COLOR_SPACE_HDR10_HLG_EXT               = ColorSpaceKHR 1000104010+pattern COLOR_SPACE_HDR10_HLG_EXT = ColorSpaceKHR 1000104010+ -- | 'COLOR_SPACE_DOLBYVISION_EXT' specifies support for the Dolby Vision -- (BT2020 color space), proprietary encoding, to be displayed using the -- SMPTE ST2084 EOTF.-pattern COLOR_SPACE_DOLBYVISION_EXT             = ColorSpaceKHR 1000104009+pattern COLOR_SPACE_DOLBYVISION_EXT = ColorSpaceKHR 1000104009+ -- | 'COLOR_SPACE_HDR10_ST2084_EXT' specifies support for the HDR10 (BT2020 -- color) space to be displayed using the SMPTE ST2084 Perceptual Quantizer -- (PQ) EOTF.-pattern COLOR_SPACE_HDR10_ST2084_EXT            = ColorSpaceKHR 1000104008+pattern COLOR_SPACE_HDR10_ST2084_EXT = ColorSpaceKHR 1000104008+ -- | 'COLOR_SPACE_BT2020_LINEAR_EXT' specifies support for the BT2020 color -- space to be displayed using a linear EOTF.-pattern COLOR_SPACE_BT2020_LINEAR_EXT           = ColorSpaceKHR 1000104007+pattern COLOR_SPACE_BT2020_LINEAR_EXT = ColorSpaceKHR 1000104007+ -- | 'COLOR_SPACE_BT709_NONLINEAR_EXT' specifies support for the BT709 color -- space to be displayed using the SMPTE 170M EOTF.-pattern COLOR_SPACE_BT709_NONLINEAR_EXT         = ColorSpaceKHR 1000104006+pattern COLOR_SPACE_BT709_NONLINEAR_EXT = ColorSpaceKHR 1000104006+ -- | 'COLOR_SPACE_BT709_LINEAR_EXT' specifies support for the BT709 color -- space to be displayed using a linear EOTF.-pattern COLOR_SPACE_BT709_LINEAR_EXT            = ColorSpaceKHR 1000104005+pattern COLOR_SPACE_BT709_LINEAR_EXT = ColorSpaceKHR 1000104005+ -- | 'COLOR_SPACE_DCI_P3_NONLINEAR_EXT' specifies support for the DCI-P3 -- color space to be displayed using the DCI-P3 EOTF. Note that values in -- such an image are interpreted as XYZ encoded color data by the -- presentation engine.-pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT        = ColorSpaceKHR 1000104004+pattern COLOR_SPACE_DCI_P3_NONLINEAR_EXT = ColorSpaceKHR 1000104004+ -- | 'COLOR_SPACE_DISPLAY_P3_LINEAR_EXT' specifies support for the Display-P3 -- color space to be displayed using a linear EOTF.-pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT       = ColorSpaceKHR 1000104003+pattern COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = ColorSpaceKHR 1000104003+ -- | 'COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT' specifies support for the -- extended sRGB color space to be displayed using a linear EOTF.-pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT    = ColorSpaceKHR 1000104002+pattern COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = ColorSpaceKHR 1000104002+ -- | 'COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT' specifies support for the -- Display-P3 color space to be displayed using an sRGB-like EOTF (defined -- below).-pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT    = ColorSpaceKHR 1000104001-{-# complete COLOR_SPACE_SRGB_NONLINEAR_KHR,-             COLOR_SPACE_DISPLAY_NATIVE_AMD,-             COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT,-             COLOR_SPACE_PASS_THROUGH_EXT,-             COLOR_SPACE_ADOBERGB_NONLINEAR_EXT,-             COLOR_SPACE_ADOBERGB_LINEAR_EXT,-             COLOR_SPACE_HDR10_HLG_EXT,-             COLOR_SPACE_DOLBYVISION_EXT,-             COLOR_SPACE_HDR10_ST2084_EXT,-             COLOR_SPACE_BT2020_LINEAR_EXT,-             COLOR_SPACE_BT709_NONLINEAR_EXT,-             COLOR_SPACE_BT709_LINEAR_EXT,-             COLOR_SPACE_DCI_P3_NONLINEAR_EXT,-             COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,-             COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT,-             COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT :: ColorSpaceKHR #-}+pattern COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = ColorSpaceKHR 1000104001 +{-# COMPLETE+  COLOR_SPACE_SRGB_NONLINEAR_KHR+  , COLOR_SPACE_DISPLAY_NATIVE_AMD+  , COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT+  , COLOR_SPACE_PASS_THROUGH_EXT+  , COLOR_SPACE_ADOBERGB_NONLINEAR_EXT+  , COLOR_SPACE_ADOBERGB_LINEAR_EXT+  , COLOR_SPACE_HDR10_HLG_EXT+  , COLOR_SPACE_DOLBYVISION_EXT+  , COLOR_SPACE_HDR10_ST2084_EXT+  , COLOR_SPACE_BT2020_LINEAR_EXT+  , COLOR_SPACE_BT709_NONLINEAR_EXT+  , COLOR_SPACE_BT709_LINEAR_EXT+  , COLOR_SPACE_DCI_P3_NONLINEAR_EXT+  , COLOR_SPACE_DISPLAY_P3_LINEAR_EXT+  , COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT+  , COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT ::+    ColorSpaceKHR+  #-}+ conNameColorSpaceKHR :: String conNameColorSpaceKHR = "ColorSpaceKHR" @@ -1530,34 +1610,70 @@  showTableColorSpaceKHR :: [(ColorSpaceKHR, String)] showTableColorSpaceKHR =-  [ (COLOR_SPACE_SRGB_NONLINEAR_KHR         , "SRGB_NONLINEAR_KHR")-  , (COLOR_SPACE_DISPLAY_NATIVE_AMD         , "DISPLAY_NATIVE_AMD")-  , (COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT, "EXTENDED_SRGB_NONLINEAR_EXT")-  , (COLOR_SPACE_PASS_THROUGH_EXT           , "PASS_THROUGH_EXT")-  , (COLOR_SPACE_ADOBERGB_NONLINEAR_EXT     , "ADOBERGB_NONLINEAR_EXT")-  , (COLOR_SPACE_ADOBERGB_LINEAR_EXT        , "ADOBERGB_LINEAR_EXT")-  , (COLOR_SPACE_HDR10_HLG_EXT              , "HDR10_HLG_EXT")-  , (COLOR_SPACE_DOLBYVISION_EXT            , "DOLBYVISION_EXT")-  , (COLOR_SPACE_HDR10_ST2084_EXT           , "HDR10_ST2084_EXT")-  , (COLOR_SPACE_BT2020_LINEAR_EXT          , "BT2020_LINEAR_EXT")-  , (COLOR_SPACE_BT709_NONLINEAR_EXT        , "BT709_NONLINEAR_EXT")-  , (COLOR_SPACE_BT709_LINEAR_EXT           , "BT709_LINEAR_EXT")-  , (COLOR_SPACE_DCI_P3_NONLINEAR_EXT       , "DCI_P3_NONLINEAR_EXT")-  , (COLOR_SPACE_DISPLAY_P3_LINEAR_EXT      , "DISPLAY_P3_LINEAR_EXT")-  , (COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT   , "EXTENDED_SRGB_LINEAR_EXT")-  , (COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT   , "DISPLAY_P3_NONLINEAR_EXT")+  [+    ( COLOR_SPACE_SRGB_NONLINEAR_KHR+    , "SRGB_NONLINEAR_KHR"+    )+  ,+    ( COLOR_SPACE_DISPLAY_NATIVE_AMD+    , "DISPLAY_NATIVE_AMD"+    )+  ,+    ( COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT+    , "EXTENDED_SRGB_NONLINEAR_EXT"+    )+  , (COLOR_SPACE_PASS_THROUGH_EXT, "PASS_THROUGH_EXT")+  ,+    ( COLOR_SPACE_ADOBERGB_NONLINEAR_EXT+    , "ADOBERGB_NONLINEAR_EXT"+    )+  ,+    ( COLOR_SPACE_ADOBERGB_LINEAR_EXT+    , "ADOBERGB_LINEAR_EXT"+    )+  , (COLOR_SPACE_HDR10_HLG_EXT, "HDR10_HLG_EXT")+  , (COLOR_SPACE_DOLBYVISION_EXT, "DOLBYVISION_EXT")+  , (COLOR_SPACE_HDR10_ST2084_EXT, "HDR10_ST2084_EXT")+  , (COLOR_SPACE_BT2020_LINEAR_EXT, "BT2020_LINEAR_EXT")+  ,+    ( COLOR_SPACE_BT709_NONLINEAR_EXT+    , "BT709_NONLINEAR_EXT"+    )+  , (COLOR_SPACE_BT709_LINEAR_EXT, "BT709_LINEAR_EXT")+  ,+    ( COLOR_SPACE_DCI_P3_NONLINEAR_EXT+    , "DCI_P3_NONLINEAR_EXT"+    )+  ,+    ( COLOR_SPACE_DISPLAY_P3_LINEAR_EXT+    , "DISPLAY_P3_LINEAR_EXT"+    )+  ,+    ( COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT+    , "EXTENDED_SRGB_LINEAR_EXT"+    )+  ,+    ( COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT+    , "DISPLAY_P3_NONLINEAR_EXT"+    )   ]  instance Show ColorSpaceKHR where-  showsPrec = enumShowsPrec enumPrefixColorSpaceKHR-                            showTableColorSpaceKHR-                            conNameColorSpaceKHR-                            (\(ColorSpaceKHR x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixColorSpaceKHR+      showTableColorSpaceKHR+      conNameColorSpaceKHR+      (\(ColorSpaceKHR x) -> x)+      (showsPrec 11)  instance Read ColorSpaceKHR where-  readPrec = enumReadPrec enumPrefixColorSpaceKHR showTableColorSpaceKHR conNameColorSpaceKHR ColorSpaceKHR-+  readPrec =+    enumReadPrec+      enumPrefixColorSpaceKHR+      showTableColorSpaceKHR+      conNameColorSpaceKHR+      ColorSpaceKHR  type CompositeAlphaFlagsKHR = CompositeAlphaFlagBitsKHR @@ -1579,12 +1695,14 @@ -- | 'COMPOSITE_ALPHA_OPAQUE_BIT_KHR': The alpha component, if it exists, of -- the images is ignored in the compositing process. Instead, the image is -- treated as if it has a constant alpha of 1.0.-pattern COMPOSITE_ALPHA_OPAQUE_BIT_KHR          = CompositeAlphaFlagBitsKHR 0x00000001+pattern COMPOSITE_ALPHA_OPAQUE_BIT_KHR = CompositeAlphaFlagBitsKHR 0x00000001+ -- | 'COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR': The alpha component, if it -- exists, of the images is respected in the compositing process. The -- non-alpha components of the image are expected to already be multiplied -- by the alpha component by the application.-pattern COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR  = CompositeAlphaFlagBitsKHR 0x00000002+pattern COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = CompositeAlphaFlagBitsKHR 0x00000002+ -- | 'COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR': The alpha component, if it -- exists, of the images is respected in the compositing process. The -- non-alpha components of the image are not expected to already be@@ -1592,13 +1710,14 @@ -- compositor will multiply the non-alpha components of the image by the -- alpha component during compositing. pattern COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = CompositeAlphaFlagBitsKHR 0x00000004+ -- | 'COMPOSITE_ALPHA_INHERIT_BIT_KHR': The way in which the presentation -- engine treats the alpha component in the images is unknown to the Vulkan -- API. Instead, the application is responsible for setting the composite -- alpha blending mode using native window system commands. If the -- application does not set the blending mode using native window system -- commands, then a platform-specific default will be used.-pattern COMPOSITE_ALPHA_INHERIT_BIT_KHR         = CompositeAlphaFlagBitsKHR 0x00000008+pattern COMPOSITE_ALPHA_INHERIT_BIT_KHR = CompositeAlphaFlagBitsKHR 0x00000008  conNameCompositeAlphaFlagBitsKHR :: String conNameCompositeAlphaFlagBitsKHR = "CompositeAlphaFlagBitsKHR"@@ -1608,25 +1727,40 @@  showTableCompositeAlphaFlagBitsKHR :: [(CompositeAlphaFlagBitsKHR, String)] showTableCompositeAlphaFlagBitsKHR =-  [ (COMPOSITE_ALPHA_OPAQUE_BIT_KHR         , "OPAQUE_BIT_KHR")-  , (COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR , "PRE_MULTIPLIED_BIT_KHR")-  , (COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, "POST_MULTIPLIED_BIT_KHR")-  , (COMPOSITE_ALPHA_INHERIT_BIT_KHR        , "INHERIT_BIT_KHR")+  [+    ( COMPOSITE_ALPHA_OPAQUE_BIT_KHR+    , "OPAQUE_BIT_KHR"+    )+  ,+    ( COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR+    , "PRE_MULTIPLIED_BIT_KHR"+    )+  ,+    ( COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR+    , "POST_MULTIPLIED_BIT_KHR"+    )+  ,+    ( COMPOSITE_ALPHA_INHERIT_BIT_KHR+    , "INHERIT_BIT_KHR"+    )   ]  instance Show CompositeAlphaFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixCompositeAlphaFlagBitsKHR-                            showTableCompositeAlphaFlagBitsKHR-                            conNameCompositeAlphaFlagBitsKHR-                            (\(CompositeAlphaFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixCompositeAlphaFlagBitsKHR+      showTableCompositeAlphaFlagBitsKHR+      conNameCompositeAlphaFlagBitsKHR+      (\(CompositeAlphaFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read CompositeAlphaFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixCompositeAlphaFlagBitsKHR-                          showTableCompositeAlphaFlagBitsKHR-                          conNameCompositeAlphaFlagBitsKHR-                          CompositeAlphaFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixCompositeAlphaFlagBitsKHR+      showTableCompositeAlphaFlagBitsKHR+      conNameCompositeAlphaFlagBitsKHR+      CompositeAlphaFlagBitsKHR  type SurfaceTransformFlagsKHR = SurfaceTransformFlagBitsKHR @@ -1648,35 +1782,43 @@  -- | 'SURFACE_TRANSFORM_IDENTITY_BIT_KHR' specifies that image content is -- presented without being transformed.-pattern SURFACE_TRANSFORM_IDENTITY_BIT_KHR                     = SurfaceTransformFlagBitsKHR 0x00000001+pattern SURFACE_TRANSFORM_IDENTITY_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000001+ -- | 'SURFACE_TRANSFORM_ROTATE_90_BIT_KHR' specifies that image content is -- rotated 90 degrees clockwise.-pattern SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                    = SurfaceTransformFlagBitsKHR 0x00000002+pattern SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000002+ -- | 'SURFACE_TRANSFORM_ROTATE_180_BIT_KHR' specifies that image content is -- rotated 180 degrees clockwise.-pattern SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                   = SurfaceTransformFlagBitsKHR 0x00000004+pattern SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000004+ -- | 'SURFACE_TRANSFORM_ROTATE_270_BIT_KHR' specifies that image content is -- rotated 270 degrees clockwise.-pattern SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                   = SurfaceTransformFlagBitsKHR 0x00000008+pattern SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000008+ -- | 'SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR' specifies that image -- content is mirrored horizontally.-pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR            = SurfaceTransformFlagBitsKHR 0x00000010+pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000010+ -- | 'SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR' specifies that -- image content is mirrored horizontally, then rotated 90 degrees -- clockwise.-pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR  = SurfaceTransformFlagBitsKHR 0x00000020+pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000020+ -- | 'SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR' specifies that -- image content is mirrored horizontally, then rotated 180 degrees -- clockwise. pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000040+ -- | 'SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR' specifies that -- image content is mirrored horizontally, then rotated 270 degrees -- clockwise. pattern SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000080+ -- | 'SURFACE_TRANSFORM_INHERIT_BIT_KHR' specifies that the presentation -- transform is not specified, and is instead determined by -- platform-specific considerations and mechanisms outside Vulkan.-pattern SURFACE_TRANSFORM_INHERIT_BIT_KHR                      = SurfaceTransformFlagBitsKHR 0x00000100+pattern SURFACE_TRANSFORM_INHERIT_BIT_KHR = SurfaceTransformFlagBitsKHR 0x00000100  conNameSurfaceTransformFlagBitsKHR :: String conNameSurfaceTransformFlagBitsKHR = "SurfaceTransformFlagBitsKHR"@@ -1686,30 +1828,60 @@  showTableSurfaceTransformFlagBitsKHR :: [(SurfaceTransformFlagBitsKHR, String)] showTableSurfaceTransformFlagBitsKHR =-  [ (SURFACE_TRANSFORM_IDENTITY_BIT_KHR                    , "IDENTITY_BIT_KHR")-  , (SURFACE_TRANSFORM_ROTATE_90_BIT_KHR                   , "ROTATE_90_BIT_KHR")-  , (SURFACE_TRANSFORM_ROTATE_180_BIT_KHR                  , "ROTATE_180_BIT_KHR")-  , (SURFACE_TRANSFORM_ROTATE_270_BIT_KHR                  , "ROTATE_270_BIT_KHR")-  , (SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR           , "HORIZONTAL_MIRROR_BIT_KHR")-  , (SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR , "HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR")-  , (SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, "HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR")-  , (SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, "HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR")-  , (SURFACE_TRANSFORM_INHERIT_BIT_KHR                     , "INHERIT_BIT_KHR")+  [+    ( SURFACE_TRANSFORM_IDENTITY_BIT_KHR+    , "IDENTITY_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_ROTATE_90_BIT_KHR+    , "ROTATE_90_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_ROTATE_180_BIT_KHR+    , "ROTATE_180_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_ROTATE_270_BIT_KHR+    , "ROTATE_270_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR+    , "HORIZONTAL_MIRROR_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR+    , "HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR+    , "HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR+    , "HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR"+    )+  ,+    ( SURFACE_TRANSFORM_INHERIT_BIT_KHR+    , "INHERIT_BIT_KHR"+    )   ]  instance Show SurfaceTransformFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixSurfaceTransformFlagBitsKHR-                            showTableSurfaceTransformFlagBitsKHR-                            conNameSurfaceTransformFlagBitsKHR-                            (\(SurfaceTransformFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSurfaceTransformFlagBitsKHR+      showTableSurfaceTransformFlagBitsKHR+      conNameSurfaceTransformFlagBitsKHR+      (\(SurfaceTransformFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SurfaceTransformFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixSurfaceTransformFlagBitsKHR-                          showTableSurfaceTransformFlagBitsKHR-                          conNameSurfaceTransformFlagBitsKHR-                          SurfaceTransformFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixSurfaceTransformFlagBitsKHR+      showTableSurfaceTransformFlagBitsKHR+      conNameSurfaceTransformFlagBitsKHR+      SurfaceTransformFlagBitsKHR  type KHR_SURFACE_SPEC_VERSION = 25 
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -1246,6 +1246,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_display_native_hdr (SwapchainDisplayNativeHdrCreateInfoAMD) import Vulkan.Extensions.Handles (SwapchainKHR) import Vulkan.Extensions.Handles (SwapchainKHR(..))+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_present_barrier (SwapchainPresentBarrierCreateInfoNV) import Vulkan.Exception (VulkanException(..)) import Vulkan.Core10.APIConstants (pattern MAX_DEVICE_GROUP_SIZE) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR))@@ -1381,6 +1382,17 @@ -- include the app not being set as high-dpi aware, or if the physical -- device and monitor are not compatible in this mode. --+-- If the @pNext@ chain of 'SwapchainCreateInfoKHR' includes a+-- 'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV'+-- structure, then that structure includes additional swapchain creation+-- parameters specific to the present barrier. Swapchain creation /may/+-- fail if the state of the current system restricts the usage of the+-- present barrier feature+-- 'Vulkan.Extensions.VK_NV_present_barrier.SurfaceCapabilitiesPresentBarrierNV',+-- or a swapchain itself does not satisfy all the required conditions. In+-- this scenario 'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'+-- is returned.+-- -- When the 'Vulkan.Extensions.Handles.SurfaceKHR' in -- 'SwapchainCreateInfoKHR' is a display surface, then the -- 'Vulkan.Extensions.Handles.DisplayModeKHR' in display surface’s@@ -1445,7 +1457,9 @@ -- 'Vulkan.Core10.Handles.Device', 'SwapchainCreateInfoKHR', -- 'Vulkan.Extensions.Handles.SwapchainKHR' createSwapchainKHR :: forall a io-                    . (Extendss SwapchainCreateInfoKHR a, PokeChain a, MonadIO io)+                    . ( Extendss SwapchainCreateInfoKHR a+                      , PokeChain a+                      , MonadIO io )                    => -- | @device@ is the device to create the swapchain for.                       Device                    -> -- | @pCreateInfo@ is a pointer to a 'SwapchainCreateInfoKHR' structure@@ -1466,7 +1480,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSwapchain <- ContT $ bracket (callocBytes @SwapchainKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateSwapchainKHR" (vkCreateSwapchainKHR' (deviceHandle (device)) (forgetExtensions pCreateInfo) pAllocator (pPSwapchain))+  r <- lift $ traceAroundEvent "vkCreateSwapchainKHR" (vkCreateSwapchainKHR'+                                                         (deviceHandle (device))+                                                         (forgetExtensions pCreateInfo)+                                                         pAllocator+                                                         (pPSwapchain))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSwapchain <- lift $ peek @SwapchainKHR pPSwapchain   pure $ (pSwapchain)@@ -1581,7 +1599,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroySwapchainKHR" (vkDestroySwapchainKHR' (deviceHandle (device)) (swapchain) pAllocator)+  lift $ traceAroundEvent "vkDestroySwapchainKHR" (vkDestroySwapchainKHR'+                                                     (deviceHandle (device))+                                                     (swapchain)+                                                     pAllocator)   pure $ ()  @@ -1664,11 +1685,19 @@   let vkGetSwapchainImagesKHR' = mkVkGetSwapchainImagesKHR vkGetSwapchainImagesKHRPtr   let device' = deviceHandle (device)   pPSwapchainImageCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetSwapchainImagesKHR" (vkGetSwapchainImagesKHR' device' (swapchain) (pPSwapchainImageCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetSwapchainImagesKHR" (vkGetSwapchainImagesKHR'+                                                            device'+                                                            (swapchain)+                                                            (pPSwapchainImageCount)+                                                            (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSwapchainImageCount <- lift $ peek @Word32 pPSwapchainImageCount   pPSwapchainImages <- ContT $ bracket (callocBytes @Image ((fromIntegral (pSwapchainImageCount)) * 8)) free-  r' <- lift $ traceAroundEvent "vkGetSwapchainImagesKHR" (vkGetSwapchainImagesKHR' device' (swapchain) (pPSwapchainImageCount) (pPSwapchainImages))+  r' <- lift $ traceAroundEvent "vkGetSwapchainImagesKHR" (vkGetSwapchainImagesKHR'+                                                             device'+                                                             (swapchain)+                                                             (pPSwapchainImageCount)+                                                             (pPSwapchainImages))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pSwapchainImageCount' <- lift $ peek @Word32 pPSwapchainImageCount   pSwapchainImages' <- lift $ generateM (fromIntegral (pSwapchainImageCount')) (\i -> peek @Image ((pPSwapchainImages `advancePtrBytes` (8 * (i)) :: Ptr Image)))@@ -1705,13 +1734,23 @@                                    -- signal.                                    Fence                                 -> io (Result, ("imageIndex" ::: Word32))-acquireNextImageKHRSafeOrUnsafe mkVkAcquireNextImageKHR device swapchain timeout semaphore fence = liftIO . evalContT $ do+acquireNextImageKHRSafeOrUnsafe mkVkAcquireNextImageKHR device+                                                          swapchain+                                                          timeout+                                                          semaphore+                                                          fence = liftIO . evalContT $ do   let vkAcquireNextImageKHRPtr = pVkAcquireNextImageKHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkAcquireNextImageKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireNextImageKHR is null" Nothing Nothing   let vkAcquireNextImageKHR' = mkVkAcquireNextImageKHR vkAcquireNextImageKHRPtr   pPImageIndex <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkAcquireNextImageKHR" (vkAcquireNextImageKHR' (deviceHandle (device)) (swapchain) (timeout) (semaphore) (fence) (pPImageIndex))+  r <- lift $ traceAroundEvent "vkAcquireNextImageKHR" (vkAcquireNextImageKHR'+                                                          (deviceHandle (device))+                                                          (swapchain)+                                                          (timeout)+                                                          (semaphore)+                                                          (fence)+                                                          (pPImageIndex))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pImageIndex <- lift $ peek @Word32 pPImageIndex   pure $ (r, pImageIndex)@@ -2039,7 +2078,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkQueuePresentKHR is null" Nothing Nothing   let vkQueuePresentKHR' = mkVkQueuePresentKHR vkQueuePresentKHRPtr   pPresentInfo <- ContT $ withCStruct (presentInfo)-  r <- lift $ traceAroundEvent "vkQueuePresentKHR" (vkQueuePresentKHR' (queueHandle (queue)) (forgetExtensions pPresentInfo))+  r <- lift $ traceAroundEvent "vkQueuePresentKHR" (vkQueuePresentKHR'+                                                      (queueHandle (queue))+                                                      (forgetExtensions pPresentInfo))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pure $ (r) @@ -2087,7 +2128,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupPresentCapabilitiesKHR is null" Nothing Nothing   let vkGetDeviceGroupPresentCapabilitiesKHR' = mkVkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHRPtr   pPDeviceGroupPresentCapabilities <- ContT (withZeroCStruct @DeviceGroupPresentCapabilitiesKHR)-  r <- lift $ traceAroundEvent "vkGetDeviceGroupPresentCapabilitiesKHR" (vkGetDeviceGroupPresentCapabilitiesKHR' (deviceHandle (device)) (pPDeviceGroupPresentCapabilities))+  r <- lift $ traceAroundEvent "vkGetDeviceGroupPresentCapabilitiesKHR" (vkGetDeviceGroupPresentCapabilitiesKHR'+                                                                           (deviceHandle (device))+                                                                           (pPDeviceGroupPresentCapabilities))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDeviceGroupPresentCapabilities <- lift $ peekCStruct @DeviceGroupPresentCapabilitiesKHR pPDeviceGroupPresentCapabilities   pure $ (pDeviceGroupPresentCapabilities)@@ -2174,7 +2217,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDeviceGroupSurfacePresentModesKHR is null" Nothing Nothing   let vkGetDeviceGroupSurfacePresentModesKHR' = mkVkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHRPtr   pPModes <- ContT $ bracket (callocBytes @DeviceGroupPresentModeFlagsKHR 4) free-  r <- lift $ traceAroundEvent "vkGetDeviceGroupSurfacePresentModesKHR" (vkGetDeviceGroupSurfacePresentModesKHR' (deviceHandle (device)) (surface) (pPModes))+  r <- lift $ traceAroundEvent "vkGetDeviceGroupSurfacePresentModesKHR" (vkGetDeviceGroupSurfacePresentModesKHR'+                                                                           (deviceHandle (device))+                                                                           (surface)+                                                                           (pPModes))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pModes <- lift $ peek @DeviceGroupPresentModeFlagsKHR pPModes   pure $ (pModes)@@ -2201,14 +2247,18 @@                                     -- containing parameters of the acquire.                                     ("acquireInfo" ::: AcquireNextImageInfoKHR)                                  -> io (Result, ("imageIndex" ::: Word32))-acquireNextImage2KHRSafeOrUnsafe mkVkAcquireNextImage2KHR device acquireInfo = liftIO . evalContT $ do+acquireNextImage2KHRSafeOrUnsafe mkVkAcquireNextImage2KHR device+                                                            acquireInfo = liftIO . evalContT $ do   let vkAcquireNextImage2KHRPtr = pVkAcquireNextImage2KHR (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkAcquireNextImage2KHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireNextImage2KHR is null" Nothing Nothing   let vkAcquireNextImage2KHR' = mkVkAcquireNextImage2KHR vkAcquireNextImage2KHRPtr   pAcquireInfo <- ContT $ withCStruct (acquireInfo)   pPImageIndex <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkAcquireNextImage2KHR" (vkAcquireNextImage2KHR' (deviceHandle (device)) pAcquireInfo (pPImageIndex))+  r <- lift $ traceAroundEvent "vkAcquireNextImage2KHR" (vkAcquireNextImage2KHR'+                                                           (deviceHandle (device))+                                                           pAcquireInfo+                                                           (pPImageIndex))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pImageIndex <- lift $ peek @Word32 pPImageIndex   pure $ (r, pImageIndex)@@ -2389,19 +2439,28 @@                                       -> -- | @surface@ is the surface.                                          SurfaceKHR                                       -> io (Result, ("rects" ::: Vector Rect2D))-getPhysicalDevicePresentRectanglesKHR physicalDevice surface = liftIO . evalContT $ do+getPhysicalDevicePresentRectanglesKHR physicalDevice+                                        surface = liftIO . evalContT $ do   let vkGetPhysicalDevicePresentRectanglesKHRPtr = pVkGetPhysicalDevicePresentRectanglesKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDevicePresentRectanglesKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDevicePresentRectanglesKHR is null" Nothing Nothing   let vkGetPhysicalDevicePresentRectanglesKHR' = mkVkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHRPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPRectCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDevicePresentRectanglesKHR" (vkGetPhysicalDevicePresentRectanglesKHR' physicalDevice' (surface) (pPRectCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDevicePresentRectanglesKHR" (vkGetPhysicalDevicePresentRectanglesKHR'+                                                                            physicalDevice'+                                                                            (surface)+                                                                            (pPRectCount)+                                                                            (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pRectCount <- lift $ peek @Word32 pPRectCount   pPRects <- ContT $ bracket (callocBytes @Rect2D ((fromIntegral (pRectCount)) * 16)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPRects `advancePtrBytes` (i * 16) :: Ptr Rect2D) . ($ ())) [0..(fromIntegral (pRectCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDevicePresentRectanglesKHR" (vkGetPhysicalDevicePresentRectanglesKHR' physicalDevice' (surface) (pPRectCount) ((pPRects)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDevicePresentRectanglesKHR" (vkGetPhysicalDevicePresentRectanglesKHR'+                                                                             physicalDevice'+                                                                             (surface)+                                                                             (pPRectCount)+                                                                             ((pPRects)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pRectCount' <- lift $ peek @Word32 pPRectCount   pRects' <- lift $ generateM (fromIntegral (pRectCount')) (\i -> peekCStruct @Rect2D (((pPRects) `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))@@ -2649,8 +2708,9 @@ --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveInfoEXT', --     'Vulkan.Extensions.VK_EXT_full_screen_exclusive.SurfaceFullScreenExclusiveWin32InfoEXT', --     'Vulkan.Extensions.VK_EXT_display_control.SwapchainCounterCreateInfoEXT',+--     'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD', --     or---     'Vulkan.Extensions.VK_AMD_display_native_hdr.SwapchainDisplayNativeHdrCreateInfoAMD'+--     'Vulkan.Extensions.VK_NV_present_barrier.SwapchainPresentBarrierCreateInfoNV' -- -- -   #VUID-VkSwapchainCreateInfoKHR-sType-unique# The @sType@ value of --     each struct in the @pNext@ chain /must/ be unique@@ -2749,9 +2809,10 @@     --     -- Note     ---    -- On some platforms, it is normal that @maxImageExtent@ /may/ become @(0,-    -- 0)@, for example when the window is minimized. In such a case, it is not-    -- possible to create a swapchain due to the Valid Usage requirements.+    -- On some platforms, it is normal that @maxImageExtent@ /may/ become+    -- @(0, 0)@, for example when the window is minimized. In such a case, it+    -- is not possible to create a swapchain due to the Valid Usage+    -- requirements.     imageExtent :: Extent2D   , -- | @imageArrayLayers@ is the number of views in a multiview\/stereo     -- surface. For non-stereoscopic-3D applications, this value is 1.@@ -2833,6 +2894,7 @@   extends :: forall e b proxy. Typeable e => proxy e -> (Extends SwapchainCreateInfoKHR e => b) -> Maybe b   extends _ f     | Just Refl <- eqT @e @ImageCompressionControlEXT = Just f+    | Just Refl <- eqT @e @SwapchainPresentBarrierCreateInfoNV = Just f     | Just Refl <- eqT @e @SurfaceFullScreenExclusiveWin32InfoEXT = Just f     | Just Refl <- eqT @e @SurfaceFullScreenExclusiveInfoEXT = Just f     | Just Refl <- eqT @e @ImageFormatListCreateInfo = Just f@@ -2841,7 +2903,8 @@     | Just Refl <- eqT @e @SwapchainCounterCreateInfoEXT = Just f     | otherwise = Nothing -instance (Extendss SwapchainCreateInfoKHR es, PokeChain es) => ToCStruct (SwapchainCreateInfoKHR es) where+instance ( Extendss SwapchainCreateInfoKHR es+         , PokeChain es ) => ToCStruct (SwapchainCreateInfoKHR es) where   withCStruct x f = allocaBytes 104 $ \p -> pokeCStruct p x (f p)   pokeCStruct p SwapchainCreateInfoKHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)@@ -2886,7 +2949,8 @@     lift $ poke ((p `plusPtr` 92 :: Ptr Bool32)) (boolToBool32 (zero))     lift $ f -instance (Extendss SwapchainCreateInfoKHR es, PeekChain es) => FromCStruct (SwapchainCreateInfoKHR es) where+instance ( Extendss SwapchainCreateInfoKHR es+         , PeekChain es ) => FromCStruct (SwapchainCreateInfoKHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2908,7 +2972,22 @@     clipped <- peek @Bool32 ((p `plusPtr` 92 :: Ptr Bool32))     oldSwapchain <- peek @SwapchainKHR ((p `plusPtr` 96 :: Ptr SwapchainKHR))     pure $ SwapchainCreateInfoKHR-             next flags surface minImageCount imageFormat imageColorSpace imageExtent imageArrayLayers imageUsage imageSharingMode pQueueFamilyIndices' preTransform compositeAlpha presentMode (bool32ToBool clipped) oldSwapchain+             next+             flags+             surface+             minImageCount+             imageFormat+             imageColorSpace+             imageExtent+             imageArrayLayers+             imageUsage+             imageSharingMode+             pQueueFamilyIndices'+             preTransform+             compositeAlpha+             presentMode+             (bool32ToBool clipped)+             oldSwapchain  instance es ~ '[] => Zero (SwapchainCreateInfoKHR es) where   zero = SwapchainCreateInfoKHR@@ -3069,7 +3148,8 @@     | Just Refl <- eqT @e @DisplayPresentInfoKHR = Just f     | otherwise = Nothing -instance (Extendss PresentInfoKHR es, PokeChain es) => ToCStruct (PresentInfoKHR es) where+instance ( Extendss PresentInfoKHR es+         , PokeChain es ) => ToCStruct (PresentInfoKHR es) where   withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)   pokeCStruct p PresentInfoKHR{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PRESENT_INFO_KHR)@@ -3099,7 +3179,8 @@     lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'     lift $ f -instance (Extendss PresentInfoKHR es, PeekChain es) => FromCStruct (PresentInfoKHR es) where+instance ( Extendss PresentInfoKHR es+         , PeekChain es ) => FromCStruct (PresentInfoKHR es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -3745,15 +3826,18 @@ -- | 'DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR' specifies that any physical -- device with a presentation engine /can/ present its own swapchain -- images.-pattern DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR              = DeviceGroupPresentModeFlagBitsKHR 0x00000001+pattern DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = DeviceGroupPresentModeFlagBitsKHR 0x00000001+ -- | 'DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR' specifies that any physical -- device with a presentation engine /can/ present swapchain images from -- any physical device in its @presentMask@.-pattern DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR             = DeviceGroupPresentModeFlagBitsKHR 0x00000002+pattern DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = DeviceGroupPresentModeFlagBitsKHR 0x00000002+ -- | 'DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR' specifies that any physical -- device with a presentation engine /can/ present the sum of swapchain -- images from any physical devices in its @presentMask@.-pattern DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR                = DeviceGroupPresentModeFlagBitsKHR 0x00000004+pattern DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = DeviceGroupPresentModeFlagBitsKHR 0x00000004+ -- | 'DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR' specifies that -- multiple physical devices with a presentation engine /can/ each present -- their own swapchain images.@@ -3767,25 +3851,40 @@  showTableDeviceGroupPresentModeFlagBitsKHR :: [(DeviceGroupPresentModeFlagBitsKHR, String)] showTableDeviceGroupPresentModeFlagBitsKHR =-  [ (DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR             , "LOCAL_BIT_KHR")-  , (DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR            , "REMOTE_BIT_KHR")-  , (DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR               , "SUM_BIT_KHR")-  , (DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, "LOCAL_MULTI_DEVICE_BIT_KHR")+  [+    ( DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR+    , "LOCAL_BIT_KHR"+    )+  ,+    ( DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR+    , "REMOTE_BIT_KHR"+    )+  ,+    ( DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR+    , "SUM_BIT_KHR"+    )+  ,+    ( DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR+    , "LOCAL_MULTI_DEVICE_BIT_KHR"+    )   ]  instance Show DeviceGroupPresentModeFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixDeviceGroupPresentModeFlagBitsKHR-                            showTableDeviceGroupPresentModeFlagBitsKHR-                            conNameDeviceGroupPresentModeFlagBitsKHR-                            (\(DeviceGroupPresentModeFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceGroupPresentModeFlagBitsKHR+      showTableDeviceGroupPresentModeFlagBitsKHR+      conNameDeviceGroupPresentModeFlagBitsKHR+      (\(DeviceGroupPresentModeFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DeviceGroupPresentModeFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixDeviceGroupPresentModeFlagBitsKHR-                          showTableDeviceGroupPresentModeFlagBitsKHR-                          conNameDeviceGroupPresentModeFlagBitsKHR-                          DeviceGroupPresentModeFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixDeviceGroupPresentModeFlagBitsKHR+      showTableDeviceGroupPresentModeFlagBitsKHR+      conNameDeviceGroupPresentModeFlagBitsKHR+      DeviceGroupPresentModeFlagBitsKHR  type SwapchainCreateFlagsKHR = SwapchainCreateFlagBitsKHR @@ -3809,15 +3908,17 @@ -- flags that are not supported for the format the swapchain is created -- with but are supported for at least one of the allowed image view -- formats.-pattern SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR              = SwapchainCreateFlagBitsKHR 0x00000004+pattern SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = SwapchainCreateFlagBitsKHR 0x00000004+ -- | 'SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR' specifies that -- images created from the swapchain (i.e. with the @swapchain@ member of -- 'ImageSwapchainCreateInfoKHR' set to this swapchain’s handle) /must/ use -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT'. pattern SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = SwapchainCreateFlagBitsKHR 0x00000001+ -- | 'SWAPCHAIN_CREATE_PROTECTED_BIT_KHR' specifies that images created from -- the swapchain are protected images.-pattern SWAPCHAIN_CREATE_PROTECTED_BIT_KHR                   = SwapchainCreateFlagBitsKHR 0x00000002+pattern SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = SwapchainCreateFlagBitsKHR 0x00000002  conNameSwapchainCreateFlagBitsKHR :: String conNameSwapchainCreateFlagBitsKHR = "SwapchainCreateFlagBitsKHR"@@ -3827,24 +3928,36 @@  showTableSwapchainCreateFlagBitsKHR :: [(SwapchainCreateFlagBitsKHR, String)] showTableSwapchainCreateFlagBitsKHR =-  [ (SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR             , "MUTABLE_FORMAT_BIT_KHR")-  , (SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR, "SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR")-  , (SWAPCHAIN_CREATE_PROTECTED_BIT_KHR                  , "PROTECTED_BIT_KHR")+  [+    ( SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR+    , "MUTABLE_FORMAT_BIT_KHR"+    )+  ,+    ( SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR+    , "SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR"+    )+  ,+    ( SWAPCHAIN_CREATE_PROTECTED_BIT_KHR+    , "PROTECTED_BIT_KHR"+    )   ]  instance Show SwapchainCreateFlagBitsKHR where-  showsPrec = enumShowsPrec enumPrefixSwapchainCreateFlagBitsKHR-                            showTableSwapchainCreateFlagBitsKHR-                            conNameSwapchainCreateFlagBitsKHR-                            (\(SwapchainCreateFlagBitsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixSwapchainCreateFlagBitsKHR+      showTableSwapchainCreateFlagBitsKHR+      conNameSwapchainCreateFlagBitsKHR+      (\(SwapchainCreateFlagBitsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read SwapchainCreateFlagBitsKHR where-  readPrec = enumReadPrec enumPrefixSwapchainCreateFlagBitsKHR-                          showTableSwapchainCreateFlagBitsKHR-                          conNameSwapchainCreateFlagBitsKHR-                          SwapchainCreateFlagBitsKHR-+  readPrec =+    enumReadPrec+      enumPrefixSwapchainCreateFlagBitsKHR+      showTableSwapchainCreateFlagBitsKHR+      conNameSwapchainCreateFlagBitsKHR+      SwapchainCreateFlagBitsKHR  type KHR_SWAPCHAIN_SPEC_VERSION = 70 
src/Vulkan/Extensions/VK_KHR_swapchain.hs-boot view
@@ -1144,19 +1144,23 @@ type role PresentInfoKHR nominal data PresentInfoKHR (es :: [Type]) -instance (Extendss PresentInfoKHR es, PokeChain es) => ToCStruct (PresentInfoKHR es)+instance ( Extendss PresentInfoKHR es+         , PokeChain es ) => ToCStruct (PresentInfoKHR es) instance Show (Chain es) => Show (PresentInfoKHR es) -instance (Extendss PresentInfoKHR es, PeekChain es) => FromCStruct (PresentInfoKHR es)+instance ( Extendss PresentInfoKHR es+         , PeekChain es ) => FromCStruct (PresentInfoKHR es)   type role SwapchainCreateInfoKHR nominal data SwapchainCreateInfoKHR (es :: [Type]) -instance (Extendss SwapchainCreateInfoKHR es, PokeChain es) => ToCStruct (SwapchainCreateInfoKHR es)+instance ( Extendss SwapchainCreateInfoKHR es+         , PokeChain es ) => ToCStruct (SwapchainCreateInfoKHR es) instance Show (Chain es) => Show (SwapchainCreateInfoKHR es) -instance (Extendss SwapchainCreateInfoKHR es, PeekChain es) => FromCStruct (SwapchainCreateInfoKHR es)+instance ( Extendss SwapchainCreateInfoKHR es+         , PeekChain es ) => FromCStruct (SwapchainCreateInfoKHR es)   type DeviceGroupPresentModeFlagsKHR = DeviceGroupPresentModeFlagBitsKHR
src/Vulkan/Extensions/VK_KHR_synchronization2.hs view
@@ -808,12 +808,21 @@                          -> -- | @marker@ is the 32-bit value of the marker.                             ("marker" ::: Word32)                          -> io ()-cmdWriteBufferMarker2AMD commandBuffer stage dstBuffer dstOffset marker = liftIO $ do+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))+  traceAroundEvent "vkCmdWriteBufferMarker2AMD" (vkCmdWriteBufferMarker2AMD'+                                                   (commandBufferHandle (commandBuffer))+                                                   (stage)+                                                   (dstBuffer)+                                                   (dstOffset)+                                                   (marker))   pure $ ()  @@ -876,11 +885,17 @@   let vkGetQueueCheckpointData2NV' = mkVkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NVPtr   let queue' = queueHandle (queue)   pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetQueueCheckpointData2NV" (vkGetQueueCheckpointData2NV' queue' (pPCheckpointDataCount) (nullPtr))+  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)))+  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')
src/Vulkan/Extensions/VK_KHR_wayland_surface.hs view
@@ -335,7 +335,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateWaylandSurfaceKHR" (vkCreateWaylandSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateWaylandSurfaceKHR" (vkCreateWaylandSurfaceKHR'+                                                              (instanceHandle (instance'))+                                                              pCreateInfo+                                                              pAllocator+                                                              (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -385,12 +389,17 @@                                                   -- @display@ /must/ be a valid pointer to a @wl_display@ value                                                   (Ptr Wl_display)                                                -> io (Bool)-getPhysicalDeviceWaylandPresentationSupportKHR physicalDevice queueFamilyIndex display = liftIO $ do+getPhysicalDeviceWaylandPresentationSupportKHR physicalDevice+                                                 queueFamilyIndex+                                                 display = liftIO $ do   let vkGetPhysicalDeviceWaylandPresentationSupportKHRPtr = pVkGetPhysicalDeviceWaylandPresentationSupportKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   unless (vkGetPhysicalDeviceWaylandPresentationSupportKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceWaylandPresentationSupportKHR is null" Nothing Nothing   let vkGetPhysicalDeviceWaylandPresentationSupportKHR' = mkVkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHRPtr-  r <- traceAroundEvent "vkGetPhysicalDeviceWaylandPresentationSupportKHR" (vkGetPhysicalDeviceWaylandPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (display))+  r <- traceAroundEvent "vkGetPhysicalDeviceWaylandPresentationSupportKHR" (vkGetPhysicalDeviceWaylandPresentationSupportKHR'+                                                                              (physicalDeviceHandle (physicalDevice))+                                                                              (queueFamilyIndex)+                                                                              (display))   pure $ ((bool32ToBool r))  @@ -479,8 +488,6 @@ newtype WaylandSurfaceCreateFlagsKHR = WaylandSurfaceCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameWaylandSurfaceCreateFlagsKHR :: String conNameWaylandSurfaceCreateFlagsKHR = "WaylandSurfaceCreateFlagsKHR" @@ -491,18 +498,21 @@ showTableWaylandSurfaceCreateFlagsKHR = []  instance Show WaylandSurfaceCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixWaylandSurfaceCreateFlagsKHR-                            showTableWaylandSurfaceCreateFlagsKHR-                            conNameWaylandSurfaceCreateFlagsKHR-                            (\(WaylandSurfaceCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixWaylandSurfaceCreateFlagsKHR+      showTableWaylandSurfaceCreateFlagsKHR+      conNameWaylandSurfaceCreateFlagsKHR+      (\(WaylandSurfaceCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read WaylandSurfaceCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixWaylandSurfaceCreateFlagsKHR-                          showTableWaylandSurfaceCreateFlagsKHR-                          conNameWaylandSurfaceCreateFlagsKHR-                          WaylandSurfaceCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixWaylandSurfaceCreateFlagsKHR+      showTableWaylandSurfaceCreateFlagsKHR+      conNameWaylandSurfaceCreateFlagsKHR+      WaylandSurfaceCreateFlagsKHR  type KHR_WAYLAND_SURFACE_SPEC_VERSION = 6 
src/Vulkan/Extensions/VK_KHR_win32_keyed_mutex.hs view
@@ -260,7 +260,11 @@     pReleaseKeys <- peek @(Ptr Word64) ((p `plusPtr` 64 :: Ptr (Ptr Word64)))     pReleaseKeys' <- generateM (fromIntegral releaseCount) (\i -> peek @Word64 ((pReleaseKeys `advancePtrBytes` (8 * (i)) :: Ptr Word64)))     pure $ Win32KeyedMutexAcquireReleaseInfoKHR-             pAcquireSyncs' pAcquireKeys' pAcquireTimeouts' pReleaseSyncs' pReleaseKeys'+             pAcquireSyncs'+             pAcquireKeys'+             pAcquireTimeouts'+             pReleaseSyncs'+             pReleaseKeys'  instance Zero Win32KeyedMutexAcquireReleaseInfoKHR where   zero = Win32KeyedMutexAcquireReleaseInfoKHR
src/Vulkan/Extensions/VK_KHR_win32_surface.hs view
@@ -360,7 +360,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateWin32SurfaceKHR" (vkCreateWin32SurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateWin32SurfaceKHR" (vkCreateWin32SurfaceKHR'+                                                            (instanceHandle (instance'))+                                                            pCreateInfo+                                                            pAllocator+                                                            (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -404,12 +408,15 @@                                                 -- for the given @physicalDevice@                                                 ("queueFamilyIndex" ::: Word32)                                              -> io (Bool)-getPhysicalDeviceWin32PresentationSupportKHR physicalDevice queueFamilyIndex = liftIO $ do+getPhysicalDeviceWin32PresentationSupportKHR physicalDevice+                                               queueFamilyIndex = liftIO $ do   let vkGetPhysicalDeviceWin32PresentationSupportKHRPtr = pVkGetPhysicalDeviceWin32PresentationSupportKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   unless (vkGetPhysicalDeviceWin32PresentationSupportKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceWin32PresentationSupportKHR is null" Nothing Nothing   let vkGetPhysicalDeviceWin32PresentationSupportKHR' = mkVkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHRPtr-  r <- traceAroundEvent "vkGetPhysicalDeviceWin32PresentationSupportKHR" (vkGetPhysicalDeviceWin32PresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex))+  r <- traceAroundEvent "vkGetPhysicalDeviceWin32PresentationSupportKHR" (vkGetPhysicalDeviceWin32PresentationSupportKHR'+                                                                            (physicalDeviceHandle (physicalDevice))+                                                                            (queueFamilyIndex))   pure $ ((bool32ToBool r))  @@ -500,8 +507,6 @@ newtype Win32SurfaceCreateFlagsKHR = Win32SurfaceCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameWin32SurfaceCreateFlagsKHR :: String conNameWin32SurfaceCreateFlagsKHR = "Win32SurfaceCreateFlagsKHR" @@ -512,18 +517,21 @@ showTableWin32SurfaceCreateFlagsKHR = []  instance Show Win32SurfaceCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixWin32SurfaceCreateFlagsKHR-                            showTableWin32SurfaceCreateFlagsKHR-                            conNameWin32SurfaceCreateFlagsKHR-                            (\(Win32SurfaceCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixWin32SurfaceCreateFlagsKHR+      showTableWin32SurfaceCreateFlagsKHR+      conNameWin32SurfaceCreateFlagsKHR+      (\(Win32SurfaceCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read Win32SurfaceCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixWin32SurfaceCreateFlagsKHR-                          showTableWin32SurfaceCreateFlagsKHR-                          conNameWin32SurfaceCreateFlagsKHR-                          Win32SurfaceCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixWin32SurfaceCreateFlagsKHR+      showTableWin32SurfaceCreateFlagsKHR+      conNameWin32SurfaceCreateFlagsKHR+      Win32SurfaceCreateFlagsKHR  type KHR_WIN32_SURFACE_SPEC_VERSION = 6 
src/Vulkan/Extensions/VK_KHR_workgroup_memory_explicit_layout.hs view
@@ -236,7 +236,10 @@     workgroupMemoryExplicitLayout8BitAccess <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     workgroupMemoryExplicitLayout16BitAccess <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))     pure $ PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-             (bool32ToBool workgroupMemoryExplicitLayout) (bool32ToBool workgroupMemoryExplicitLayoutScalarBlockLayout) (bool32ToBool workgroupMemoryExplicitLayout8BitAccess) (bool32ToBool workgroupMemoryExplicitLayout16BitAccess)+             (bool32ToBool workgroupMemoryExplicitLayout)+             (bool32ToBool workgroupMemoryExplicitLayoutScalarBlockLayout)+             (bool32ToBool workgroupMemoryExplicitLayout8BitAccess)+             (bool32ToBool workgroupMemoryExplicitLayout16BitAccess)  instance Storable PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR where   sizeOf ~_ = 32
src/Vulkan/Extensions/VK_KHR_xcb_surface.hs view
@@ -316,7 +316,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateXcbSurfaceKHR" (vkCreateXcbSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateXcbSurfaceKHR" (vkCreateXcbSurfaceKHR'+                                                          (instanceHandle (instance'))+                                                          pCreateInfo+                                                          pAllocator+                                                          (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -367,12 +371,19 @@                                            -> -- | @visual_id@ is an X11 visual (@xcb_visualid_t@).                                               ("visual_id" ::: Xcb_visualid_t)                                            -> io (Bool)-getPhysicalDeviceXcbPresentationSupportKHR physicalDevice queueFamilyIndex connection visual_id = liftIO $ do+getPhysicalDeviceXcbPresentationSupportKHR physicalDevice+                                             queueFamilyIndex+                                             connection+                                             visual_id = liftIO $ do   let vkGetPhysicalDeviceXcbPresentationSupportKHRPtr = pVkGetPhysicalDeviceXcbPresentationSupportKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   unless (vkGetPhysicalDeviceXcbPresentationSupportKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceXcbPresentationSupportKHR is null" Nothing Nothing   let vkGetPhysicalDeviceXcbPresentationSupportKHR' = mkVkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHRPtr-  r <- traceAroundEvent "vkGetPhysicalDeviceXcbPresentationSupportKHR" (vkGetPhysicalDeviceXcbPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (connection) (visual_id))+  r <- traceAroundEvent "vkGetPhysicalDeviceXcbPresentationSupportKHR" (vkGetPhysicalDeviceXcbPresentationSupportKHR'+                                                                          (physicalDeviceHandle (physicalDevice))+                                                                          (queueFamilyIndex)+                                                                          (connection)+                                                                          (visual_id))   pure $ ((bool32ToBool r))  @@ -462,8 +473,6 @@ newtype XcbSurfaceCreateFlagsKHR = XcbSurfaceCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameXcbSurfaceCreateFlagsKHR :: String conNameXcbSurfaceCreateFlagsKHR = "XcbSurfaceCreateFlagsKHR" @@ -474,18 +483,21 @@ showTableXcbSurfaceCreateFlagsKHR = []  instance Show XcbSurfaceCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixXcbSurfaceCreateFlagsKHR-                            showTableXcbSurfaceCreateFlagsKHR-                            conNameXcbSurfaceCreateFlagsKHR-                            (\(XcbSurfaceCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixXcbSurfaceCreateFlagsKHR+      showTableXcbSurfaceCreateFlagsKHR+      conNameXcbSurfaceCreateFlagsKHR+      (\(XcbSurfaceCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read XcbSurfaceCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixXcbSurfaceCreateFlagsKHR-                          showTableXcbSurfaceCreateFlagsKHR-                          conNameXcbSurfaceCreateFlagsKHR-                          XcbSurfaceCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixXcbSurfaceCreateFlagsKHR+      showTableXcbSurfaceCreateFlagsKHR+      conNameXcbSurfaceCreateFlagsKHR+      XcbSurfaceCreateFlagsKHR  type KHR_XCB_SURFACE_SPEC_VERSION = 6 
src/Vulkan/Extensions/VK_KHR_xlib_surface.hs view
@@ -318,7 +318,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateXlibSurfaceKHR" (vkCreateXlibSurfaceKHR' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateXlibSurfaceKHR" (vkCreateXlibSurfaceKHR'+                                                           (instanceHandle (instance'))+                                                           pCreateInfo+                                                           pAllocator+                                                           (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -369,12 +373,19 @@                                             -> -- No documentation found for Nested "vkGetPhysicalDeviceXlibPresentationSupportKHR" "visualID"                                                VisualID                                             -> io (Bool)-getPhysicalDeviceXlibPresentationSupportKHR physicalDevice queueFamilyIndex dpy visualID = liftIO $ do+getPhysicalDeviceXlibPresentationSupportKHR physicalDevice+                                              queueFamilyIndex+                                              dpy+                                              visualID = liftIO $ do   let vkGetPhysicalDeviceXlibPresentationSupportKHRPtr = pVkGetPhysicalDeviceXlibPresentationSupportKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   unless (vkGetPhysicalDeviceXlibPresentationSupportKHRPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceXlibPresentationSupportKHR is null" Nothing Nothing   let vkGetPhysicalDeviceXlibPresentationSupportKHR' = mkVkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHRPtr-  r <- traceAroundEvent "vkGetPhysicalDeviceXlibPresentationSupportKHR" (vkGetPhysicalDeviceXlibPresentationSupportKHR' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (dpy) (visualID))+  r <- traceAroundEvent "vkGetPhysicalDeviceXlibPresentationSupportKHR" (vkGetPhysicalDeviceXlibPresentationSupportKHR'+                                                                           (physicalDeviceHandle (physicalDevice))+                                                                           (queueFamilyIndex)+                                                                           (dpy)+                                                                           (visualID))   pure $ ((bool32ToBool r))  @@ -464,8 +475,6 @@ newtype XlibSurfaceCreateFlagsKHR = XlibSurfaceCreateFlagsKHR Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameXlibSurfaceCreateFlagsKHR :: String conNameXlibSurfaceCreateFlagsKHR = "XlibSurfaceCreateFlagsKHR" @@ -476,18 +485,21 @@ showTableXlibSurfaceCreateFlagsKHR = []  instance Show XlibSurfaceCreateFlagsKHR where-  showsPrec = enumShowsPrec enumPrefixXlibSurfaceCreateFlagsKHR-                            showTableXlibSurfaceCreateFlagsKHR-                            conNameXlibSurfaceCreateFlagsKHR-                            (\(XlibSurfaceCreateFlagsKHR x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixXlibSurfaceCreateFlagsKHR+      showTableXlibSurfaceCreateFlagsKHR+      conNameXlibSurfaceCreateFlagsKHR+      (\(XlibSurfaceCreateFlagsKHR x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read XlibSurfaceCreateFlagsKHR where-  readPrec = enumReadPrec enumPrefixXlibSurfaceCreateFlagsKHR-                          showTableXlibSurfaceCreateFlagsKHR-                          conNameXlibSurfaceCreateFlagsKHR-                          XlibSurfaceCreateFlagsKHR-+  readPrec =+    enumReadPrec+      enumPrefixXlibSurfaceCreateFlagsKHR+      showTableXlibSurfaceCreateFlagsKHR+      conNameXlibSurfaceCreateFlagsKHR+      XlibSurfaceCreateFlagsKHR  type KHR_XLIB_SURFACE_SPEC_VERSION = 6 
src/Vulkan/Extensions/VK_MVK_ios_surface.hs view
@@ -267,7 +267,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateIOSSurfaceMVK" (vkCreateIOSSurfaceMVK' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateIOSSurfaceMVK" (vkCreateIOSSurfaceMVK'+                                                          (instanceHandle (instance'))+                                                          pCreateInfo+                                                          pAllocator+                                                          (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -368,8 +372,6 @@ newtype IOSSurfaceCreateFlagsMVK = IOSSurfaceCreateFlagsMVK Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameIOSSurfaceCreateFlagsMVK :: String conNameIOSSurfaceCreateFlagsMVK = "IOSSurfaceCreateFlagsMVK" @@ -380,18 +382,21 @@ showTableIOSSurfaceCreateFlagsMVK = []  instance Show IOSSurfaceCreateFlagsMVK where-  showsPrec = enumShowsPrec enumPrefixIOSSurfaceCreateFlagsMVK-                            showTableIOSSurfaceCreateFlagsMVK-                            conNameIOSSurfaceCreateFlagsMVK-                            (\(IOSSurfaceCreateFlagsMVK x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixIOSSurfaceCreateFlagsMVK+      showTableIOSSurfaceCreateFlagsMVK+      conNameIOSSurfaceCreateFlagsMVK+      (\(IOSSurfaceCreateFlagsMVK x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read IOSSurfaceCreateFlagsMVK where-  readPrec = enumReadPrec enumPrefixIOSSurfaceCreateFlagsMVK-                          showTableIOSSurfaceCreateFlagsMVK-                          conNameIOSSurfaceCreateFlagsMVK-                          IOSSurfaceCreateFlagsMVK-+  readPrec =+    enumReadPrec+      enumPrefixIOSSurfaceCreateFlagsMVK+      showTableIOSSurfaceCreateFlagsMVK+      conNameIOSSurfaceCreateFlagsMVK+      IOSSurfaceCreateFlagsMVK  type MVK_IOS_SURFACE_SPEC_VERSION = 3 
src/Vulkan/Extensions/VK_MVK_macos_surface.hs view
@@ -270,7 +270,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateMacOSSurfaceMVK" (vkCreateMacOSSurfaceMVK' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateMacOSSurfaceMVK" (vkCreateMacOSSurfaceMVK'+                                                            (instanceHandle (instance'))+                                                            pCreateInfo+                                                            pAllocator+                                                            (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -372,8 +376,6 @@ newtype MacOSSurfaceCreateFlagsMVK = MacOSSurfaceCreateFlagsMVK Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameMacOSSurfaceCreateFlagsMVK :: String conNameMacOSSurfaceCreateFlagsMVK = "MacOSSurfaceCreateFlagsMVK" @@ -384,18 +386,21 @@ showTableMacOSSurfaceCreateFlagsMVK = []  instance Show MacOSSurfaceCreateFlagsMVK where-  showsPrec = enumShowsPrec enumPrefixMacOSSurfaceCreateFlagsMVK-                            showTableMacOSSurfaceCreateFlagsMVK-                            conNameMacOSSurfaceCreateFlagsMVK-                            (\(MacOSSurfaceCreateFlagsMVK x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixMacOSSurfaceCreateFlagsMVK+      showTableMacOSSurfaceCreateFlagsMVK+      conNameMacOSSurfaceCreateFlagsMVK+      (\(MacOSSurfaceCreateFlagsMVK x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read MacOSSurfaceCreateFlagsMVK where-  readPrec = enumReadPrec enumPrefixMacOSSurfaceCreateFlagsMVK-                          showTableMacOSSurfaceCreateFlagsMVK-                          conNameMacOSSurfaceCreateFlagsMVK-                          MacOSSurfaceCreateFlagsMVK-+  readPrec =+    enumReadPrec+      enumPrefixMacOSSurfaceCreateFlagsMVK+      showTableMacOSSurfaceCreateFlagsMVK+      conNameMacOSSurfaceCreateFlagsMVK+      MacOSSurfaceCreateFlagsMVK  type MVK_MACOS_SURFACE_SPEC_VERSION = 3 
src/Vulkan/Extensions/VK_NN_vi_surface.hs view
@@ -262,7 +262,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateViSurfaceNN" (vkCreateViSurfaceNN' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateViSurfaceNN" (vkCreateViSurfaceNN'+                                                        (instanceHandle (instance'))+                                                        pCreateInfo+                                                        pAllocator+                                                        (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -345,8 +349,6 @@ newtype ViSurfaceCreateFlagsNN = ViSurfaceCreateFlagsNN Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameViSurfaceCreateFlagsNN :: String conNameViSurfaceCreateFlagsNN = "ViSurfaceCreateFlagsNN" @@ -357,18 +359,21 @@ showTableViSurfaceCreateFlagsNN = []  instance Show ViSurfaceCreateFlagsNN where-  showsPrec = enumShowsPrec enumPrefixViSurfaceCreateFlagsNN-                            showTableViSurfaceCreateFlagsNN-                            conNameViSurfaceCreateFlagsNN-                            (\(ViSurfaceCreateFlagsNN x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixViSurfaceCreateFlagsNN+      showTableViSurfaceCreateFlagsNN+      conNameViSurfaceCreateFlagsNN+      (\(ViSurfaceCreateFlagsNN x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ViSurfaceCreateFlagsNN where-  readPrec = enumReadPrec enumPrefixViSurfaceCreateFlagsNN-                          showTableViSurfaceCreateFlagsNN-                          conNameViSurfaceCreateFlagsNN-                          ViSurfaceCreateFlagsNN-+  readPrec =+    enumReadPrec+      enumPrefixViSurfaceCreateFlagsNN+      showTableViSurfaceCreateFlagsNN+      conNameViSurfaceCreateFlagsNN+      ViSurfaceCreateFlagsNN  type NN_VI_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NVX_binary_import.hs view
@@ -566,7 +566,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPModule <- ContT $ bracket (callocBytes @CuModuleNVX 8) free-  r <- lift $ traceAroundEvent "vkCreateCuModuleNVX" (vkCreateCuModuleNVX' (deviceHandle (device)) pCreateInfo pAllocator (pPModule))+  r <- lift $ traceAroundEvent "vkCreateCuModuleNVX" (vkCreateCuModuleNVX'+                                                        (deviceHandle (device))+                                                        pCreateInfo+                                                        pAllocator+                                                        (pPModule))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pModule <- lift $ peek @CuModuleNVX pPModule   pure $ (pModule)@@ -648,7 +652,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPFunction <- ContT $ bracket (callocBytes @CuFunctionNVX 8) free-  r <- lift $ traceAroundEvent "vkCreateCuFunctionNVX" (vkCreateCuFunctionNVX' (deviceHandle (device)) pCreateInfo pAllocator (pPFunction))+  r <- lift $ traceAroundEvent "vkCreateCuFunctionNVX" (vkCreateCuFunctionNVX'+                                                          (deviceHandle (device))+                                                          pCreateInfo+                                                          pAllocator+                                                          (pPFunction))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pFunction <- lift $ peek @CuFunctionNVX pPFunction   pure $ (pFunction)@@ -713,7 +721,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyCuModuleNVX" (vkDestroyCuModuleNVX' (deviceHandle (device)) (module') pAllocator)+  lift $ traceAroundEvent "vkDestroyCuModuleNVX" (vkDestroyCuModuleNVX'+                                                    (deviceHandle (device))+                                                    (module')+                                                    pAllocator)   pure $ ()  @@ -764,7 +775,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyCuFunctionNVX" (vkDestroyCuFunctionNVX' (deviceHandle (device)) (function) pAllocator)+  lift $ traceAroundEvent "vkDestroyCuFunctionNVX" (vkDestroyCuFunctionNVX'+                                                      (deviceHandle (device))+                                                      (function)+                                                      pAllocator)   pure $ ()  @@ -830,7 +844,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCuLaunchKernelNVX is null" Nothing Nothing   let vkCmdCuLaunchKernelNVX' = mkVkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVXPtr   pLaunchInfo <- ContT $ withCStruct (launchInfo)-  lift $ traceAroundEvent "vkCmdCuLaunchKernelNVX" (vkCmdCuLaunchKernelNVX' (commandBufferHandle (commandBuffer)) pLaunchInfo)+  lift $ traceAroundEvent "vkCmdCuLaunchKernelNVX" (vkCmdCuLaunchKernelNVX'+                                                      (commandBufferHandle (commandBuffer))+                                                      pLaunchInfo)   pure $ ()  @@ -1056,7 +1072,16 @@     pExtras <- peek @(Ptr (Ptr ())) ((p `plusPtr` 80 :: Ptr (Ptr (Ptr ()))))     pExtras' <- generateM (fromIntegral (coerce @CSize @Word64 extraCount)) (\i -> peek @(Ptr ()) ((pExtras `advancePtrBytes` (8 * (i)) :: Ptr (Ptr ()))))     pure $ CuLaunchInfoNVX-             function gridDimX gridDimY gridDimZ blockDimX blockDimY blockDimZ sharedMemBytes pParams' pExtras'+             function+             gridDimX+             gridDimY+             gridDimZ+             blockDimX+             blockDimY+             blockDimZ+             sharedMemBytes+             pParams'+             pExtras'  instance Zero CuLaunchInfoNVX where   zero = CuLaunchInfoNVX
src/Vulkan/Extensions/VK_NVX_image_view_handle.hs view
@@ -186,7 +186,9 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageViewHandleNVX is null" Nothing Nothing   let vkGetImageViewHandleNVX' = mkVkGetImageViewHandleNVX vkGetImageViewHandleNVXPtr   pInfo <- ContT $ withCStruct (info)-  r <- lift $ traceAroundEvent "vkGetImageViewHandleNVX" (vkGetImageViewHandleNVX' (deviceHandle (device)) pInfo)+  r <- lift $ traceAroundEvent "vkGetImageViewHandleNVX" (vkGetImageViewHandleNVX'+                                                            (deviceHandle (device))+                                                            pInfo)   pure $ (r)  @@ -238,7 +240,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetImageViewAddressNVX is null" Nothing Nothing   let vkGetImageViewAddressNVX' = mkVkGetImageViewAddressNVX vkGetImageViewAddressNVXPtr   pPProperties <- ContT (withZeroCStruct @ImageViewAddressPropertiesNVX)-  r <- lift $ traceAroundEvent "vkGetImageViewAddressNVX" (vkGetImageViewAddressNVX' (deviceHandle (device)) (imageView) (pPProperties))+  r <- lift $ traceAroundEvent "vkGetImageViewAddressNVX" (vkGetImageViewAddressNVX'+                                                             (deviceHandle (device))+                                                             (imageView)+                                                             (pPProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pProperties <- lift $ peekCStruct @ImageViewAddressPropertiesNVX pPProperties   pure $ (pProperties)
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs view
@@ -80,10 +80,10 @@ -- -- Shaders that use the new per-view outputs (e.g. @gl_PositionPerViewNV@) -- /must/ also write the non-per-view output (@gl_Position@), and the--- values written /must/ be such that @gl_Position =--- gl_PositionPerViewNV[gl_ViewIndex]@ for all views in the subpass.--- Implementations are free to either use the per-view outputs or the--- non-per-view outputs, whichever would be more efficient.+-- values written /must/ be such that+-- @gl_Position = gl_PositionPerViewNV[gl_ViewIndex]@ for all views in the+-- subpass. Implementations are free to either use the per-view outputs or+-- the non-per-view outputs, whichever would be more efficient. -- -- If @VK_NV_viewport_array2@ is not also supported and enabled, the -- per-view viewport mask /must/ not be used.
src/Vulkan/Extensions/VK_NVX_multiview_per_view_attributes.hs-boot view
@@ -80,10 +80,10 @@ -- -- Shaders that use the new per-view outputs (e.g. @gl_PositionPerViewNV@) -- /must/ also write the non-per-view output (@gl_Position@), and the--- values written /must/ be such that @gl_Position =--- gl_PositionPerViewNV[gl_ViewIndex]@ for all views in the subpass.--- Implementations are free to either use the per-view outputs or the--- non-per-view outputs, whichever would be more efficient.+-- values written /must/ be such that+-- @gl_Position = gl_PositionPerViewNV[gl_ViewIndex]@ for all views in the+-- subpass. Implementations are free to either use the per-view outputs or+-- the non-per-view outputs, whichever would be more efficient. -- -- If @VK_NV_viewport_array2@ is not also supported and enabled, the -- per-view viewport mask /must/ not be used.
src/Vulkan/Extensions/VK_NV_acquire_winrt_display.hs view
@@ -298,7 +298,9 @@   unless (vkAcquireWinrtDisplayNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkAcquireWinrtDisplayNV is null" Nothing Nothing   let vkAcquireWinrtDisplayNV' = mkVkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNVPtr-  r <- traceAroundEvent "vkAcquireWinrtDisplayNV" (vkAcquireWinrtDisplayNV' (physicalDeviceHandle (physicalDevice)) (display))+  r <- traceAroundEvent "vkAcquireWinrtDisplayNV" (vkAcquireWinrtDisplayNV'+                                                     (physicalDeviceHandle (physicalDevice))+                                                     (display))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -365,7 +367,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetWinrtDisplayNV is null" Nothing Nothing   let vkGetWinrtDisplayNV' = mkVkGetWinrtDisplayNV vkGetWinrtDisplayNVPtr   pPDisplay <- ContT $ bracket (callocBytes @DisplayKHR 8) free-  r <- lift $ traceAroundEvent "vkGetWinrtDisplayNV" (vkGetWinrtDisplayNV' (physicalDeviceHandle (physicalDevice)) (deviceRelativeId) (pPDisplay))+  r <- lift $ traceAroundEvent "vkGetWinrtDisplayNV" (vkGetWinrtDisplayNV'+                                                        (physicalDeviceHandle (physicalDevice))+                                                        (deviceRelativeId)+                                                        (pPDisplay))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pDisplay <- lift $ peek @DisplayKHR pPDisplay   pure $ (pDisplay)
src/Vulkan/Extensions/VK_NV_clip_space_w_scaling.hs view
@@ -353,14 +353,20 @@                             -- structures specifying viewport parameters.                             ("viewportWScalings" ::: Vector ViewportWScalingNV)                          -> io ()-cmdSetViewportWScalingNV commandBuffer firstViewport viewportWScalings = liftIO . evalContT $ do+cmdSetViewportWScalingNV commandBuffer+                           firstViewport+                           viewportWScalings = liftIO . evalContT $ do   let vkCmdSetViewportWScalingNVPtr = pVkCmdSetViewportWScalingNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetViewportWScalingNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportWScalingNV is null" Nothing Nothing   let vkCmdSetViewportWScalingNV' = mkVkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNVPtr   pPViewportWScalings <- ContT $ allocaBytes @ViewportWScalingNV ((Data.Vector.length (viewportWScalings)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPViewportWScalings `plusPtr` (8 * (i)) :: Ptr ViewportWScalingNV) (e)) (viewportWScalings)-  lift $ traceAroundEvent "vkCmdSetViewportWScalingNV" (vkCmdSetViewportWScalingNV' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (viewportWScalings)) :: Word32)) (pPViewportWScalings))+  lift $ traceAroundEvent "vkCmdSetViewportWScalingNV" (vkCmdSetViewportWScalingNV'+                                                          (commandBufferHandle (commandBuffer))+                                                          (firstViewport)+                                                          ((fromIntegral (Data.Vector.length $ (viewportWScalings)) :: Word32))+                                                          (pPViewportWScalings))   pure $ ()  @@ -486,7 +492,9 @@     let pViewportWScalingsLength = if pViewportWScalings == nullPtr then 0 else (fromIntegral viewportCount)     pViewportWScalings' <- generateM pViewportWScalingsLength (\i -> peekCStruct @ViewportWScalingNV ((pViewportWScalings `advancePtrBytes` (8 * (i)) :: Ptr ViewportWScalingNV)))     pure $ PipelineViewportWScalingStateCreateInfoNV-             (bool32ToBool viewportWScalingEnable) viewportCount pViewportWScalings'+             (bool32ToBool viewportWScalingEnable)+             viewportCount+             pViewportWScalings'  instance Zero PipelineViewportWScalingStateCreateInfoNV where   zero = PipelineViewportWScalingStateCreateInfoNV
src/Vulkan/Extensions/VK_NV_compute_shader_derivatives.hs view
@@ -217,7 +217,8 @@     computeDerivativeGroupQuads <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     computeDerivativeGroupLinear <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceComputeShaderDerivativesFeaturesNV-             (bool32ToBool computeDerivativeGroupQuads) (bool32ToBool computeDerivativeGroupLinear)+             (bool32ToBool computeDerivativeGroupQuads)+             (bool32ToBool computeDerivativeGroupLinear)  instance Storable PhysicalDeviceComputeShaderDerivativesFeaturesNV where   sizeOf ~_ = 24
src/Vulkan/Extensions/VK_NV_cooperative_matrix.hs view
@@ -308,12 +308,18 @@   let vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' = mkVkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNVPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPPropertyCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' physicalDevice' (pPPropertyCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixPropertiesNV'+                                                                                     physicalDevice'+                                                                                     (pPPropertyCount)+                                                                                     (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPropertyCount <- lift $ peek @Word32 pPPropertyCount   pPProperties <- ContT $ bracket (callocBytes @CooperativeMatrixPropertiesNV ((fromIntegral (pPropertyCount)) * 48)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 48) :: Ptr CooperativeMatrixPropertiesNV) . ($ ())) [0..(fromIntegral (pPropertyCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixPropertiesNV' physicalDevice' (pPPropertyCount) ((pPProperties)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" (vkGetPhysicalDeviceCooperativeMatrixPropertiesNV'+                                                                                      physicalDevice'+                                                                                      (pPPropertyCount)+                                                                                      ((pPProperties)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pPropertyCount' <- lift $ peek @Word32 pPPropertyCount   pProperties' <- lift $ generateM (fromIntegral (pPropertyCount')) (\i -> peekCStruct @CooperativeMatrixPropertiesNV (((pPProperties) `advancePtrBytes` (48 * (i)) :: Ptr CooperativeMatrixPropertiesNV)))@@ -384,7 +390,8 @@     cooperativeMatrix <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     cooperativeMatrixRobustBufferAccess <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceCooperativeMatrixFeaturesNV-             (bool32ToBool cooperativeMatrix) (bool32ToBool cooperativeMatrixRobustBufferAccess)+             (bool32ToBool cooperativeMatrix)+             (bool32ToBool cooperativeMatrixRobustBufferAccess)  instance Storable PhysicalDeviceCooperativeMatrixFeaturesNV where   sizeOf ~_ = 24@@ -597,22 +604,30 @@ -- 'CooperativeMatrixPropertiesNV' newtype ScopeNV = ScopeNV 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  -- | 'SCOPE_DEVICE_NV' corresponds to SPIR-V 'Vulkan.Core10.Handles.Device' -- scope.-pattern SCOPE_DEVICE_NV       = ScopeNV 1+pattern SCOPE_DEVICE_NV = ScopeNV 1+ -- | 'SCOPE_WORKGROUP_NV' corresponds to SPIR-V @Workgroup@ scope.-pattern SCOPE_WORKGROUP_NV    = ScopeNV 2+pattern SCOPE_WORKGROUP_NV = ScopeNV 2+ -- | 'SCOPE_SUBGROUP_NV' corresponds to SPIR-V @Subgroup@ scope.-pattern SCOPE_SUBGROUP_NV     = ScopeNV 3+pattern SCOPE_SUBGROUP_NV = ScopeNV 3+ -- | 'SCOPE_QUEUE_FAMILY_NV' corresponds to SPIR-V @QueueFamily@ scope. pattern SCOPE_QUEUE_FAMILY_NV = ScopeNV 5-{-# complete SCOPE_DEVICE_NV,-             SCOPE_WORKGROUP_NV,-             SCOPE_SUBGROUP_NV,-             SCOPE_QUEUE_FAMILY_NV :: ScopeNV #-} +{-# COMPLETE+  SCOPE_DEVICE_NV+  , SCOPE_WORKGROUP_NV+  , SCOPE_SUBGROUP_NV+  , SCOPE_QUEUE_FAMILY_NV ::+    ScopeNV+  #-}+ conNameScopeNV :: String conNameScopeNV = "ScopeNV" @@ -621,18 +636,28 @@  showTableScopeNV :: [(ScopeNV, String)] showTableScopeNV =-  [ (SCOPE_DEVICE_NV      , "DEVICE_NV")-  , (SCOPE_WORKGROUP_NV   , "WORKGROUP_NV")-  , (SCOPE_SUBGROUP_NV    , "SUBGROUP_NV")+  [ (SCOPE_DEVICE_NV, "DEVICE_NV")+  , (SCOPE_WORKGROUP_NV, "WORKGROUP_NV")+  , (SCOPE_SUBGROUP_NV, "SUBGROUP_NV")   , (SCOPE_QUEUE_FAMILY_NV, "QUEUE_FAMILY_NV")   ]  instance Show ScopeNV where-  showsPrec = enumShowsPrec enumPrefixScopeNV showTableScopeNV conNameScopeNV (\(ScopeNV x) -> x) (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixScopeNV+      showTableScopeNV+      conNameScopeNV+      (\(ScopeNV x) -> x)+      (showsPrec 11)  instance Read ScopeNV where-  readPrec = enumReadPrec enumPrefixScopeNV showTableScopeNV conNameScopeNV ScopeNV-+  readPrec =+    enumReadPrec+      enumPrefixScopeNV+      showTableScopeNV+      conNameScopeNV+      ScopeNV  -- | VkComponentTypeNV - Specify SPIR-V cooperative matrix component type --@@ -645,38 +670,52 @@  -- | 'COMPONENT_TYPE_FLOAT16_NV' corresponds to SPIR-V @OpTypeFloat@ 16. pattern COMPONENT_TYPE_FLOAT16_NV = ComponentTypeNV 0+ -- | 'COMPONENT_TYPE_FLOAT32_NV' corresponds to SPIR-V @OpTypeFloat@ 32. pattern COMPONENT_TYPE_FLOAT32_NV = ComponentTypeNV 1+ -- | 'COMPONENT_TYPE_FLOAT64_NV' corresponds to SPIR-V @OpTypeFloat@ 64. pattern COMPONENT_TYPE_FLOAT64_NV = ComponentTypeNV 2+ -- | 'COMPONENT_TYPE_SINT8_NV' corresponds to SPIR-V @OpTypeInt@ 8 1.-pattern COMPONENT_TYPE_SINT8_NV   = ComponentTypeNV 3+pattern COMPONENT_TYPE_SINT8_NV = ComponentTypeNV 3+ -- | 'COMPONENT_TYPE_SINT16_NV' corresponds to SPIR-V @OpTypeInt@ 16 1.-pattern COMPONENT_TYPE_SINT16_NV  = ComponentTypeNV 4+pattern COMPONENT_TYPE_SINT16_NV = ComponentTypeNV 4+ -- | 'COMPONENT_TYPE_SINT32_NV' corresponds to SPIR-V @OpTypeInt@ 32 1.-pattern COMPONENT_TYPE_SINT32_NV  = ComponentTypeNV 5+pattern COMPONENT_TYPE_SINT32_NV = ComponentTypeNV 5+ -- | 'COMPONENT_TYPE_SINT64_NV' corresponds to SPIR-V @OpTypeInt@ 64 1.-pattern COMPONENT_TYPE_SINT64_NV  = ComponentTypeNV 6+pattern COMPONENT_TYPE_SINT64_NV = ComponentTypeNV 6+ -- | 'COMPONENT_TYPE_UINT8_NV' corresponds to SPIR-V @OpTypeInt@ 8 0.-pattern COMPONENT_TYPE_UINT8_NV   = ComponentTypeNV 7+pattern COMPONENT_TYPE_UINT8_NV = ComponentTypeNV 7+ -- | 'COMPONENT_TYPE_UINT16_NV' corresponds to SPIR-V @OpTypeInt@ 16 0.-pattern COMPONENT_TYPE_UINT16_NV  = ComponentTypeNV 8+pattern COMPONENT_TYPE_UINT16_NV = ComponentTypeNV 8+ -- | 'COMPONENT_TYPE_UINT32_NV' corresponds to SPIR-V @OpTypeInt@ 32 0.-pattern COMPONENT_TYPE_UINT32_NV  = ComponentTypeNV 9+pattern COMPONENT_TYPE_UINT32_NV = ComponentTypeNV 9+ -- | 'COMPONENT_TYPE_UINT64_NV' corresponds to SPIR-V @OpTypeInt@ 64 0.-pattern COMPONENT_TYPE_UINT64_NV  = ComponentTypeNV 10-{-# complete COMPONENT_TYPE_FLOAT16_NV,-             COMPONENT_TYPE_FLOAT32_NV,-             COMPONENT_TYPE_FLOAT64_NV,-             COMPONENT_TYPE_SINT8_NV,-             COMPONENT_TYPE_SINT16_NV,-             COMPONENT_TYPE_SINT32_NV,-             COMPONENT_TYPE_SINT64_NV,-             COMPONENT_TYPE_UINT8_NV,-             COMPONENT_TYPE_UINT16_NV,-             COMPONENT_TYPE_UINT32_NV,-             COMPONENT_TYPE_UINT64_NV :: ComponentTypeNV #-}+pattern COMPONENT_TYPE_UINT64_NV = ComponentTypeNV 10 +{-# COMPLETE+  COMPONENT_TYPE_FLOAT16_NV+  , COMPONENT_TYPE_FLOAT32_NV+  , COMPONENT_TYPE_FLOAT64_NV+  , COMPONENT_TYPE_SINT8_NV+  , COMPONENT_TYPE_SINT16_NV+  , COMPONENT_TYPE_SINT32_NV+  , COMPONENT_TYPE_SINT64_NV+  , COMPONENT_TYPE_UINT8_NV+  , COMPONENT_TYPE_UINT16_NV+  , COMPONENT_TYPE_UINT32_NV+  , COMPONENT_TYPE_UINT64_NV ::+    ComponentTypeNV+  #-}+ conNameComponentTypeNV :: String conNameComponentTypeNV = "ComponentTypeNV" @@ -688,26 +727,32 @@   [ (COMPONENT_TYPE_FLOAT16_NV, "FLOAT16_NV")   , (COMPONENT_TYPE_FLOAT32_NV, "FLOAT32_NV")   , (COMPONENT_TYPE_FLOAT64_NV, "FLOAT64_NV")-  , (COMPONENT_TYPE_SINT8_NV  , "SINT8_NV")-  , (COMPONENT_TYPE_SINT16_NV , "SINT16_NV")-  , (COMPONENT_TYPE_SINT32_NV , "SINT32_NV")-  , (COMPONENT_TYPE_SINT64_NV , "SINT64_NV")-  , (COMPONENT_TYPE_UINT8_NV  , "UINT8_NV")-  , (COMPONENT_TYPE_UINT16_NV , "UINT16_NV")-  , (COMPONENT_TYPE_UINT32_NV , "UINT32_NV")-  , (COMPONENT_TYPE_UINT64_NV , "UINT64_NV")+  , (COMPONENT_TYPE_SINT8_NV, "SINT8_NV")+  , (COMPONENT_TYPE_SINT16_NV, "SINT16_NV")+  , (COMPONENT_TYPE_SINT32_NV, "SINT32_NV")+  , (COMPONENT_TYPE_SINT64_NV, "SINT64_NV")+  , (COMPONENT_TYPE_UINT8_NV, "UINT8_NV")+  , (COMPONENT_TYPE_UINT16_NV, "UINT16_NV")+  , (COMPONENT_TYPE_UINT32_NV, "UINT32_NV")+  , (COMPONENT_TYPE_UINT64_NV, "UINT64_NV")   ]  instance Show ComponentTypeNV where-  showsPrec = enumShowsPrec enumPrefixComponentTypeNV-                            showTableComponentTypeNV-                            conNameComponentTypeNV-                            (\(ComponentTypeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixComponentTypeNV+      showTableComponentTypeNV+      conNameComponentTypeNV+      (\(ComponentTypeNV x) -> x)+      (showsPrec 11)  instance Read ComponentTypeNV where-  readPrec = enumReadPrec enumPrefixComponentTypeNV showTableComponentTypeNV conNameComponentTypeNV ComponentTypeNV-+  readPrec =+    enumReadPrec+      enumPrefixComponentTypeNV+      showTableComponentTypeNV+      conNameComponentTypeNV+      ComponentTypeNV  type NV_COOPERATIVE_MATRIX_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs view
@@ -285,12 +285,18 @@   let vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' = mkVkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNVPtr   let physicalDevice' = physicalDeviceHandle (physicalDevice)   pPCombinationCount <- ContT $ bracket (callocBytes @Word32 4) free-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" (vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' physicalDevice' (pPCombinationCount) (nullPtr))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" (vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+                                                                                                      physicalDevice'+                                                                                                      (pPCombinationCount)+                                                                                                      (nullPtr))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pCombinationCount <- lift $ peek @Word32 pPCombinationCount   pPCombinations <- ContT $ bracket (callocBytes @FramebufferMixedSamplesCombinationNV ((fromIntegral (pCombinationCount)) * 32)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCombinations `advancePtrBytes` (i * 32) :: Ptr FramebufferMixedSamplesCombinationNV) . ($ ())) [0..(fromIntegral (pCombinationCount)) - 1]-  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" (vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV' physicalDevice' (pPCombinationCount) ((pPCombinations)))+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" (vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+                                                                                                       physicalDevice'+                                                                                                       (pPCombinationCount)+                                                                                                       ((pPCombinations)))   lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))   pCombinationCount' <- lift $ peek @Word32 pPCombinationCount   pCombinations' <- lift $ generateM (fromIntegral (pCombinationCount')) (\i -> peekCStruct @FramebufferMixedSamplesCombinationNV (((pPCombinations) `advancePtrBytes` (32 * (i)) :: Ptr FramebufferMixedSamplesCombinationNV)))@@ -519,7 +525,10 @@     depthStencilSamples <- peek @SampleCountFlags ((p `plusPtr` 24 :: Ptr SampleCountFlags))     colorSamples <- peek @SampleCountFlags ((p `plusPtr` 28 :: Ptr SampleCountFlags))     pure $ FramebufferMixedSamplesCombinationNV-             coverageReductionMode rasterizationSamples depthStencilSamples colorSamples+             coverageReductionMode+             rasterizationSamples+             depthStencilSamples+             colorSamples  instance Storable FramebufferMixedSamplesCombinationNV where   sizeOf ~_ = 32@@ -549,8 +558,6 @@ newtype PipelineCoverageReductionStateCreateFlagsNV = PipelineCoverageReductionStateCreateFlagsNV Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineCoverageReductionStateCreateFlagsNV :: String conNamePipelineCoverageReductionStateCreateFlagsNV = "PipelineCoverageReductionStateCreateFlagsNV" @@ -561,18 +568,21 @@ showTablePipelineCoverageReductionStateCreateFlagsNV = []  instance Show PipelineCoverageReductionStateCreateFlagsNV where-  showsPrec = enumShowsPrec enumPrefixPipelineCoverageReductionStateCreateFlagsNV-                            showTablePipelineCoverageReductionStateCreateFlagsNV-                            conNamePipelineCoverageReductionStateCreateFlagsNV-                            (\(PipelineCoverageReductionStateCreateFlagsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCoverageReductionStateCreateFlagsNV+      showTablePipelineCoverageReductionStateCreateFlagsNV+      conNamePipelineCoverageReductionStateCreateFlagsNV+      (\(PipelineCoverageReductionStateCreateFlagsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCoverageReductionStateCreateFlagsNV where-  readPrec = enumReadPrec enumPrefixPipelineCoverageReductionStateCreateFlagsNV-                          showTablePipelineCoverageReductionStateCreateFlagsNV-                          conNamePipelineCoverageReductionStateCreateFlagsNV-                          PipelineCoverageReductionStateCreateFlagsNV-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCoverageReductionStateCreateFlagsNV+      showTablePipelineCoverageReductionStateCreateFlagsNV+      conNamePipelineCoverageReductionStateCreateFlagsNV+      PipelineCoverageReductionStateCreateFlagsNV  -- | VkCoverageReductionModeNV - Specify the coverage reduction mode --@@ -580,7 +590,8 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_coverage_reduction_mode VK_NV_coverage_reduction_mode>, -- 'FramebufferMixedSamplesCombinationNV',--- 'PipelineCoverageReductionStateCreateInfoNV'+-- 'PipelineCoverageReductionStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageReductionModeNV' newtype CoverageReductionModeNV = CoverageReductionModeNV Int32   deriving newtype (Eq, Ord, Storable, Zero) @@ -588,16 +599,21 @@ -- be associated with an implementation-dependent subset of samples in the -- pixel coverage. If any of those associated samples are covered, the -- color sample is covered.-pattern COVERAGE_REDUCTION_MODE_MERGE_NV    = CoverageReductionModeNV 0+pattern COVERAGE_REDUCTION_MODE_MERGE_NV = CoverageReductionModeNV 0+ -- | '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://registry.khronos.org/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,-             COVERAGE_REDUCTION_MODE_TRUNCATE_NV :: CoverageReductionModeNV #-} +{-# COMPLETE+  COVERAGE_REDUCTION_MODE_MERGE_NV+  , COVERAGE_REDUCTION_MODE_TRUNCATE_NV ::+    CoverageReductionModeNV+  #-}+ conNameCoverageReductionModeNV :: String conNameCoverageReductionModeNV = "CoverageReductionModeNV" @@ -606,21 +622,32 @@  showTableCoverageReductionModeNV :: [(CoverageReductionModeNV, String)] showTableCoverageReductionModeNV =-  [(COVERAGE_REDUCTION_MODE_MERGE_NV, "MERGE_NV"), (COVERAGE_REDUCTION_MODE_TRUNCATE_NV, "TRUNCATE_NV")]+  [+    ( COVERAGE_REDUCTION_MODE_MERGE_NV+    , "MERGE_NV"+    )+  ,+    ( COVERAGE_REDUCTION_MODE_TRUNCATE_NV+    , "TRUNCATE_NV"+    )+  ]  instance Show CoverageReductionModeNV where-  showsPrec = enumShowsPrec enumPrefixCoverageReductionModeNV-                            showTableCoverageReductionModeNV-                            conNameCoverageReductionModeNV-                            (\(CoverageReductionModeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixCoverageReductionModeNV+      showTableCoverageReductionModeNV+      conNameCoverageReductionModeNV+      (\(CoverageReductionModeNV x) -> x)+      (showsPrec 11)  instance Read CoverageReductionModeNV where-  readPrec = enumReadPrec enumPrefixCoverageReductionModeNV-                          showTableCoverageReductionModeNV-                          conNameCoverageReductionModeNV-                          CoverageReductionModeNV-+  readPrec =+    enumReadPrec+      enumPrefixCoverageReductionModeNV+      showTableCoverageReductionModeNV+      conNameCoverageReductionModeNV+      CoverageReductionModeNV  type NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_coverage_reduction_mode.hs-boot view
@@ -134,6 +134,7 @@ module Vulkan.Extensions.VK_NV_coverage_reduction_mode  ( FramebufferMixedSamplesCombinationNV                                                         , PhysicalDeviceCoverageReductionModeFeaturesNV                                                         , PipelineCoverageReductionStateCreateInfoNV+                                                        , CoverageReductionModeNV                                                         ) where  import Vulkan.CStruct (FromCStruct)@@ -162,4 +163,7 @@ instance Show PipelineCoverageReductionStateCreateInfoNV  instance FromCStruct PipelineCoverageReductionStateCreateInfoNV+++data CoverageReductionModeNV 
src/Vulkan/Extensions/VK_NV_device_diagnostic_checkpoints.hs view
@@ -229,7 +229,9 @@   unless (vkCmdSetCheckpointNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCheckpointNV is null" Nothing Nothing   let vkCmdSetCheckpointNV' = mkVkCmdSetCheckpointNV vkCmdSetCheckpointNVPtr-  traceAroundEvent "vkCmdSetCheckpointNV" (vkCmdSetCheckpointNV' (commandBufferHandle (commandBuffer)) (checkpointMarker))+  traceAroundEvent "vkCmdSetCheckpointNV" (vkCmdSetCheckpointNV'+                                             (commandBufferHandle (commandBuffer))+                                             (checkpointMarker))   pure $ ()  @@ -292,11 +294,17 @@   let vkGetQueueCheckpointDataNV' = mkVkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNVPtr   let queue' = queueHandle (queue)   pPCheckpointDataCount <- ContT $ bracket (callocBytes @Word32 4) free-  lift $ traceAroundEvent "vkGetQueueCheckpointDataNV" (vkGetQueueCheckpointDataNV' queue' (pPCheckpointDataCount) (nullPtr))+  lift $ traceAroundEvent "vkGetQueueCheckpointDataNV" (vkGetQueueCheckpointDataNV'+                                                          queue'+                                                          (pPCheckpointDataCount)+                                                          (nullPtr))   pCheckpointDataCount <- lift $ peek @Word32 pPCheckpointDataCount   pPCheckpointData <- ContT $ bracket (callocBytes @CheckpointDataNV ((fromIntegral (pCheckpointDataCount)) * 32)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPCheckpointData `advancePtrBytes` (i * 32) :: Ptr CheckpointDataNV) . ($ ())) [0..(fromIntegral (pCheckpointDataCount)) - 1]-  lift $ traceAroundEvent "vkGetQueueCheckpointDataNV" (vkGetQueueCheckpointDataNV' queue' (pPCheckpointDataCount) ((pPCheckpointData)))+  lift $ traceAroundEvent "vkGetQueueCheckpointDataNV" (vkGetQueueCheckpointDataNV'+                                                          queue'+                                                          (pPCheckpointDataCount)+                                                          ((pPCheckpointData)))   pCheckpointDataCount' <- lift $ peek @Word32 pPCheckpointDataCount   pCheckpointData' <- lift $ generateM (fromIntegral (pCheckpointDataCount')) (\i -> peekCStruct @CheckpointDataNV (((pPCheckpointData) `advancePtrBytes` (32 * (i)) :: Ptr CheckpointDataNV)))   pure $ (pCheckpointData')
src/Vulkan/Extensions/VK_NV_device_diagnostics_config.hs view
@@ -292,18 +292,21 @@  -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV' enables the -- generation of debug information for shaders.-pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV      = DeviceDiagnosticsConfigFlagBitsNV 0x00000001+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000001+ -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV' enables -- driver side tracking of resources (images, buffers, etc.) used to -- augment the device fault information.-pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV      = DeviceDiagnosticsConfigFlagBitsNV 0x00000002+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000002+ -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV' enables -- automatic insertion of -- <https://registry.khronos.org/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.-pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV  = DeviceDiagnosticsConfigFlagBitsNV 0x00000004+pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000004+ -- | 'DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV' enables -- shader error reporting. pattern DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = DeviceDiagnosticsConfigFlagBitsNV 0x00000008@@ -316,25 +319,40 @@  showTableDeviceDiagnosticsConfigFlagBitsNV :: [(DeviceDiagnosticsConfigFlagBitsNV, String)] showTableDeviceDiagnosticsConfigFlagBitsNV =-  [ (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV     , "SHADER_DEBUG_INFO_BIT_NV")-  , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV     , "RESOURCE_TRACKING_BIT_NV")-  , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV , "AUTOMATIC_CHECKPOINTS_BIT_NV")-  , (DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV, "SHADER_ERROR_REPORTING_BIT_NV")+  [+    ( DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV+    , "SHADER_DEBUG_INFO_BIT_NV"+    )+  ,+    ( DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV+    , "RESOURCE_TRACKING_BIT_NV"+    )+  ,+    ( DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV+    , "AUTOMATIC_CHECKPOINTS_BIT_NV"+    )+  ,+    ( DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV+    , "SHADER_ERROR_REPORTING_BIT_NV"+    )   ]  instance Show DeviceDiagnosticsConfigFlagBitsNV where-  showsPrec = enumShowsPrec enumPrefixDeviceDiagnosticsConfigFlagBitsNV-                            showTableDeviceDiagnosticsConfigFlagBitsNV-                            conNameDeviceDiagnosticsConfigFlagBitsNV-                            (\(DeviceDiagnosticsConfigFlagBitsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixDeviceDiagnosticsConfigFlagBitsNV+      showTableDeviceDiagnosticsConfigFlagBitsNV+      conNameDeviceDiagnosticsConfigFlagBitsNV+      (\(DeviceDiagnosticsConfigFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read DeviceDiagnosticsConfigFlagBitsNV where-  readPrec = enumReadPrec enumPrefixDeviceDiagnosticsConfigFlagBitsNV-                          showTableDeviceDiagnosticsConfigFlagBitsNV-                          conNameDeviceDiagnosticsConfigFlagBitsNV-                          DeviceDiagnosticsConfigFlagBitsNV-+  readPrec =+    enumReadPrec+      enumPrefixDeviceDiagnosticsConfigFlagBitsNV+      showTableDeviceDiagnosticsConfigFlagBitsNV+      conNameDeviceDiagnosticsConfigFlagBitsNV+      DeviceDiagnosticsConfigFlagBitsNV  type NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION = 2 
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -1093,6 +1093,20 @@ --     attachment used by the current subpass /must/ be bound to the --     pipeline via a descriptor set --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-OpTypeImage-07468# If any+--     shader executed by this pipeline accesses an @OpTypeImage@ variable+--     with a @Dim@ operand of @SubpassData@, it /must/ be decorated with+--     an @InputAttachmentIndex@ that corresponds to a valid input+--     attachment in the current subpass+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-06537# Memory backing --     image subresources used as attachments in the current render pass --     /must/ not be written in any way other than as an attachment by this@@ -1604,6 +1618,360 @@ --     created with a non-zero value in --     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@. --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-pColorBlendEnables-07470# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07471# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07476# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07477# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07478# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-firstAttachment-07479# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07484#+--     If the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07485#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07486#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-07487#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07489# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-coverageToColorEnable-07490#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-coverageReductionMode-07491#+--     If this @VK_NV_coverage_reduction_mode@ extension is enabled, the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdExecuteGeneratedCommandsNV-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdExecuteGeneratedCommandsNV-rasterizationSamples-07494# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07495# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07496# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07497# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stippledLineEnable-07498# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-stage-07073# If the currently --     bound pipeline was created with the --     'Vulkan.Core10.Pipeline.PipelineShaderStageCreateInfo'::@stage@@@ -1636,13 +2004,13 @@ --     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fxvertex-input ???> ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420# If---     the bound graphics pipeline state was created with the+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicPrimitiveTopologyUnrestricted-07500#+--     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+--     dynamic state enabled and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-dynamicPrimitiveTopologyUnrestricted dynamicPrimitiveTopologyUnrestricted>+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then the+--     @primitiveTopology@ parameter in the last call to --     '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>@@ -1792,13 +2160,18 @@                                  -- structure containing parameters affecting the generation of commands.                                  GeneratedCommandsInfoNV                               -> io ()-cmdExecuteGeneratedCommandsNV commandBuffer isPreprocessed generatedCommandsInfo = liftIO . evalContT $ do+cmdExecuteGeneratedCommandsNV commandBuffer+                                isPreprocessed+                                generatedCommandsInfo = liftIO . evalContT $ do   let vkCmdExecuteGeneratedCommandsNVPtr = pVkCmdExecuteGeneratedCommandsNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdExecuteGeneratedCommandsNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdExecuteGeneratedCommandsNV is null" Nothing Nothing   let vkCmdExecuteGeneratedCommandsNV' = mkVkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNVPtr   pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)-  lift $ traceAroundEvent "vkCmdExecuteGeneratedCommandsNV" (vkCmdExecuteGeneratedCommandsNV' (commandBufferHandle (commandBuffer)) (boolToBool32 (isPreprocessed)) pGeneratedCommandsInfo)+  lift $ traceAroundEvent "vkCmdExecuteGeneratedCommandsNV" (vkCmdExecuteGeneratedCommandsNV'+                                                               (commandBufferHandle (commandBuffer))+                                                               (boolToBool32 (isPreprocessed))+                                                               pGeneratedCommandsInfo)   pure $ ()  @@ -1881,13 +2254,16 @@                                     -- structure containing parameters affecting the preprocessing step.                                     GeneratedCommandsInfoNV                                  -> io ()-cmdPreprocessGeneratedCommandsNV commandBuffer generatedCommandsInfo = liftIO . evalContT $ do+cmdPreprocessGeneratedCommandsNV commandBuffer+                                   generatedCommandsInfo = liftIO . evalContT $ do   let vkCmdPreprocessGeneratedCommandsNVPtr = pVkCmdPreprocessGeneratedCommandsNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdPreprocessGeneratedCommandsNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdPreprocessGeneratedCommandsNV is null" Nothing Nothing   let vkCmdPreprocessGeneratedCommandsNV' = mkVkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNVPtr   pGeneratedCommandsInfo <- ContT $ withCStruct (generatedCommandsInfo)-  lift $ traceAroundEvent "vkCmdPreprocessGeneratedCommandsNV" (vkCmdPreprocessGeneratedCommandsNV' (commandBufferHandle (commandBuffer)) pGeneratedCommandsInfo)+  lift $ traceAroundEvent "vkCmdPreprocessGeneratedCommandsNV" (vkCmdPreprocessGeneratedCommandsNV'+                                                                  (commandBufferHandle (commandBuffer))+                                                                  pGeneratedCommandsInfo)   pure $ ()  @@ -1987,12 +2363,19 @@                              -> -- | @groupIndex@ is the shader group to be bound.                                 ("groupIndex" ::: Word32)                              -> io ()-cmdBindPipelineShaderGroupNV commandBuffer pipelineBindPoint pipeline groupIndex = liftIO $ do+cmdBindPipelineShaderGroupNV commandBuffer+                               pipelineBindPoint+                               pipeline+                               groupIndex = liftIO $ do   let vkCmdBindPipelineShaderGroupNVPtr = pVkCmdBindPipelineShaderGroupNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdBindPipelineShaderGroupNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindPipelineShaderGroupNV is null" Nothing Nothing   let vkCmdBindPipelineShaderGroupNV' = mkVkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNVPtr-  traceAroundEvent "vkCmdBindPipelineShaderGroupNV" (vkCmdBindPipelineShaderGroupNV' (commandBufferHandle (commandBuffer)) (pipelineBindPoint) (pipeline) (groupIndex))+  traceAroundEvent "vkCmdBindPipelineShaderGroupNV" (vkCmdBindPipelineShaderGroupNV'+                                                       (commandBufferHandle (commandBuffer))+                                                       (pipelineBindPoint)+                                                       (pipeline)+                                                       (groupIndex))   pure $ ()  @@ -2034,7 +2417,10 @@ -- 'GeneratedCommandsMemoryRequirementsInfoNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.MemoryRequirements2' getGeneratedCommandsMemoryRequirementsNV :: forall a io-                                          . (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io)+                                          . ( Extendss MemoryRequirements2 a+                                            , PokeChain a+                                            , PeekChain a+                                            , MonadIO io )                                          => -- | @device@ is the logical device that owns the buffer.                                             Device                                          -> -- | @pInfo@ is a pointer to a 'GeneratedCommandsMemoryRequirementsInfoNV'@@ -2049,7 +2435,10 @@   let vkGetGeneratedCommandsMemoryRequirementsNV' = mkVkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNVPtr   pInfo <- ContT $ withCStruct (info)   pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2 _))-  lift $ traceAroundEvent "vkGetGeneratedCommandsMemoryRequirementsNV" (vkGetGeneratedCommandsMemoryRequirementsNV' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  lift $ traceAroundEvent "vkGetGeneratedCommandsMemoryRequirementsNV" (vkGetGeneratedCommandsMemoryRequirementsNV'+                                                                          (deviceHandle (device))+                                                                          pInfo+                                                                          (forgetExtensions (pPMemoryRequirements)))   pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2 _) pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -2120,7 +2509,9 @@                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io (IndirectCommandsLayoutNV)-createIndirectCommandsLayoutNV device createInfo allocator = liftIO . evalContT $ do+createIndirectCommandsLayoutNV device+                                 createInfo+                                 allocator = liftIO . evalContT $ do   let vkCreateIndirectCommandsLayoutNVPtr = pVkCreateIndirectCommandsLayoutNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateIndirectCommandsLayoutNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateIndirectCommandsLayoutNV is null" Nothing Nothing@@ -2130,7 +2521,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPIndirectCommandsLayout <- ContT $ bracket (callocBytes @IndirectCommandsLayoutNV 8) free-  r <- lift $ traceAroundEvent "vkCreateIndirectCommandsLayoutNV" (vkCreateIndirectCommandsLayoutNV' (deviceHandle (device)) pCreateInfo pAllocator (pPIndirectCommandsLayout))+  r <- lift $ traceAroundEvent "vkCreateIndirectCommandsLayoutNV" (vkCreateIndirectCommandsLayoutNV'+                                                                     (deviceHandle (device))+                                                                     pCreateInfo+                                                                     pAllocator+                                                                     (pPIndirectCommandsLayout))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pIndirectCommandsLayout <- lift $ peek @IndirectCommandsLayoutNV pPIndirectCommandsLayout   pure $ (pIndirectCommandsLayout)@@ -2221,7 +2616,9 @@                                    -- chapter.                                    ("allocator" ::: Maybe AllocationCallbacks)                                 -> io ()-destroyIndirectCommandsLayoutNV device indirectCommandsLayout allocator = liftIO . evalContT $ do+destroyIndirectCommandsLayoutNV device+                                  indirectCommandsLayout+                                  allocator = liftIO . evalContT $ do   let vkDestroyIndirectCommandsLayoutNVPtr = pVkDestroyIndirectCommandsLayoutNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyIndirectCommandsLayoutNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyIndirectCommandsLayoutNV is null" Nothing Nothing@@ -2229,7 +2626,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyIndirectCommandsLayoutNV" (vkDestroyIndirectCommandsLayoutNV' (deviceHandle (device)) (indirectCommandsLayout) pAllocator)+  lift $ traceAroundEvent "vkDestroyIndirectCommandsLayoutNV" (vkDestroyIndirectCommandsLayoutNV'+                                                                 (deviceHandle (device))+                                                                 (indirectCommandsLayout)+                                                                 pAllocator)   pure $ ()  @@ -2404,7 +2804,15 @@     minSequencesIndexBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))     minIndirectCommandsBufferOffsetAlignment <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))     pure $ PhysicalDeviceDeviceGeneratedCommandsPropertiesNV-             maxGraphicsShaderGroupCount maxIndirectSequenceCount maxIndirectCommandsTokenCount maxIndirectCommandsStreamCount maxIndirectCommandsTokenOffset maxIndirectCommandsStreamStride minSequencesCountBufferOffsetAlignment minSequencesIndexBufferOffsetAlignment minIndirectCommandsBufferOffsetAlignment+             maxGraphicsShaderGroupCount+             maxIndirectSequenceCount+             maxIndirectCommandsTokenCount+             maxIndirectCommandsStreamCount+             maxIndirectCommandsTokenOffset+             maxIndirectCommandsStreamStride+             minSequencesCountBufferOffsetAlignment+             minSequencesIndexBufferOffsetAlignment+             minIndirectCommandsBufferOffsetAlignment  instance Storable PhysicalDeviceDeviceGeneratedCommandsPropertiesNV where   sizeOf ~_ = 56@@ -3209,7 +3617,18 @@     pIndexTypeValues <- peek @(Ptr Word32) ((p `plusPtr` 80 :: Ptr (Ptr Word32)))     pIndexTypeValues' <- generateM (fromIntegral indexTypeCount) (\i -> peek @Word32 ((pIndexTypeValues `advancePtrBytes` (4 * (i)) :: Ptr Word32)))     pure $ IndirectCommandsLayoutTokenNV-             tokenType stream offset vertexBindingUnit (bool32ToBool vertexDynamicStride) pushconstantPipelineLayout pushconstantShaderStageFlags pushconstantOffset pushconstantSize indirectStateFlags pIndexTypes' pIndexTypeValues'+             tokenType+             stream+             offset+             vertexBindingUnit+             (bool32ToBool vertexDynamicStride)+             pushconstantPipelineLayout+             pushconstantShaderStageFlags+             pushconstantOffset+             pushconstantSize+             indirectStateFlags+             pIndexTypes'+             pIndexTypeValues'  instance Zero IndirectCommandsLayoutTokenNV where   zero = IndirectCommandsLayoutTokenNV@@ -3694,7 +4113,18 @@     sequencesIndexBuffer <- peek @Buffer ((p `plusPtr` 104 :: Ptr Buffer))     sequencesIndexOffset <- peek @DeviceSize ((p `plusPtr` 112 :: Ptr DeviceSize))     pure $ GeneratedCommandsInfoNV-             pipelineBindPoint pipeline indirectCommandsLayout pStreams' sequencesCount preprocessBuffer preprocessOffset preprocessSize sequencesCountBuffer sequencesCountOffset sequencesIndexBuffer sequencesIndexOffset+             pipelineBindPoint+             pipeline+             indirectCommandsLayout+             pStreams'+             sequencesCount+             preprocessBuffer+             preprocessOffset+             preprocessSize+             sequencesCountBuffer+             sequencesCountOffset+             sequencesIndexBuffer+             sequencesIndexOffset  instance Zero GeneratedCommandsInfoNV where   zero = GeneratedCommandsInfoNV@@ -3839,11 +4269,13 @@ -- 'cmdExecuteGeneratedCommandsNV' with @isPreprocessed@ set to -- 'Vulkan.Core10.FundamentalTypes.TRUE'. pattern INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000001+ -- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV' specifies that -- the input data for the sequences is not implicitly indexed from -- 0..sequencesUsed but a user provided 'Vulkan.Core10.Handles.Buffer' -- encoding the index is provided.-pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV   = IndirectCommandsLayoutUsageFlagBitsNV 0x00000002+pattern INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = IndirectCommandsLayoutUsageFlagBitsNV 0x00000002+ -- | 'INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV' specifies -- that the processing of sequences /can/ happen at an -- implementation-dependent order, which is not: guaranteed to be coherent@@ -3858,24 +4290,36 @@  showTableIndirectCommandsLayoutUsageFlagBitsNV :: [(IndirectCommandsLayoutUsageFlagBitsNV, String)] showTableIndirectCommandsLayoutUsageFlagBitsNV =-  [ (INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV, "EXPLICIT_PREPROCESS_BIT_NV")-  , (INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV  , "INDEXED_SEQUENCES_BIT_NV")-  , (INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV, "UNORDERED_SEQUENCES_BIT_NV")+  [+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV+    , "EXPLICIT_PREPROCESS_BIT_NV"+    )+  ,+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV+    , "INDEXED_SEQUENCES_BIT_NV"+    )+  ,+    ( INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV+    , "UNORDERED_SEQUENCES_BIT_NV"+    )   ]  instance Show IndirectCommandsLayoutUsageFlagBitsNV where-  showsPrec = enumShowsPrec enumPrefixIndirectCommandsLayoutUsageFlagBitsNV-                            showTableIndirectCommandsLayoutUsageFlagBitsNV-                            conNameIndirectCommandsLayoutUsageFlagBitsNV-                            (\(IndirectCommandsLayoutUsageFlagBitsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixIndirectCommandsLayoutUsageFlagBitsNV+      showTableIndirectCommandsLayoutUsageFlagBitsNV+      conNameIndirectCommandsLayoutUsageFlagBitsNV+      (\(IndirectCommandsLayoutUsageFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read IndirectCommandsLayoutUsageFlagBitsNV where-  readPrec = enumReadPrec enumPrefixIndirectCommandsLayoutUsageFlagBitsNV-                          showTableIndirectCommandsLayoutUsageFlagBitsNV-                          conNameIndirectCommandsLayoutUsageFlagBitsNV-                          IndirectCommandsLayoutUsageFlagBitsNV-+  readPrec =+    enumReadPrec+      enumPrefixIndirectCommandsLayoutUsageFlagBitsNV+      showTableIndirectCommandsLayoutUsageFlagBitsNV+      conNameIndirectCommandsLayoutUsageFlagBitsNV+      IndirectCommandsLayoutUsageFlagBitsNV  type IndirectStateFlagsNV = IndirectStateFlagBitsNV @@ -3904,18 +4348,21 @@ showTableIndirectStateFlagBitsNV = [(INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV, "")]  instance Show IndirectStateFlagBitsNV where-  showsPrec = enumShowsPrec enumPrefixIndirectStateFlagBitsNV-                            showTableIndirectStateFlagBitsNV-                            conNameIndirectStateFlagBitsNV-                            (\(IndirectStateFlagBitsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixIndirectStateFlagBitsNV+      showTableIndirectStateFlagBitsNV+      conNameIndirectStateFlagBitsNV+      (\(IndirectStateFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read IndirectStateFlagBitsNV where-  readPrec = enumReadPrec enumPrefixIndirectStateFlagBitsNV-                          showTableIndirectStateFlagBitsNV-                          conNameIndirectStateFlagBitsNV-                          IndirectStateFlagBitsNV-+  readPrec =+    enumReadPrec+      enumPrefixIndirectStateFlagBitsNV+      showTableIndirectStateFlagBitsNV+      conNameIndirectStateFlagBitsNV+      IndirectStateFlagBitsNV  -- | VkIndirectCommandsTokenTypeNV - Enum specifying token commands --@@ -3955,33 +4402,45 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV    = IndirectCommandsTokenTypeNV 0+pattern INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = IndirectCommandsTokenTypeNV 0+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV     = IndirectCommandsTokenTypeNV 1+pattern INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = IndirectCommandsTokenTypeNV 1+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV    = IndirectCommandsTokenTypeNV 2+pattern INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = IndirectCommandsTokenTypeNV 2+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV   = IndirectCommandsTokenTypeNV 3+pattern INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = IndirectCommandsTokenTypeNV 3+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV   = IndirectCommandsTokenTypeNV 4+pattern INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = IndirectCommandsTokenTypeNV 4+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV    = IndirectCommandsTokenTypeNV 5+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = IndirectCommandsTokenTypeNV 5+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV            = IndirectCommandsTokenTypeNV 6+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = IndirectCommandsTokenTypeNV 6+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV"-pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV      = IndirectCommandsTokenTypeNV 7+pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = IndirectCommandsTokenTypeNV 7+ -- No documentation found for Nested "VkIndirectCommandsTokenTypeNV" "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV" pattern INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = IndirectCommandsTokenTypeNV 1000328000-{-# complete INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV,-             INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV :: IndirectCommandsTokenTypeNV #-} +{-# COMPLETE+  INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV+  , INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV ::+    IndirectCommandsTokenTypeNV+  #-}+ conNameIndirectCommandsTokenTypeNV :: String conNameIndirectCommandsTokenTypeNV = "IndirectCommandsTokenTypeNV" @@ -3990,30 +4449,60 @@  showTableIndirectCommandsTokenTypeNV :: [(IndirectCommandsTokenTypeNV, String)] showTableIndirectCommandsTokenTypeNV =-  [ (INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV   , "SHADER_GROUP_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV    , "STATE_FLAGS_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV   , "INDEX_BUFFER_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV  , "VERTEX_BUFFER_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV  , "PUSH_CONSTANT_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV   , "DRAW_INDEXED_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV           , "DRAW_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV     , "DRAW_TASKS_NV")-  , (INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV, "DRAW_MESH_TASKS_NV")+  [+    ( INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV+    , "SHADER_GROUP_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV+    , "STATE_FLAGS_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV+    , "INDEX_BUFFER_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV+    , "VERTEX_BUFFER_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV+    , "PUSH_CONSTANT_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV+    , "DRAW_INDEXED_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV+    , "DRAW_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV+    , "DRAW_TASKS_NV"+    )+  ,+    ( INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV+    , "DRAW_MESH_TASKS_NV"+    )   ]  instance Show IndirectCommandsTokenTypeNV where-  showsPrec = enumShowsPrec enumPrefixIndirectCommandsTokenTypeNV-                            showTableIndirectCommandsTokenTypeNV-                            conNameIndirectCommandsTokenTypeNV-                            (\(IndirectCommandsTokenTypeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixIndirectCommandsTokenTypeNV+      showTableIndirectCommandsTokenTypeNV+      conNameIndirectCommandsTokenTypeNV+      (\(IndirectCommandsTokenTypeNV x) -> x)+      (showsPrec 11)  instance Read IndirectCommandsTokenTypeNV where-  readPrec = enumReadPrec enumPrefixIndirectCommandsTokenTypeNV-                          showTableIndirectCommandsTokenTypeNV-                          conNameIndirectCommandsTokenTypeNV-                          IndirectCommandsTokenTypeNV-+  readPrec =+    enumReadPrec+      enumPrefixIndirectCommandsTokenTypeNV+      showTableIndirectCommandsTokenTypeNV+      conNameIndirectCommandsTokenTypeNV+      IndirectCommandsTokenTypeNV  type NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION = 3 
src/Vulkan/Extensions/VK_NV_external_memory_capabilities.hs view
@@ -314,13 +314,27 @@                                                     -- 'ExternalMemoryHandleTypeFlagBitsNV' values                                                     ("externalHandleType" ::: ExternalMemoryHandleTypeFlagsNV)                                                  -> io (ExternalImageFormatPropertiesNV)-getPhysicalDeviceExternalImageFormatPropertiesNV physicalDevice format type' tiling usage flags externalHandleType = liftIO . evalContT $ do+getPhysicalDeviceExternalImageFormatPropertiesNV physicalDevice+                                                   format+                                                   type'+                                                   tiling+                                                   usage+                                                   flags+                                                   externalHandleType = liftIO . evalContT $ do   let vkGetPhysicalDeviceExternalImageFormatPropertiesNVPtr = pVkGetPhysicalDeviceExternalImageFormatPropertiesNV (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   lift $ unless (vkGetPhysicalDeviceExternalImageFormatPropertiesNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceExternalImageFormatPropertiesNV is null" Nothing Nothing   let vkGetPhysicalDeviceExternalImageFormatPropertiesNV' = mkVkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNVPtr   pPExternalImageFormatProperties <- ContT (withZeroCStruct @ExternalImageFormatPropertiesNV)-  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" (vkGetPhysicalDeviceExternalImageFormatPropertiesNV' (physicalDeviceHandle (physicalDevice)) (format) (type') (tiling) (usage) (flags) (externalHandleType) (pPExternalImageFormatProperties))+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" (vkGetPhysicalDeviceExternalImageFormatPropertiesNV'+                                                                                       (physicalDeviceHandle (physicalDevice))+                                                                                       (format)+                                                                                       (type')+                                                                                       (tiling)+                                                                                       (usage)+                                                                                       (flags)+                                                                                       (externalHandleType)+                                                                                       (pPExternalImageFormatProperties))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pExternalImageFormatProperties <- lift $ peekCStruct @ExternalImageFormatPropertiesNV pPExternalImageFormatProperties   pure $ (pExternalImageFormatProperties)@@ -391,7 +405,10 @@     exportFromImportedHandleTypes <- peek @ExternalMemoryHandleTypeFlagsNV ((p `plusPtr` 36 :: Ptr ExternalMemoryHandleTypeFlagsNV))     compatibleHandleTypes <- peek @ExternalMemoryHandleTypeFlagsNV ((p `plusPtr` 40 :: Ptr ExternalMemoryHandleTypeFlagsNV))     pure $ ExternalImageFormatPropertiesNV-             imageFormatProperties externalMemoryFeatures exportFromImportedHandleTypes compatibleHandleTypes+             imageFormatProperties+             externalMemoryFeatures+             exportFromImportedHandleTypes+             compatibleHandleTypes  instance Storable ExternalImageFormatPropertiesNV where   sizeOf ~_ = 48@@ -423,18 +440,21 @@ -- memory returned by -- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV', -- or one duplicated from such a handle using @DuplicateHandle()@.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV     = ExternalMemoryHandleTypeFlagBitsNV 0x00000001+pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = ExternalMemoryHandleTypeFlagBitsNV 0x00000001+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV' specifies a handle -- to memory returned by -- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV'. pattern EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = ExternalMemoryHandleTypeFlagBitsNV 0x00000002+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV' specifies a valid NT -- handle to memory returned by @IDXGIResource1::CreateSharedHandle@, or a -- handle duplicated from such a handle using @DuplicateHandle()@.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV      = ExternalMemoryHandleTypeFlagBitsNV 0x00000004+pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = ExternalMemoryHandleTypeFlagBitsNV 0x00000004+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV' specifies a handle -- to memory returned by @IDXGIResource::GetSharedHandle()@.-pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV  = ExternalMemoryHandleTypeFlagBitsNV 0x00000008+pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = ExternalMemoryHandleTypeFlagBitsNV 0x00000008  conNameExternalMemoryHandleTypeFlagBitsNV :: String conNameExternalMemoryHandleTypeFlagBitsNV = "ExternalMemoryHandleTypeFlagBitsNV"@@ -444,25 +464,40 @@  showTableExternalMemoryHandleTypeFlagBitsNV :: [(ExternalMemoryHandleTypeFlagBitsNV, String)] showTableExternalMemoryHandleTypeFlagBitsNV =-  [ (EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV    , "OPAQUE_WIN32_BIT_NV")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV, "OPAQUE_WIN32_KMT_BIT_NV")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV     , "D3D11_IMAGE_BIT_NV")-  , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV , "D3D11_IMAGE_KMT_BIT_NV")+  [+    ( EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV+    , "OPAQUE_WIN32_BIT_NV"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV+    , "OPAQUE_WIN32_KMT_BIT_NV"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV+    , "D3D11_IMAGE_BIT_NV"+    )+  ,+    ( EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV+    , "D3D11_IMAGE_KMT_BIT_NV"+    )   ]  instance Show ExternalMemoryHandleTypeFlagBitsNV where-  showsPrec = enumShowsPrec enumPrefixExternalMemoryHandleTypeFlagBitsNV-                            showTableExternalMemoryHandleTypeFlagBitsNV-                            conNameExternalMemoryHandleTypeFlagBitsNV-                            (\(ExternalMemoryHandleTypeFlagBitsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalMemoryHandleTypeFlagBitsNV+      showTableExternalMemoryHandleTypeFlagBitsNV+      conNameExternalMemoryHandleTypeFlagBitsNV+      (\(ExternalMemoryHandleTypeFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalMemoryHandleTypeFlagBitsNV where-  readPrec = enumReadPrec enumPrefixExternalMemoryHandleTypeFlagBitsNV-                          showTableExternalMemoryHandleTypeFlagBitsNV-                          conNameExternalMemoryHandleTypeFlagBitsNV-                          ExternalMemoryHandleTypeFlagBitsNV-+  readPrec =+    enumReadPrec+      enumPrefixExternalMemoryHandleTypeFlagBitsNV+      showTableExternalMemoryHandleTypeFlagBitsNV+      conNameExternalMemoryHandleTypeFlagBitsNV+      ExternalMemoryHandleTypeFlagBitsNV  type ExternalMemoryFeatureFlagsNV = ExternalMemoryFeatureFlagBitsNV @@ -481,12 +516,14 @@ -- memory of the specified type /must/ be created as a dedicated allocation -- when used in the manner specified. pattern EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = ExternalMemoryFeatureFlagBitsNV 0x00000001+ -- | 'EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV' specifies that the -- implementation supports exporting handles of the specified type.-pattern EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV     = ExternalMemoryFeatureFlagBitsNV 0x00000002+pattern EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = ExternalMemoryFeatureFlagBitsNV 0x00000002+ -- | 'EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV' specifies that the -- implementation supports importing handles of the specified type.-pattern EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV     = ExternalMemoryFeatureFlagBitsNV 0x00000004+pattern EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = ExternalMemoryFeatureFlagBitsNV 0x00000004  conNameExternalMemoryFeatureFlagBitsNV :: String conNameExternalMemoryFeatureFlagBitsNV = "ExternalMemoryFeatureFlagBitsNV"@@ -496,24 +533,36 @@  showTableExternalMemoryFeatureFlagBitsNV :: [(ExternalMemoryFeatureFlagBitsNV, String)] showTableExternalMemoryFeatureFlagBitsNV =-  [ (EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV, "DEDICATED_ONLY_BIT_NV")-  , (EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV    , "EXPORTABLE_BIT_NV")-  , (EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV    , "IMPORTABLE_BIT_NV")+  [+    ( EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV+    , "DEDICATED_ONLY_BIT_NV"+    )+  ,+    ( EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV+    , "EXPORTABLE_BIT_NV"+    )+  ,+    ( EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV+    , "IMPORTABLE_BIT_NV"+    )   ]  instance Show ExternalMemoryFeatureFlagBitsNV where-  showsPrec = enumShowsPrec enumPrefixExternalMemoryFeatureFlagBitsNV-                            showTableExternalMemoryFeatureFlagBitsNV-                            conNameExternalMemoryFeatureFlagBitsNV-                            (\(ExternalMemoryFeatureFlagBitsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixExternalMemoryFeatureFlagBitsNV+      showTableExternalMemoryFeatureFlagBitsNV+      conNameExternalMemoryFeatureFlagBitsNV+      (\(ExternalMemoryFeatureFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ExternalMemoryFeatureFlagBitsNV where-  readPrec = enumReadPrec enumPrefixExternalMemoryFeatureFlagBitsNV-                          showTableExternalMemoryFeatureFlagBitsNV-                          conNameExternalMemoryFeatureFlagBitsNV-                          ExternalMemoryFeatureFlagBitsNV-+  readPrec =+    enumReadPrec+      enumPrefixExternalMemoryFeatureFlagBitsNV+      showTableExternalMemoryFeatureFlagBitsNV+      conNameExternalMemoryFeatureFlagBitsNV+      ExternalMemoryFeatureFlagBitsNV  type NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs view
@@ -279,14 +279,18 @@                             -- 'MemoryGetRemoteAddressInfoNV' structure                             MemoryGetRemoteAddressInfoNV                          -> io (RemoteAddressNV)-getMemoryRemoteAddressNV device memoryGetRemoteAddressInfo = liftIO . evalContT $ do+getMemoryRemoteAddressNV device+                           memoryGetRemoteAddressInfo = liftIO . evalContT $ do   let vkGetMemoryRemoteAddressNVPtr = pVkGetMemoryRemoteAddressNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetMemoryRemoteAddressNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryRemoteAddressNV is null" Nothing Nothing   let vkGetMemoryRemoteAddressNV' = mkVkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNVPtr   pMemoryGetRemoteAddressInfo <- ContT $ withCStruct (memoryGetRemoteAddressInfo)   pPAddress <- ContT $ bracket (callocBytes @RemoteAddressNV 8) free-  r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV' (deviceHandle (device)) pMemoryGetRemoteAddressInfo (pPAddress))+  r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV'+                                                               (deviceHandle (device))+                                                               pMemoryGetRemoteAddressInfo+                                                               (pPAddress))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pAddress <- lift $ peek @RemoteAddressNV pPAddress   pure $ (pAddress)
src/Vulkan/Extensions/VK_NV_external_memory_win32.hs view
@@ -408,7 +408,11 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryWin32HandleNV is null" Nothing Nothing   let vkGetMemoryWin32HandleNV' = mkVkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNVPtr   pPHandle <- ContT $ bracket (callocBytes @HANDLE 8) free-  r <- lift $ traceAroundEvent "vkGetMemoryWin32HandleNV" (vkGetMemoryWin32HandleNV' (deviceHandle (device)) (memory) (handleType) (pPHandle))+  r <- lift $ traceAroundEvent "vkGetMemoryWin32HandleNV" (vkGetMemoryWin32HandleNV'+                                                             (deviceHandle (device))+                                                             (memory)+                                                             (handleType)+                                                             (pPHandle))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pHandle <- lift $ peek @HANDLE pPHandle   pure $ (pHandle)
src/Vulkan/Extensions/VK_NV_fragment_coverage_to_color.hs view
@@ -257,8 +257,6 @@ newtype PipelineCoverageToColorStateCreateFlagsNV = PipelineCoverageToColorStateCreateFlagsNV Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineCoverageToColorStateCreateFlagsNV :: String conNamePipelineCoverageToColorStateCreateFlagsNV = "PipelineCoverageToColorStateCreateFlagsNV" @@ -269,18 +267,21 @@ showTablePipelineCoverageToColorStateCreateFlagsNV = []  instance Show PipelineCoverageToColorStateCreateFlagsNV where-  showsPrec = enumShowsPrec enumPrefixPipelineCoverageToColorStateCreateFlagsNV-                            showTablePipelineCoverageToColorStateCreateFlagsNV-                            conNamePipelineCoverageToColorStateCreateFlagsNV-                            (\(PipelineCoverageToColorStateCreateFlagsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCoverageToColorStateCreateFlagsNV+      showTablePipelineCoverageToColorStateCreateFlagsNV+      conNamePipelineCoverageToColorStateCreateFlagsNV+      (\(PipelineCoverageToColorStateCreateFlagsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCoverageToColorStateCreateFlagsNV where-  readPrec = enumReadPrec enumPrefixPipelineCoverageToColorStateCreateFlagsNV-                          showTablePipelineCoverageToColorStateCreateFlagsNV-                          conNamePipelineCoverageToColorStateCreateFlagsNV-                          PipelineCoverageToColorStateCreateFlagsNV-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCoverageToColorStateCreateFlagsNV+      showTablePipelineCoverageToColorStateCreateFlagsNV+      conNamePipelineCoverageToColorStateCreateFlagsNV+      PipelineCoverageToColorStateCreateFlagsNV  type NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_fragment_shading_rate_enums.hs view
@@ -415,7 +415,9 @@                                    -- for fragments generated by subsequent drawing commands.                                    ("combinerOps" ::: (FragmentShadingRateCombinerOpKHR, FragmentShadingRateCombinerOpKHR))                                 -> io ()-cmdSetFragmentShadingRateEnumNV commandBuffer shadingRate combinerOps = liftIO . evalContT $ do+cmdSetFragmentShadingRateEnumNV commandBuffer+                                  shadingRate+                                  combinerOps = liftIO . evalContT $ do   let vkCmdSetFragmentShadingRateEnumNVPtr = pVkCmdSetFragmentShadingRateEnumNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetFragmentShadingRateEnumNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetFragmentShadingRateEnumNV is null" Nothing Nothing@@ -426,7 +428,10 @@     (e0, e1) -> do       poke (pCombinerOps' :: Ptr FragmentShadingRateCombinerOpKHR) (e0)       poke (pCombinerOps' `plusPtr` 4 :: Ptr FragmentShadingRateCombinerOpKHR) (e1)-  lift $ traceAroundEvent "vkCmdSetFragmentShadingRateEnumNV" (vkCmdSetFragmentShadingRateEnumNV' (commandBufferHandle (commandBuffer)) (shadingRate) (pCombinerOps))+  lift $ traceAroundEvent "vkCmdSetFragmentShadingRateEnumNV" (vkCmdSetFragmentShadingRateEnumNV'+                                                                 (commandBufferHandle (commandBuffer))+                                                                 (shadingRate)+                                                                 (pCombinerOps))   pure $ ()  @@ -503,7 +508,9 @@     supersampleFragmentShadingRates <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     noInvocationFragmentShadingRates <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceFragmentShadingRateEnumsFeaturesNV-             (bool32ToBool fragmentShadingRateEnums) (bool32ToBool supersampleFragmentShadingRates) (bool32ToBool noInvocationFragmentShadingRates)+             (bool32ToBool fragmentShadingRateEnums)+             (bool32ToBool supersampleFragmentShadingRates)+             (bool32ToBool noInvocationFragmentShadingRates)  instance Storable PhysicalDeviceFragmentShadingRateEnumsFeaturesNV where   sizeOf ~_ = 32@@ -720,55 +727,70 @@  -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV' specifies a fragment -- size of 1x1 pixels.-pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV      = FragmentShadingRateNV 0+pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = FragmentShadingRateNV 0+ -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV' specifies a -- fragment size of 1x2 pixels. pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = FragmentShadingRateNV 1+ -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV' specifies a -- fragment size of 2x1 pixels. pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = FragmentShadingRateNV 4+ -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV' specifies a -- fragment size of 2x2 pixels. pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = FragmentShadingRateNV 5+ -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV' specifies a -- fragment size of 2x4 pixels. pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = FragmentShadingRateNV 6+ -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV' specifies a -- fragment size of 4x2 pixels. pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = FragmentShadingRateNV 9+ -- | 'FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV' specifies a -- fragment size of 4x4 pixels. pattern FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = FragmentShadingRateNV 10+ -- | 'FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV' specifies a fragment -- size of 1x1 pixels, with two fragment shader invocations per fragment.-pattern FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV     = FragmentShadingRateNV 11+pattern FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 11+ -- | 'FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV' specifies a fragment -- size of 1x1 pixels, with four fragment shader invocations per fragment.-pattern FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV     = FragmentShadingRateNV 12+pattern FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 12+ -- | 'FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV' specifies a fragment -- size of 1x1 pixels, with eight fragment shader invocations per fragment.-pattern FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV     = FragmentShadingRateNV 13+pattern FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 13+ -- | 'FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV' specifies a fragment -- size of 1x1 pixels, with sixteen fragment shader invocations per -- fragment.-pattern FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV    = FragmentShadingRateNV 14+pattern FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = FragmentShadingRateNV 14+ -- | 'FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV' specifies that any portions of -- a primitive that use that shading rate should be discarded without -- invoking any fragment shader.-pattern FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV              = FragmentShadingRateNV 15-{-# complete FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV,-             FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV,-             FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV,-             FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV,-             FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV,-             FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV,-             FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV,-             FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,-             FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,-             FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV,-             FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV,-             FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV :: FragmentShadingRateNV #-}+pattern FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = FragmentShadingRateNV 15 +{-# COMPLETE+  FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV+  , FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV+  , FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV+  , FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV+  , FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV+  , FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV+  , FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV+  , FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV+  , FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV+  , FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV+  , FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV+  , FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV ::+    FragmentShadingRateNV+  #-}+ conNameFragmentShadingRateNV :: String conNameFragmentShadingRateNV = "FragmentShadingRateNV" @@ -777,33 +799,72 @@  showTableFragmentShadingRateNV :: [(FragmentShadingRateNV, String)] showTableFragmentShadingRateNV =-  [ (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV     , "1_INVOCATION_PER_PIXEL_NV")-  , (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV, "1_INVOCATION_PER_1X2_PIXELS_NV")-  , (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV, "1_INVOCATION_PER_2X1_PIXELS_NV")-  , (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV, "1_INVOCATION_PER_2X2_PIXELS_NV")-  , (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV, "1_INVOCATION_PER_2X4_PIXELS_NV")-  , (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV, "1_INVOCATION_PER_4X2_PIXELS_NV")-  , (FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV, "1_INVOCATION_PER_4X4_PIXELS_NV")-  , (FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV    , "2_INVOCATIONS_PER_PIXEL_NV")-  , (FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV    , "4_INVOCATIONS_PER_PIXEL_NV")-  , (FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV    , "8_INVOCATIONS_PER_PIXEL_NV")-  , (FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV   , "16_INVOCATIONS_PER_PIXEL_NV")-  , (FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV             , "NO_INVOCATIONS_NV")+  [+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV+    , "1_INVOCATION_PER_PIXEL_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV+    , "1_INVOCATION_PER_1X2_PIXELS_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV+    , "1_INVOCATION_PER_2X1_PIXELS_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV+    , "1_INVOCATION_PER_2X2_PIXELS_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV+    , "1_INVOCATION_PER_2X4_PIXELS_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV+    , "1_INVOCATION_PER_4X2_PIXELS_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV+    , "1_INVOCATION_PER_4X4_PIXELS_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV+    , "2_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV+    , "4_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV+    , "8_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV+    , "16_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV+    , "NO_INVOCATIONS_NV"+    )   ]  instance Show FragmentShadingRateNV where-  showsPrec = enumShowsPrec enumPrefixFragmentShadingRateNV-                            showTableFragmentShadingRateNV-                            conNameFragmentShadingRateNV-                            (\(FragmentShadingRateNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixFragmentShadingRateNV+      showTableFragmentShadingRateNV+      conNameFragmentShadingRateNV+      (\(FragmentShadingRateNV x) -> x)+      (showsPrec 11)  instance Read FragmentShadingRateNV where-  readPrec = enumReadPrec enumPrefixFragmentShadingRateNV-                          showTableFragmentShadingRateNV-                          conNameFragmentShadingRateNV-                          FragmentShadingRateNV-+  readPrec =+    enumReadPrec+      enumPrefixFragmentShadingRateNV+      showTableFragmentShadingRateNV+      conNameFragmentShadingRateNV+      FragmentShadingRateNV  -- | VkFragmentShadingRateTypeNV - Enumeration with fragment shading rate -- types@@ -823,6 +884,7 @@ -- 'PipelineFragmentShadingRateEnumStateCreateInfoNV' structure should be -- ignored. pattern FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = FragmentShadingRateTypeNV 0+ -- | 'FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV' specifies that a graphics pipeline -- should obtain its pipeline fragment shading rate and shading rate -- combiner state from the@@ -830,10 +892,14 @@ -- any state specified by the -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR' -- structure should be ignored.-pattern FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV         = FragmentShadingRateTypeNV 1-{-# complete FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV,-             FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV :: FragmentShadingRateTypeNV #-}+pattern FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = FragmentShadingRateTypeNV 1 +{-# COMPLETE+  FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV+  , FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV ::+    FragmentShadingRateTypeNV+  #-}+ conNameFragmentShadingRateTypeNV :: String conNameFragmentShadingRateTypeNV = "FragmentShadingRateTypeNV" @@ -842,21 +908,32 @@  showTableFragmentShadingRateTypeNV :: [(FragmentShadingRateTypeNV, String)] showTableFragmentShadingRateTypeNV =-  [(FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV, "FRAGMENT_SIZE_NV"), (FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV, "ENUMS_NV")]+  [+    ( FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV+    , "FRAGMENT_SIZE_NV"+    )+  ,+    ( FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV+    , "ENUMS_NV"+    )+  ]  instance Show FragmentShadingRateTypeNV where-  showsPrec = enumShowsPrec enumPrefixFragmentShadingRateTypeNV-                            showTableFragmentShadingRateTypeNV-                            conNameFragmentShadingRateTypeNV-                            (\(FragmentShadingRateTypeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixFragmentShadingRateTypeNV+      showTableFragmentShadingRateTypeNV+      conNameFragmentShadingRateTypeNV+      (\(FragmentShadingRateTypeNV x) -> x)+      (showsPrec 11)  instance Read FragmentShadingRateTypeNV where-  readPrec = enumReadPrec enumPrefixFragmentShadingRateTypeNV-                          showTableFragmentShadingRateTypeNV-                          conNameFragmentShadingRateTypeNV-                          FragmentShadingRateTypeNV-+  readPrec =+    enumReadPrec+      enumPrefixFragmentShadingRateTypeNV+      showTableFragmentShadingRateTypeNV+      conNameFragmentShadingRateTypeNV+      FragmentShadingRateTypeNV  type NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs view
@@ -330,7 +330,11 @@       pCoverageModulationTableElem <- peek @CFloat ((pCoverageModulationTable `advancePtrBytes` (4 * (i)) :: Ptr CFloat))       pure $ coerce @CFloat @Float pCoverageModulationTableElem)     pure $ PipelineCoverageModulationStateCreateInfoNV-             flags coverageModulationMode (bool32ToBool coverageModulationTableEnable) coverageModulationTableCount pCoverageModulationTable'+             flags+             coverageModulationMode+             (bool32ToBool coverageModulationTableEnable)+             coverageModulationTableCount+             pCoverageModulationTable'  instance Zero PipelineCoverageModulationStateCreateInfoNV where   zero = PipelineCoverageModulationStateCreateInfoNV@@ -355,8 +359,6 @@ newtype PipelineCoverageModulationStateCreateFlagsNV = PipelineCoverageModulationStateCreateFlagsNV Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineCoverageModulationStateCreateFlagsNV :: String conNamePipelineCoverageModulationStateCreateFlagsNV = "PipelineCoverageModulationStateCreateFlagsNV" @@ -367,45 +369,56 @@ showTablePipelineCoverageModulationStateCreateFlagsNV = []  instance Show PipelineCoverageModulationStateCreateFlagsNV where-  showsPrec = enumShowsPrec enumPrefixPipelineCoverageModulationStateCreateFlagsNV-                            showTablePipelineCoverageModulationStateCreateFlagsNV-                            conNamePipelineCoverageModulationStateCreateFlagsNV-                            (\(PipelineCoverageModulationStateCreateFlagsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineCoverageModulationStateCreateFlagsNV+      showTablePipelineCoverageModulationStateCreateFlagsNV+      conNamePipelineCoverageModulationStateCreateFlagsNV+      (\(PipelineCoverageModulationStateCreateFlagsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineCoverageModulationStateCreateFlagsNV where-  readPrec = enumReadPrec enumPrefixPipelineCoverageModulationStateCreateFlagsNV-                          showTablePipelineCoverageModulationStateCreateFlagsNV-                          conNamePipelineCoverageModulationStateCreateFlagsNV-                          PipelineCoverageModulationStateCreateFlagsNV-+  readPrec =+    enumReadPrec+      enumPrefixPipelineCoverageModulationStateCreateFlagsNV+      showTablePipelineCoverageModulationStateCreateFlagsNV+      conNamePipelineCoverageModulationStateCreateFlagsNV+      PipelineCoverageModulationStateCreateFlagsNV  -- | VkCoverageModulationModeNV - Specify the coverage modulation mode -- -- = See Also -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_framebuffer_mixed_samples VK_NV_framebuffer_mixed_samples>,--- 'PipelineCoverageModulationStateCreateInfoNV'+-- 'PipelineCoverageModulationStateCreateInfoNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationModeNV' newtype CoverageModulationModeNV = CoverageModulationModeNV Int32   deriving newtype (Eq, Ord, Storable, Zero)  -- | 'COVERAGE_MODULATION_MODE_NONE_NV' specifies that no components are -- multiplied by the modulation factor.-pattern COVERAGE_MODULATION_MODE_NONE_NV  = CoverageModulationModeNV 0+pattern COVERAGE_MODULATION_MODE_NONE_NV = CoverageModulationModeNV 0+ -- | 'COVERAGE_MODULATION_MODE_RGB_NV' specifies that the red, green, and -- blue components are multiplied by the modulation factor.-pattern COVERAGE_MODULATION_MODE_RGB_NV   = CoverageModulationModeNV 1+pattern COVERAGE_MODULATION_MODE_RGB_NV = CoverageModulationModeNV 1+ -- | 'COVERAGE_MODULATION_MODE_ALPHA_NV' specifies that the alpha component -- is multiplied by the modulation factor. pattern COVERAGE_MODULATION_MODE_ALPHA_NV = CoverageModulationModeNV 2+ -- | 'COVERAGE_MODULATION_MODE_RGBA_NV' specifies that all components are -- multiplied by the modulation factor.-pattern COVERAGE_MODULATION_MODE_RGBA_NV  = CoverageModulationModeNV 3-{-# complete COVERAGE_MODULATION_MODE_NONE_NV,-             COVERAGE_MODULATION_MODE_RGB_NV,-             COVERAGE_MODULATION_MODE_ALPHA_NV,-             COVERAGE_MODULATION_MODE_RGBA_NV :: CoverageModulationModeNV #-}+pattern COVERAGE_MODULATION_MODE_RGBA_NV = CoverageModulationModeNV 3 +{-# COMPLETE+  COVERAGE_MODULATION_MODE_NONE_NV+  , COVERAGE_MODULATION_MODE_RGB_NV+  , COVERAGE_MODULATION_MODE_ALPHA_NV+  , COVERAGE_MODULATION_MODE_RGBA_NV ::+    CoverageModulationModeNV+  #-}+ conNameCoverageModulationModeNV :: String conNameCoverageModulationModeNV = "CoverageModulationModeNV" @@ -414,25 +427,40 @@  showTableCoverageModulationModeNV :: [(CoverageModulationModeNV, String)] showTableCoverageModulationModeNV =-  [ (COVERAGE_MODULATION_MODE_NONE_NV , "NONE_NV")-  , (COVERAGE_MODULATION_MODE_RGB_NV  , "RGB_NV")-  , (COVERAGE_MODULATION_MODE_ALPHA_NV, "ALPHA_NV")-  , (COVERAGE_MODULATION_MODE_RGBA_NV , "RGBA_NV")+  [+    ( COVERAGE_MODULATION_MODE_NONE_NV+    , "NONE_NV"+    )+  ,+    ( COVERAGE_MODULATION_MODE_RGB_NV+    , "RGB_NV"+    )+  ,+    ( COVERAGE_MODULATION_MODE_ALPHA_NV+    , "ALPHA_NV"+    )+  ,+    ( COVERAGE_MODULATION_MODE_RGBA_NV+    , "RGBA_NV"+    )   ]  instance Show CoverageModulationModeNV where-  showsPrec = enumShowsPrec enumPrefixCoverageModulationModeNV-                            showTableCoverageModulationModeNV-                            conNameCoverageModulationModeNV-                            (\(CoverageModulationModeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixCoverageModulationModeNV+      showTableCoverageModulationModeNV+      conNameCoverageModulationModeNV+      (\(CoverageModulationModeNV x) -> x)+      (showsPrec 11)  instance Read CoverageModulationModeNV where-  readPrec = enumReadPrec enumPrefixCoverageModulationModeNV-                          showTableCoverageModulationModeNV-                          conNameCoverageModulationModeNV-                          CoverageModulationModeNV-+  readPrec =+    enumReadPrec+      enumPrefixCoverageModulationModeNV+      showTableCoverageModulationModeNV+      conNameCoverageModulationModeNV+      CoverageModulationModeNV  type NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_framebuffer_mixed_samples.hs-boot view
@@ -120,7 +120,9 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples  (PipelineCoverageModulationStateCreateInfoNV) where+module Vulkan.Extensions.VK_NV_framebuffer_mixed_samples  ( PipelineCoverageModulationStateCreateInfoNV+                                                          , CoverageModulationModeNV+                                                          ) where  import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct)@@ -132,4 +134,7 @@ instance Show PipelineCoverageModulationStateCreateInfoNV  instance FromCStruct PipelineCoverageModulationStateCreateInfoNV+++data CoverageModulationModeNV 
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -719,3084 +719,4229 @@ --     by the current subpass /must/ be bound to the pipeline via a --     descriptor set ----- -   #VUID-vkCmdDrawMeshTasksNV-None-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawMeshTasksNV-None-06538# If any recorded command in---     the current subpass will write to an image subresource as an---     attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawMeshTasksNV-None-06539# If any recorded command in---     the current subpass will read from an image subresource used as an---     attachment in any way other than as an attachment, this command---     /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawMeshTasksNV-None-06886# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawMeshTasksNV-None-06887# If the current render pass---     instance uses a depth\/stencil attachment with a read-only layout---     for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-06666# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksNV-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-blendEnable-04727# If rasterization is---     not disabled in the bound graphics pipeline, then for each color---     attachment in the subpass, if the corresponding image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-attachmentCount-06667# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawMeshTasksNV-attachmentCount-06815# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #VUID-vkCmdDrawMeshTasksNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawMeshTasksNV-stage-07073# If the currently bound---     pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #VUID-vkCmdDrawMeshTasksNV-stage-06480# 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDrawMeshTasksNV-None-07074#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawMeshTasksNV-None-07075#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076# The---     @pipelineStatistics@ member used to create any active---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>---     /must/ not contain---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',---     or---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'------ -   #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be---     less than or equal to---     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@------ -   #VUID-vkCmdDrawMeshTasksNV-MeshNV-07080# The current pipeline bound---     to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     /must/ contain a shader stage using the @MeshNV@ @Execution@---     @Model@.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter# @commandBuffer@---     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawMeshTasksNV-renderpass# This command /must/ only be---     called inside of a render pass instance------ -   #VUID-vkCmdDrawMeshTasksNV-videocoding# This command /must/ only be---     called outside of a video coding scope------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>,--- 'Vulkan.Core10.Handles.CommandBuffer'-cmdDrawMeshTasksNV :: forall io-                    . (MonadIO io)-                   => -- | @commandBuffer@ is the command buffer into which the command will be-                      -- recorded.-                      CommandBuffer-                   -> -- | @taskCount@ is the number of local workgroups to dispatch in the X-                      -- dimension. Y and Z dimension are implicitly set to one.-                      ("taskCount" ::: Word32)-                   -> -- | @firstTask@ is the X component of the first workgroup ID.-                      ("firstTask" ::: Word32)-                   -> io ()-cmdDrawMeshTasksNV commandBuffer taskCount firstTask = liftIO $ do-  let vkCmdDrawMeshTasksNVPtr = pVkCmdDrawMeshTasksNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawMeshTasksNVPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksNV is null" Nothing Nothing-  let vkCmdDrawMeshTasksNV' = mkVkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNVPtr-  traceAroundEvent "vkCmdDrawMeshTasksNV" (vkCmdDrawMeshTasksNV' (commandBufferHandle (commandBuffer)) (taskCount) (firstTask))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawMeshTasksIndirectNV-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawMeshTasksIndirectNV - Issue an indirect mesh tasks draw into a--- command buffer------ = Description------ 'cmdDrawMeshTasksIndirectNV' behaves similarly to 'cmdDrawMeshTasksNV'--- 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 'DrawMeshTasksIndirectCommandNV' structures. If--- @drawCount@ is less than or equal to one, @stride@ is ignored.------ == Valid Usage------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-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-vkCmdDrawMeshTasksIndirectNV-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <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-vkCmdDrawMeshTasksIndirectNV-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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---     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-02699# Descriptors in each---     bound descriptor set, specified via---     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectNV-None-02700# A valid pipeline---     /must/ be bound to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935# If any---     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command accesses a uniform buffer,---     and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936# If any---     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command accesses a storage buffer,---     and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971#---     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972#---     If @OpImageWeightedSampleQCOM@ uses a---     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBoxFilterQCOM-06973# If---     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974#---     If @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975#---     If @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976#---     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977#---     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978#---     If any command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07288# Any shader invocation---     executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-02686# Every input---     attachment used by the current subpass /must/ be bound to the---     pipeline via a descriptor set------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06537# Memory backing image---     subresources used as attachments in the current render pass /must/---     not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06538# If any recorded---     command in the current subpass will write to an image subresource as---     an attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06539# If any recorded---     command in the current subpass will read from an image subresource---     used as an attachment in any way other than as an attachment, this---     command /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06886# If the current render---     pass instance uses a depth\/stencil attachment with a read-only---     layout for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06887# If the current render---     pass instance uses a depth\/stencil attachment with a read-only---     layout for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-06666# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectNV-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727# If---     rasterization is not disabled in the bound graphics pipeline, then---     for each color attachment in the subpass, if the corresponding image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06815# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-stage-07073# If the currently---     bound pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480# 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07074#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07075#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076# The---     @pipelineStatistics@ member used to create any active---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>---     /must/ not contain---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',---     or---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709# @buffer@ /must/---     have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710# @offset@ /must/ be---     a multiple of @4@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711#---     @commandBuffer@ /must/ not be a protected command buffer------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>---     feature is not enabled, @drawCount@ /must/ be @0@ or @1@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719# @drawCount@---     /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146# If @drawCount@---     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/---     be greater than or equal to---     @sizeof@('DrawMeshTasksIndirectCommandNV')------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156# If @drawCount@---     is equal to @1@, (@offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157# If @drawCount@---     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081# The current---     pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     /must/ contain a shader stage using the @MeshNV@ @Execution@---     @Model@.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter# @buffer@ /must/---     be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-renderpass# This command /must/---     only be called inside of a render pass instance------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-videocoding# This command /must/---     only be called outside of a video coding scope------ -   #VUID-vkCmdDrawMeshTasksIndirectNV-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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawMeshTasksIndirectNV :: 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 ()-cmdDrawMeshTasksIndirectNV commandBuffer buffer offset drawCount stride = liftIO $ do-  let vkCmdDrawMeshTasksIndirectNVPtr = pVkCmdDrawMeshTasksIndirectNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawMeshTasksIndirectNVPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectNV is null" Nothing Nothing-  let vkCmdDrawMeshTasksIndirectNV' = mkVkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNVPtr-  traceAroundEvent "vkCmdDrawMeshTasksIndirectNV" (vkCmdDrawMeshTasksIndirectNV' (commandBufferHandle (commandBuffer)) (buffer) (offset) (drawCount) (stride))-  pure $ ()---foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkCmdDrawMeshTasksIndirectCountNV-  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()---- | vkCmdDrawMeshTasksIndirectCountNV - Perform an indirect mesh tasks draw--- with the draw count sourced from a buffer------ = Description------ 'cmdDrawMeshTasksIndirectCountNV' behaves similarly to--- 'cmdDrawMeshTasksIndirectNV' except that the draw count is read by the--- device from a buffer during execution. The command will read an unsigned--- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use--- this as the draw count.------ == Valid Usage------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770# If a---     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to---     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'---     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'---     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of---     this command, then the image view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     /must/ contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-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-vkCmdDrawMeshTasksIndirectCountNV-None-02691# If a---     'Vulkan.Core10.Handles.ImageView' is accessed using atomic---     operations as a result of this command, then the image view’s---     <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-vkCmdDrawMeshTasksIndirectCountNV-None-02692# If a---     'Vulkan.Core10.Handles.ImageView' is sampled with---     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695# Any---     'Vulkan.Core10.Handles.ImageView' being sampled with---     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027# For any---     'Vulkan.Core10.Handles.ImageView' being written as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028# For any---     'Vulkan.Core10.Handles.ImageView' being read as a storage image---     where the image format field of the @OpTypeImage@ is @Unknown@, the---     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_STORAGE_READ_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029# For any---     'Vulkan.Core10.Handles.BufferView' being written as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@, the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030# Any---     'Vulkan.Core10.Handles.BufferView' being read as a storage texel---     buffer where the image format field of the @OpTypeImage@ is---     @Unknown@ then the view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>---     /must/ contain---     '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'---     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-02699# Descriptors in---     each bound descriptor set, specified via---     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectCountNV-None-02700# A valid pipeline---     /must/ be bound to the pipeline bind point used by this command------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935# If any---     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command accesses a uniform buffer,---     and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @uniformBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936# If any---     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the---     pipeline bind point used by this command accesses a storage buffer,---     and that stage was created without enabling either---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'---     or---     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'---     for @storageBuffers@, and the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>---     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-06550# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ only be used with @OpImageSample*@ or---     @OpImageSparseSample*@ instructions------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551# If the---     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind---     point used by this command accesses a---     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'---     object that enables---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,---     that object /must/ not use the @ConstOffset@ and @Offset@ operands------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971#---     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972#---     If @OpImageWeightedSampleQCOM@ uses a---     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973#---     If @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974#---     If @OpImageBlockMatchSSDQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975#---     If @OpImageBlockMatchSADQCOM@ is used to read from an---     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976#---     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to---     read from a reference image as result of this command, then the---     specified reference coordinates /must/ not fail---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977#---     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,---     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a---     'Vulkan.Core10.Handles.Sampler' as a result of this command, then---     the sampler /must/ have been created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978#---     If any command other than @OpImageWeightedSampleQCOM@,---     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or---     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as---     a result of this command, then the sampler /must/ not have been---     created with---     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288# Any shader---     invocation executed by this command /must/---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-02686# Every input---     attachment used by the current subpass /must/ be bound to the---     pipeline via a descriptor set------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537# Memory backing---     image subresources used as attachments in the current render pass---     /must/ not be written in any way other than as an attachment by this---     command------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538# If any recorded---     command in the current subpass will write to an image subresource as---     an attachment, this command /must/ not read from the memory backing---     that image subresource in any other way than as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539# If any recorded---     command in the current subpass will read from an image subresource---     used as an attachment in any way other than as an attachment, this---     command /must/ not write to that image subresource as an attachment------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886# If the current---     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the depth aspect,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>---     /must/ be disabled------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887# If the current---     render pass instance uses a depth\/stencil attachment with a---     read-only layout for the stencil aspect and stencil test is enabled,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>---     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-06666# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountNV-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---     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727# If---     rasterization is not disabled in the bound graphics pipeline, then---     for each color attachment in the subpass, if the corresponding image---     view’s---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>---     do not contain---     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',---     then the @blendEnable@ member of the corresponding element of the---     @pAttachments@ member of @pColorBlendState@ /must/ be---     'Vulkan.Core10.FundamentalTypes.FALSE'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284#---     If rasterization is not disabled in the bound graphics pipeline, and---     none of the @VK_AMD_mixed_attachment_samples@ extension, the---     @VK_NV_framebuffer_mixed_samples@ extension, or the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature are enabled, then---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@---     /must/ be the same as the current subpass color and\/or---     depth\/stencil attachments------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be greater than or equal to the---     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@---     of the currently bound graphics pipeline------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06815# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'---     dynamic state enabled then---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ have been called in the current command buffer prior to this---     drawing command, and the @attachmentCount@ parameter of---     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'---     /must/ be less than or equal to the @maxColorAttachments@ member of---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285#---     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---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287#---     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 the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>---     feature is not enabled, and---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active,---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>---     /must/ not be enabled.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709#---     If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>---     feature is not enabled and the---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'---     query is active, the bound graphics pipeline /must/ not have been---     created with a non-zero value in---     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073# If the---     currently bound pipeline was 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',---     then---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>---     must not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480# 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_VERTEX_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'---     or---     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075#---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>---     /must/ not be active------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076#---     The @pipelineStatistics@ member used to create any active---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>---     /must/ not contain---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',---     or---     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is---     non-sparse then it /must/ be bound completely and contiguously to a---     single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709# @buffer@---     /must/ have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710# @offset@---     /must/ be a multiple of @4@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711#---     @commandBuffer@ /must/ not be a protected command buffer------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714# If---     @countBuffer@ is non-sparse then it /must/ be bound completely and---     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715#---     @countBuffer@ /must/ have been created with the---     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'---     bit set------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716#---     @countBufferOffset@ /must/ be a multiple of @4@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717# The count---     stored in @countBuffer@ /must/ be less than or equal to---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129#---     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or---     equal to the size of @countBuffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445# If---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>---     is not enabled this function /must/ not be used------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182# @stride@---     /must/ be a multiple of @4@ and /must/ be greater than or equal to---     @sizeof@('DrawMeshTasksIndirectCommandNV')------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183# If---     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×---     (@maxDrawCount@ - 1) + @offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191# If the---     count stored in @countBuffer@ is equal to @1@, (@offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192# If the---     count stored in @countBuffer@ is greater than @1@, (@stride@ ×---     (@drawCount@ - 1) + @offset@ +---     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or---     equal to the size of @buffer@------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082# The current---     pipeline bound to---     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'---     /must/ contain a shader stage using the @MeshNV@ @Execution@---     @Model@.------ == Valid Usage (Implicit)------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter#---     @commandBuffer@ /must/ be a valid---     'Vulkan.Core10.Handles.CommandBuffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter# @buffer@---     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter#---     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'---     handle------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool# The---     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was---     allocated from /must/ support graphics operations------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass# This command---     /must/ only be called inside of a render pass instance------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding# This command---     /must/ only be called outside of a video coding scope------ -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent# Each of---     @buffer@, @commandBuffer@, and @countBuffer@ /must/ have been---     created, allocated, or retrieved from the same---     'Vulkan.Core10.Handles.Device'------ == Host Synchronization------ -   Host access to @commandBuffer@ /must/ be externally synchronized------ -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that---     @commandBuffer@ was allocated from /must/ be externally synchronized------ == Command Properties------ \'------ +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+--- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |--- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================+--- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |--- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |--- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>,--- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',--- 'Vulkan.Core10.FundamentalTypes.DeviceSize'-cmdDrawMeshTasksIndirectCountNV :: 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)-                                -> -- | @countBuffer@ is the buffer containing the draw count.-                                   ("countBuffer" ::: Buffer)-                                -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw-                                   -- count begins.-                                   ("countBufferOffset" ::: DeviceSize)-                                -> -- | @maxDrawCount@ specifies the maximum number of draws that will be-                                   -- executed. The actual number of executed draw calls is the minimum of the-                                   -- count specified in @countBuffer@ and @maxDrawCount@.-                                   ("maxDrawCount" ::: Word32)-                                -> -- | @stride@ is the byte stride between successive sets of draw parameters.-                                   ("stride" ::: Word32)-                                -> io ()-cmdDrawMeshTasksIndirectCountNV commandBuffer buffer offset countBuffer countBufferOffset maxDrawCount stride = liftIO $ do-  let vkCmdDrawMeshTasksIndirectCountNVPtr = pVkCmdDrawMeshTasksIndirectCountNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)-  unless (vkCmdDrawMeshTasksIndirectCountNVPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountNV is null" Nothing Nothing-  let vkCmdDrawMeshTasksIndirectCountNV' = mkVkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNVPtr-  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountNV" (vkCmdDrawMeshTasksIndirectCountNV' (commandBufferHandle (commandBuffer)) (buffer) (offset) (countBuffer) (countBufferOffset) (maxDrawCount) (stride))-  pure $ ()----- No documentation found for TopLevel "VK_SHADER_STAGE_TASK_BIT_NV"-pattern SHADER_STAGE_TASK_BIT_NV = SHADER_STAGE_TASK_BIT_EXT----- No documentation found for TopLevel "VK_SHADER_STAGE_MESH_BIT_NV"-pattern SHADER_STAGE_MESH_BIT_NV = SHADER_STAGE_MESH_BIT_EXT----- No documentation found for TopLevel "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"-pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PIPELINE_STAGE_TASK_SHADER_BIT_EXT----- No documentation found for TopLevel "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"-pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PIPELINE_STAGE_MESH_SHADER_BIT_EXT----- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading--- features that can be supported by an implementation------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceMeshShaderFeaturesNV' 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. 'PhysicalDeviceMeshShaderFeaturesNV' /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_NV_mesh_shader VK_NV_mesh_shader>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMeshShaderFeaturesNV = PhysicalDeviceMeshShaderFeaturesNV-  { -- | @taskShader@ specifies whether task shaders are supported. If this-    -- feature is not enabled, the 'SHADER_STAGE_TASK_BIT_NV' and-    -- 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' enum values /must/ not be used.-    taskShader :: Bool-  , -- | @meshShader@ specifies whether mesh shaders are supported. If this-    -- feature is not enabled, the 'SHADER_STAGE_MESH_BIT_NV' and-    -- 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' enum values /must/ not be used.-    meshShader :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMeshShaderFeaturesNV)-#endif-deriving instance Show PhysicalDeviceMeshShaderFeaturesNV--instance ToCStruct PhysicalDeviceMeshShaderFeaturesNV where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceMeshShaderFeaturesNV{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)-    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 PhysicalDeviceMeshShaderFeaturesNV where-  peekCStruct p = do-    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    pure $ PhysicalDeviceMeshShaderFeaturesNV-             (bool32ToBool taskShader) (bool32ToBool meshShader)--instance Storable PhysicalDeviceMeshShaderFeaturesNV where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero PhysicalDeviceMeshShaderFeaturesNV where-  zero = PhysicalDeviceMeshShaderFeaturesNV-           zero-           zero----- | VkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh--- shading properties------ = Description------ If the 'PhysicalDeviceMeshShaderPropertiesNV' 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_NV_mesh_shader VK_NV_mesh_shader>,--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceMeshShaderPropertiesNV = PhysicalDeviceMeshShaderPropertiesNV-  { -- | @maxDrawMeshTasksCount@ is the maximum number of local workgroups that-    -- /can/ be launched by a single draw mesh tasks command. See-    -- <https://registry.khronos.org/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-    -- sizes, as specified by the @LocalSize@ or @LocalSizeId@ execution mode-    -- in shader modules or by the object decorated by the @WorkgroupSize@-    -- decoration, /must/ be less than or equal to this limit.-    maxTaskWorkGroupInvocations :: Word32-  , -- | @maxTaskWorkGroupSize@[3] is the maximum size of a local task workgroup.-    -- These three values represent the maximum local workgroup size in the X,-    -- Y, and Z dimensions, respectively. The @x@, @y@, and @z@ sizes, as-    -- specified by the @LocalSize@ or @LocalSizeId@ execution mode or by the-    -- object decorated by the @WorkgroupSize@ decoration in shader modules,-    -- /must/ be less than or equal to the corresponding limit.-    maxTaskWorkGroupSize :: (Word32, Word32, Word32)-  , -- | @maxTaskTotalMemorySize@ is the maximum number of bytes that the task-    -- shader can use in total for shared and output memory combined.-    maxTaskTotalMemorySize :: Word32-  , -- | @maxTaskOutputCount@ is the maximum number of output tasks a single task-    -- shader workgroup can emit.-    maxTaskOutputCount :: Word32-  , -- | @maxMeshWorkGroupInvocations@ is the maximum total number of mesh shader-    -- invocations in a single local workgroup. The product of the X, Y, and Z-    -- sizes, as specified by the @LocalSize@ or @LocalSizeId@ execution mode-    -- in shader modules or by the object decorated by the @WorkgroupSize@-    -- decoration, /must/ be less than or equal to this limit.-    maxMeshWorkGroupInvocations :: Word32-  , -- | @maxMeshWorkGroupSize@[3] is the maximum size of a local mesh workgroup.-    -- These three values represent the maximum local workgroup size in the X,-    -- Y, and Z dimensions, respectively. The @x@, @y@, and @z@ sizes, as-    -- specified by the @LocalSize@ or @LocalSizeId@ execution mode or by the-    -- object decorated by the @WorkgroupSize@ decoration in shader modules,-    -- /must/ be less than or equal to the corresponding limit.-    maxMeshWorkGroupSize :: (Word32, Word32, Word32)-  , -- | @maxMeshTotalMemorySize@ is the maximum number of bytes that the mesh-    -- shader can use in total for shared and output memory combined.-    maxMeshTotalMemorySize :: Word32-  , -- | @maxMeshOutputVertices@ is the maximum number of vertices a mesh shader-    -- output can store.-    maxMeshOutputVertices :: Word32-  , -- | @maxMeshOutputPrimitives@ is the maximum number of primitives a mesh-    -- shader output can store.-    maxMeshOutputPrimitives :: Word32-  , -- | @maxMeshMultiviewViewCount@ is the maximum number of multiview views a-    -- mesh shader can use.-    maxMeshMultiviewViewCount :: Word32-  , -- | @meshOutputPerVertexGranularity@ is the granularity with which mesh-    -- vertex outputs are allocated. The value can be used to compute the-    -- memory size used by the mesh shader, which must be less than or equal to-    -- @maxMeshTotalMemorySize@.-    meshOutputPerVertexGranularity :: Word32-  , -- | @meshOutputPerPrimitiveGranularity@ is the granularity with which mesh-    -- outputs qualified as per-primitive are allocated. The value can be used-    -- to compute the memory size used by the mesh shader, which must be less-    -- than or equal to @maxMeshTotalMemorySize@.-    meshOutputPerPrimitiveGranularity :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceMeshShaderPropertiesNV)-#endif-deriving instance Show PhysicalDeviceMeshShaderPropertiesNV--instance ToCStruct PhysicalDeviceMeshShaderPropertiesNV where-  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceMeshShaderPropertiesNV{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxDrawMeshTasksCount)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxTaskWorkGroupInvocations)-    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 3 Word32)))-    case (maxTaskWorkGroupSize) of-      (e0, e1, e2) -> do-        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxTaskTotalMemorySize)-    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxTaskOutputCount)-    poke ((p `plusPtr` 44 :: Ptr Word32)) (maxMeshWorkGroupInvocations)-    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 48 :: Ptr (FixedArray 3 Word32)))-    case (maxMeshWorkGroupSize) of-      (e0, e1, e2) -> do-        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshTotalMemorySize)-    poke ((p `plusPtr` 64 :: Ptr Word32)) (maxMeshOutputVertices)-    poke ((p `plusPtr` 68 :: Ptr Word32)) (maxMeshOutputPrimitives)-    poke ((p `plusPtr` 72 :: Ptr Word32)) (maxMeshMultiviewViewCount)-    poke ((p `plusPtr` 76 :: Ptr Word32)) (meshOutputPerVertexGranularity)-    poke ((p `plusPtr` 80 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)-    f-  cStructSize = 88-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)-    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 3 Word32)))-    case ((zero, zero, zero)) of-      (e0, e1, e2) -> do-        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)-    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 48 :: Ptr (FixedArray 3 Word32)))-    case ((zero, zero, zero)) of-      (e0, e1, e2) -> do-        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)-        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)-    poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 64 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 68 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 72 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 80 :: Ptr Word32)) (zero)-    f--instance FromCStruct PhysicalDeviceMeshShaderPropertiesNV where-  peekCStruct p = do-    maxDrawMeshTasksCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))-    let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 24 :: Ptr (FixedArray 3 Word32)))-    maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))-    maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))-    maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))-    maxTaskTotalMemorySize <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))-    maxTaskOutputCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))-    maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))-    let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 48 :: Ptr (FixedArray 3 Word32)))-    maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))-    maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))-    maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))-    maxMeshTotalMemorySize <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))-    maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 64 :: Ptr Word32))-    maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 68 :: Ptr Word32))-    maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 72 :: Ptr Word32))-    meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))-    meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 80 :: Ptr Word32))-    pure $ PhysicalDeviceMeshShaderPropertiesNV-             maxDrawMeshTasksCount maxTaskWorkGroupInvocations ((maxTaskWorkGroupSize0, maxTaskWorkGroupSize1, maxTaskWorkGroupSize2)) maxTaskTotalMemorySize maxTaskOutputCount maxMeshWorkGroupInvocations ((maxMeshWorkGroupSize0, maxMeshWorkGroupSize1, maxMeshWorkGroupSize2)) maxMeshTotalMemorySize maxMeshOutputVertices maxMeshOutputPrimitives maxMeshMultiviewViewCount meshOutputPerVertexGranularity meshOutputPerPrimitiveGranularity+-- -   #VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07468# If any shader executed+--     by this pipeline accesses an @OpTypeImage@ variable with a @Dim@+--     operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07469# Input attachment views+--     accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06538# If any recorded command in+--     the current subpass will write to an image subresource as an+--     attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06539# If any recorded command in+--     the current subpass will read from an image subresource used as an+--     attachment in any way other than as an attachment, this command+--     /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06886# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-06887# If the current render pass+--     instance uses a depth\/stencil attachment with a read-only layout+--     for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-None-06666# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksNV-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-blendEnable-04727# If rasterization is+--     not disabled in the bound graphics pipeline, then for each color+--     attachment in the subpass, if the corresponding image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-attachmentCount-06667# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksNV-attachmentCount-06815# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawMeshTasksNV-pColorBlendEnables-07470# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07471# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMeshTasksNV-samples-07472# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksNV-samples-07473# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksNV-firstAttachment-07476# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksNV-firstAttachment-07477# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksNV-firstAttachment-07478# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksNV-firstAttachment-07479# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksNV-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07482# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07483# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07484# If the bound+--     graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07485# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07486# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-07487# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-coverageModulationTableEnable-07488# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-07489# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMeshTasksNV-coverageToColorEnable-07490# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-coverageReductionMode-07491# If this+--     @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMeshTasksNV-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMeshTasksNV-rasterizationSamples-07494# If the+--     @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if the+--     current subpass has any color attachments and @rasterizationSamples@+--     of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07495# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07496# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07497# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksNV-stippledLineEnable-07498# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMeshTasksNV-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-stage-07073# If the currently bound+--     pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawMeshTasksNV-stage-06480# 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07074#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawMeshTasksNV-None-07075#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawMeshTasksNV-pipelineStatistics-07076# The+--     @pipelineStatistics@ member used to create any active+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+--     /must/ not contain+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+--     or+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksNV-taskCount-02119# @taskCount@ /must/ be+--     less than or equal to+--     'PhysicalDeviceMeshShaderPropertiesNV'::@maxDrawMeshTasksCount@+--+-- -   #VUID-vkCmdDrawMeshTasksNV-MeshNV-07080# The current pipeline bound+--     to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @MeshNV@ @Execution@+--     @Model@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter# @commandBuffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksNV-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-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawMeshTasksNV-renderpass# This command /must/ only be+--     called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawMeshTasksNV-videocoding# This command /must/ only be+--     called outside of a video coding scope+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>,+-- 'Vulkan.Core10.Handles.CommandBuffer'+cmdDrawMeshTasksNV :: forall io+                    . (MonadIO io)+                   => -- | @commandBuffer@ is the command buffer into which the command will be+                      -- recorded.+                      CommandBuffer+                   -> -- | @taskCount@ is the number of local workgroups to dispatch in the X+                      -- dimension. Y and Z dimension are implicitly set to one.+                      ("taskCount" ::: Word32)+                   -> -- | @firstTask@ is the X component of the first workgroup ID.+                      ("firstTask" ::: Word32)+                   -> io ()+cmdDrawMeshTasksNV commandBuffer taskCount firstTask = liftIO $ do+  let vkCmdDrawMeshTasksNVPtr = pVkCmdDrawMeshTasksNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawMeshTasksNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksNV is null" Nothing Nothing+  let vkCmdDrawMeshTasksNV' = mkVkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNVPtr+  traceAroundEvent "vkCmdDrawMeshTasksNV" (vkCmdDrawMeshTasksNV'+                                             (commandBufferHandle (commandBuffer))+                                             (taskCount)+                                             (firstTask))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawMeshTasksIndirectNV+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksIndirectNV - Issue an indirect mesh tasks draw into a+-- command buffer+--+-- = Description+--+-- 'cmdDrawMeshTasksIndirectNV' behaves similarly to 'cmdDrawMeshTasksNV'+-- 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 'DrawMeshTasksIndirectCommandNV' structures. If+-- @drawCount@ is less than or equal to one, @stride@ is ignored.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-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-vkCmdDrawMeshTasksIndirectNV-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <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-vkCmdDrawMeshTasksIndirectNV-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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+--     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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-02699# Descriptors in each+--     bound descriptor set, specified via+--     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectNV-None-02700# A valid pipeline+--     /must/ be bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-uniformBuffers-06935# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a uniform buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectNV-storageBuffers-06936# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a storage buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06971#+--     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06972#+--     If @OpImageWeightedSampleQCOM@ uses a+--     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBoxFilterQCOM-06973# If+--     @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSSDQCOM-06974#+--     If @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06975#+--     If @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageBlockMatchSADQCOM-06976#+--     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06977#+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWeightedSampleQCOM-06978#+--     If any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07288# Any shader invocation+--     executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-02686# Every input+--     attachment used by the current subpass /must/ be bound to the+--     pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07468# If any shader+--     executed by this pipeline accesses an @OpTypeImage@ variable with a+--     @Dim@ operand of @SubpassData@, it /must/ be decorated with an+--     @InputAttachmentIndex@ that corresponds to a valid input attachment+--     in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06537# Memory backing image+--     subresources used as attachments in the current render pass /must/+--     not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06538# If any recorded+--     command in the current subpass will write to an image subresource as+--     an attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06539# If any recorded+--     command in the current subpass will read from an image subresource+--     used as an attachment in any way other than as an attachment, this+--     command /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06886# If the current render+--     pass instance uses a depth\/stencil attachment with a read-only+--     layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-06887# If the current render+--     pass instance uses a depth\/stencil attachment with a read-only+--     layout for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-None-06666# If the bound graphics+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectNV-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06815# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pColorBlendEnables-07470# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07471# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07476# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07477# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07478# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-firstAttachment-07479# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07482# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07483# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07484# If+--     the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07485# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07486# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-07487# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07489# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-coverageToColorEnable-07490# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-coverageReductionMode-07491# If+--     this @VK_NV_coverage_reduction_mode@ extension is enabled, the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMeshTasksIndirectNV-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-07494# If+--     the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and if+--     the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07495# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07496# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07497# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stippledLineEnable-07498# If the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stage-07073# If the currently+--     bound pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-stage-06480# 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07074#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07075#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-pipelineStatistics-07076# The+--     @pipelineStatistics@ member used to create any active+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+--     /must/ not contain+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+--     or+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708# If @buffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709# @buffer@ /must/+--     have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710# @offset@ /must/ be+--     a multiple of @4@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711#+--     @commandBuffer@ /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multiDrawIndirect multiDrawIndirect>+--     feature is not enabled, @drawCount@ /must/ be @0@ or @1@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719# @drawCount@+--     /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146# If @drawCount@+--     is greater than @1@, @stride@ /must/ be a multiple of @4@ and /must/+--     be greater than or equal to+--     @sizeof@('DrawMeshTasksIndirectCommandNV')+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156# If @drawCount@+--     is equal to @1@, (@offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157# If @drawCount@+--     is greater than @1@, (@stride@ × (@drawCount@ - 1) + @offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-MeshNV-07081# The current+--     pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @MeshNV@ @Execution@+--     @Model@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter# @buffer@ /must/+--     be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-renderpass# This command /must/+--     only be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-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#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawMeshTasksIndirectNV :: 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 ()+cmdDrawMeshTasksIndirectNV commandBuffer+                             buffer+                             offset+                             drawCount+                             stride = liftIO $ do+  let vkCmdDrawMeshTasksIndirectNVPtr = pVkCmdDrawMeshTasksIndirectNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawMeshTasksIndirectNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectNV is null" Nothing Nothing+  let vkCmdDrawMeshTasksIndirectNV' = mkVkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNVPtr+  traceAroundEvent "vkCmdDrawMeshTasksIndirectNV" (vkCmdDrawMeshTasksIndirectNV'+                                                     (commandBufferHandle (commandBuffer))+                                                     (buffer)+                                                     (offset)+                                                     (drawCount)+                                                     (stride))+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdDrawMeshTasksIndirectCountNV+  :: FunPtr (Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()) -> Ptr CommandBuffer_T -> Buffer -> DeviceSize -> Buffer -> DeviceSize -> Word32 -> Word32 -> IO ()++-- | vkCmdDrawMeshTasksIndirectCountNV - Perform an indirect mesh tasks draw+-- with the draw count sourced from a buffer+--+-- = Description+--+-- 'cmdDrawMeshTasksIndirectCountNV' behaves similarly to+-- 'cmdDrawMeshTasksIndirectNV' except that the draw count is read by the+-- device from a buffer during execution. The command will read an unsigned+-- 32-bit integer from @countBuffer@ located at @countBufferOffset@ and use+-- this as the draw count.+--+-- == Valid Usage+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-mipmapMode-04770# If a+--     'Vulkan.Core10.Handles.Sampler' created with @mipmapMode@ equal to+--     'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'+--     and @compareEnable@ equal to 'Vulkan.Core10.FundamentalTypes.FALSE'+--     is used to sample a 'Vulkan.Core10.Handles.ImageView' as a result of+--     this command, then the image view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-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-vkCmdDrawMeshTasksIndirectCountNV-None-02691# If a+--     'Vulkan.Core10.Handles.ImageView' is accessed using atomic+--     operations as a result of this command, then the image view’s+--     <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-vkCmdDrawMeshTasksIndirectCountNV-None-02692# If a+--     'Vulkan.Core10.Handles.ImageView' is sampled with+--     'Vulkan.Core10.Enums.Filter.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.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695# Any+--     'Vulkan.Core10.Handles.ImageView' being sampled with+--     'Vulkan.Core10.Enums.Filter.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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027# For any+--     'Vulkan.Core10.Handles.ImageView' being written as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028# For any+--     'Vulkan.Core10.Handles.ImageView' being read as a storage image+--     where the image format field of the @OpTypeImage@ is @Unknown@, the+--     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_STORAGE_READ_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029# For any+--     'Vulkan.Core10.Handles.BufferView' being written as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@, the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030# Any+--     'Vulkan.Core10.Handles.BufferView' being read as a storage texel+--     buffer where the image format field of the @OpTypeImage@ is+--     @Unknown@ then the view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkFormatProperties3 buffer features>+--     /must/ contain+--     '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'+--     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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-02699# Descriptors in+--     each bound descriptor set, specified via+--     'Vulkan.Core10.CommandBufferBuilding.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-vkCmdDrawMeshTasksIndirectCountNV-None-02700# A valid pipeline+--     /must/ be bound to the pipeline bind point used by this command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-uniformBuffers-06935# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a uniform buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @uniformBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountNV-storageBuffers-06936# If any+--     stage of the 'Vulkan.Core10.Handles.Pipeline' object bound to the+--     pipeline bind point used by this command accesses a storage buffer,+--     and that stage was created without enabling either+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT'+--     or+--     'Vulkan.Extensions.VK_EXT_pipeline_robustness.PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT'+--     for @storageBuffers@, and the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess robustBufferAccess>+--     feature is not enabled, that stage /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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-06550# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ only be used with @OpImageSample*@ or+--     @OpImageSparseSample*@ instructions+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-ConstOffset-06551# If the+--     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind+--     point used by this command accesses a+--     'Vulkan.Core10.Handles.Sampler' or 'Vulkan.Core10.Handles.ImageView'+--     object that enables+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-YCbCr-conversion sampler Y′CBCR conversion>,+--     that object /must/ not use the @ConstOffset@ and @Offset@ operands+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06971#+--     If @OpImageWeightedSampleQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06972#+--     If @OpImageWeightedSampleQCOM@ uses a+--     'Vulkan.Core10.Handles.ImageView' as a sample weight image 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBoxFilterQCOM-06973#+--     If @OpImageBoxFilterQCOM@ 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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSSDQCOM-06974#+--     If @OpImageBlockMatchSSDQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06975#+--     If @OpImageBlockMatchSADQCOM@ is used to read from an+--     '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.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageBlockMatchSADQCOM-06976#+--     If @OpImageBlockMatchSADQCOM@ or OpImageBlockMatchSSDQCOM is used to+--     read from a reference image as result of this command, then the+--     specified reference coordinates /must/ not fail+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#textures-integer-coordinate-validation integer texel coordinate validation>.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06977#+--     If @OpImageWeightedSampleQCOM@, @OpImageBoxFilterQCOM@,+--     @OpImageBlockMatchSSDQCOM@, or @OpImageBlockMatchSADQCOM@ uses a+--     'Vulkan.Core10.Handles.Sampler' as a result of this command, then+--     the sampler /must/ have been created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWeightedSampleQCOM-06978#+--     If any command other than @OpImageWeightedSampleQCOM@,+--     @OpImageBoxFilterQCOM@, @OpImageBlockMatchSSDQCOM@, or+--     @OpImageBlockMatchSADQCOM@ uses a 'Vulkan.Core10.Handles.Sampler' as+--     a result of this command, then the sampler /must/ not have been+--     created with+--     'Vulkan.Core10.Enums.SamplerCreateFlagBits.SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM'.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07288# Any shader+--     invocation executed by this command /must/+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-termination terminate>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-02686# Every input+--     attachment used by the current subpass /must/ be bound to the+--     pipeline via a descriptor set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07468# If any+--     shader executed by this pipeline accesses an @OpTypeImage@ variable+--     with a @Dim@ operand of @SubpassData@, it /must/ be decorated with+--     an @InputAttachmentIndex@ that corresponds to a valid input+--     attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07469# Input attachment+--     views accessed in a subpass /must/ be created with the same+--     'Vulkan.Core10.Enums.Format.Format' as the corresponding subpass+--     definition be created with a 'Vulkan.Core10.Handles.ImageView' that+--     is an attachment in the currently bound+--     'Vulkan.Core10.Handles.Framebuffer' at an index that corresponds to+--     a valid input attachment in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537# Memory backing+--     image subresources used as attachments in the current render pass+--     /must/ not be written in any way other than as an attachment by this+--     command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538# If any recorded+--     command in the current subpass will write to an image subresource as+--     an attachment, this command /must/ not read from the memory backing+--     that image subresource in any other way than as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539# If any recorded+--     command in the current subpass will read from an image subresource+--     used as an attachment in any way other than as an attachment, this+--     command /must/ not write to that image subresource as an attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06886# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the depth aspect,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-depth-write depth writes>+--     /must/ be disabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06887# If the current+--     render pass instance uses a depth\/stencil attachment with a+--     read-only layout for the stencil aspect and stencil test is enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil all stencil ops>+--     /must/ be 'Vulkan.Core10.Enums.StencilOp.STENCIL_OP_KEEP'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-None-06666# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountNV-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+--     'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', 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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727# If+--     rasterization is not disabled in the bound graphics pipeline, then+--     for each color attachment in the subpass, if the corresponding image+--     view’s+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-view-format-features format features>+--     do not contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT',+--     then the @blendEnable@ member of the corresponding element of the+--     @pAttachments@ member of @pColorBlendState@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284#+--     If rasterization is not disabled in the bound graphics pipeline, and+--     none of the @VK_AMD_mixed_attachment_samples@ extension, the+--     @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature are enabled, then+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be greater than or equal to the+--     'Vulkan.Core10.Pipeline.PipelineColorBlendStateCreateInfo'::@attachmentCount@+--     of the currently bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06815# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the @attachmentCount@ parameter of+--     'Vulkan.Extensions.VK_EXT_color_write_enable.cmdSetColorWriteEnableEXT'+--     /must/ be less than or equal to the @maxColorAttachments@ member of+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285#+--     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+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, 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-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287#+--     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 the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is not enabled, and+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pStencilAttachment->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->imageView@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithRasterizerDiscard primitivesGeneratedQueryWithRasterizerDiscard>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-discard rasterization discard>+--     /must/ not be enabled.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, the bound graphics pipeline /must/ not have been+--     created with a non-zero value in+--     'Vulkan.Extensions.VK_EXT_transform_feedback.PipelineRasterizationStateStreamCreateInfoEXT'::@rasterizationStream@.+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pColorBlendEnables-07470# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     set @pColorBlendEnables@ for any attachment to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then for those attachments in+--     the subpass 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>+--     /must/ contain+--     'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07471#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and the current subpass does not use any color+--     and\/or depth\/stencil attachments, then the @rasterizationSamples@+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ follow the rules for a+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#renderpass-noattachments zero-attachment subpass>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07472# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'::@rasterizationSamples@+--     parameter used to create the bound graphics pipeline+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-samples-07473# If the bound+--     graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_MASK_EXT'+--     state and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, then the @samples@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleMaskEXT'+--     /must/ be greater or equal to the @rasterizationSamples@ parameter+--     in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07475#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, and none of the @VK_AMD_mixed_attachment_samples@+--     extension, @VK_NV_framebuffer_mixed_samples@ extension, or the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--     feature is enabled, then the @rasterizationSamples@ in the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07476# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     calls /must/ specify an enable for all active color attachments in+--     the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07477# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEquationEXT'+--     calls /must/ specify the blend equations for all active color+--     attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07478# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_WRITE_MASK_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorWriteMaskEXT'+--     calls /must/ specify the color write mask for all active color+--     attachments in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-firstAttachment-07479# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     /must/ have been called in the current command buffer prior to this+--     drawing command, and the attachments specified by the+--     @firstAttachment@ and @attachmentCount@ parameters of+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     calls /must/ specify the advanced blend equations for all active+--     color attachments in the current subpass where blending is enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-advancedBlendMaxColorAttachments-07480#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT'+--     dynamic states enabled and the last calls to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendEnableEXT'+--     and+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetColorBlendAdvancedEXT'+--     have enabled advanced blending, then the number of active color+--     attachments in the current subpass must not exceed+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-advancedBlendMaxColorAttachments advancedBlendMaxColorAttachments>+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-07481#+--     If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-primitivesGeneratedQueryWithNonZeroStreams primitivesGeneratedQueryWithNonZeroStreams>+--     feature is not enabled and the+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PRIMITIVES_GENERATED_EXT'+--     query is active, and the bound graphics pipeline was created with+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_STREAM_EXT'+--     state enabled, the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationStreamEXT'+--     /must/ have set the @rasterizationStream@ to zero+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07482#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state disabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ member of the+--     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'+--     structure the bound graphics pipeline has been created with+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07483#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     state enabled, then the @sampleLocationsPerPixel@ member of+--     @pSampleLocationsInfo@ in the last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ equal the @rasterizationSamples@ parameter of the last call+--     to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07484#+--     If the bound graphics pipeline was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     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-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07485#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.width@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.width@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07486#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT'+--     state enabled and the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     then the @sampleLocationsInfo.sampleLocationGridSize.height@ in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_sample_locations.cmdSetSampleLocationsEXT'+--     /must/ evenly divide+--     'Vulkan.Extensions.VK_EXT_sample_locations.MultisamplePropertiesEXT'::@sampleLocationGridSize.height@+--     as returned by+--     'Vulkan.Extensions.VK_EXT_sample_locations.getPhysicalDeviceMultisamplePropertiesEXT'+--     with a @samples@ parameter equaling @rasterizationSamples@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-07487#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT'+--     state enabled, and if @sampleLocationsEnable@ was+--     'Vulkan.Core10.FundamentalTypes.TRUE' in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetSampleLocationsEnableEXT',+--     the fragment shader code /must/ not statically use the extended+--     instruction @InterpolateAtSample@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageModulationTableEnable-07488#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableEnableNV'+--     set @coverageModulationTableEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the+--     @coverageModulationTableCount@ parameter in the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageModulationTableNV'+--     /must/ equal the current @rasterizationSamples@ divided by the+--     number of color samples in the current subpass+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07489#+--     If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+--     if current subpass has a depth\/stencil attachment and depth test,+--     stencil test, or depth bounds test are enabled in the currently+--     bound pipeline state, then the current @rasterizationSamples@ must+--     be the same as the sample count of the depth\/stencil attachment+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageToColorEnable-07490#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     state enabled and the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorEnableNV'+--     set the @coverageToColorEnable@ to+--     'Vulkan.Core10.FundamentalTypes.TRUE', then the current subpass must+--     have a color attachment at the location selected by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetCoverageToColorLocationNV'+--     @coverageToColorLocation@, with a+--     'Vulkan.Core10.Enums.Format.Format' of+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R8_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_UINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R16_SINT',+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT', or+--     'Vulkan.Core10.Enums.Format.FORMAT_R32_SINT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-coverageReductionMode-07491#+--     If this @VK_NV_coverage_reduction_mode@ extension is enabled, the+--     bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV'+--     and+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT'+--     states enabled, the current coverage reduction mode+--     @coverageReductionMode@, then the current @rasterizationSamples@,+--     and the sample counts for the color and depth\/stencil attachments+--     (if the subpass has them) must be a valid combination returned by+--     'Vulkan.Extensions.VK_NV_coverage_reduction_mode.getPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07492# 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_SWIZZLE_NV'+--     dynamic state enabled, 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-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-07493# 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_SWIZZLE_NV'+--     dynamic states enabled then the @viewportCount@ parameter in the+--     last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV'+--     /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-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-07494#+--     If the @VK_NV_framebuffer_mixed_samples@ extension is enabled, and+--     if the current subpass has any color attachments and+--     @rasterizationSamples@ of the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT'+--     is greater than the number of color samples, then the pipeline+--     @sampleShadingEnable@ /must/ be+--     'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07495# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07496# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_BRESENHAM_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledBresenhamLines stippledBresenhamLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07497# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledSmoothLines stippledSmoothLines>+--     feature /must/ be enabled+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stippledLineEnable-07498# If+--     the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT'+--     or+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT'+--     dynamic states enabled, and if the current @stippledLineEnable@+--     state is 'Vulkan.Core10.FundamentalTypes.TRUE' and the current+--     @lineRasterizationMode@ state is+--     'Vulkan.Extensions.VK_EXT_line_rasterization.LINE_RASTERIZATION_MODE_DEFAULT_EXT',+--     then the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-stippledRectangularLines stippledRectangularLines>+--     feature /must/ be enabled and+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@strictLines@+--     must be VK_TRUE+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-conservativePointAndLineRasterization-07499#+--     If the bound graphics pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT'+--     dynamic state enabled,+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#limits-conservativePointAndLineRasterization conservativePointAndLineRasterization>+--     is not supported, and the effective primitive topology output by the+--     last pre-rasterization shader stage is a line or point, then the+--     @conservativeRasterizationMode@ set by the last call to+--     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetConservativeRasterizationModeEXT'+--     /must/ be+--     'Vulkan.Extensions.VK_EXT_conservative_rasterization.CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-07073# If the+--     currently bound pipeline was 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT',+--     then+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-mesh-shader Mesh Shader Queries>+--     must not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stage-06480# 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_VERTEX_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_CONTROL_BIT',+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_TESSELLATION_EVALUATION_BIT'+--     or+--     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_GEOMETRY_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07074#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-transform-feedback Transform Feedback Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07075#+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-primitives-generated Primitives Generated Queries>+--     /must/ not be active+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-pipelineStatistics-07076#+--     The @pipelineStatistics@ member used to create any active+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#queries-pipestats Pipeline Statistics Query>+--     /must/ not contain+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT',+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT',+--     or+--     'Vulkan.Core10.Enums.QueryPipelineStatisticFlagBits.QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT'+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708# If @buffer@ is+--     non-sparse then it /must/ be bound completely and contiguously to a+--     single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709# @buffer@+--     /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710# @offset@+--     /must/ be a multiple of @4@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711#+--     @commandBuffer@ /must/ not be a protected command buffer+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714# If+--     @countBuffer@ is non-sparse then it /must/ be bound completely and+--     contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715#+--     @countBuffer@ /must/ have been created with the+--     'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_INDIRECT_BUFFER_BIT'+--     bit set+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716#+--     @countBufferOffset@ /must/ be a multiple of @4@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717# The count+--     stored in @countBuffer@ /must/ be less than or equal to+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxDrawIndirectCount@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129#+--     (@countBufferOffset@ + @sizeof@(uint32_t)) /must/ be less than or+--     equal to the size of @countBuffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-drawIndirectCount drawIndirectCount>+--     is not enabled this function /must/ not be used+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182# @stride@+--     /must/ be a multiple of @4@ and /must/ be greater than or equal to+--     @sizeof@('DrawMeshTasksIndirectCommandNV')+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183# If+--     @maxDrawCount@ is greater than or equal to @1@, (@stride@ ×+--     (@maxDrawCount@ - 1) + @offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191# If the+--     count stored in @countBuffer@ is equal to @1@, (@offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192# If the+--     count stored in @countBuffer@ is greater than @1@, (@stride@ ×+--     (@drawCount@ - 1) + @offset@ ++--     @sizeof@('DrawMeshTasksIndirectCommandNV')) /must/ be less than or+--     equal to the size of @buffer@+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-MeshNV-07082# The current+--     pipeline bound to+--     'Vulkan.Core10.Enums.PipelineBindPoint.PIPELINE_BIND_POINT_GRAPHICS'+--     /must/ contain a shader stage using the @MeshNV@ @Execution@+--     @Model@.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter# @buffer@+--     /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter#+--     @countBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer'+--     handle+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-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-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support graphics operations+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass# This command+--     /must/ only be called inside of a render pass instance+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-videocoding# This command+--     /must/ only be called outside of a video coding scope+--+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent# Each of+--     @buffer@, @commandBuffer@, and @countBuffer@ /must/ have been+--     created, allocated, or retrieved from the same+--     'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to @commandBuffer@ /must/ be externally synchronized+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Inside                                                                                                                 | Outside                                                                                                                     | Graphics                                                                                                              | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_mesh_shader VK_NV_mesh_shader>,+-- 'Vulkan.Core10.Handles.Buffer', 'Vulkan.Core10.Handles.CommandBuffer',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize'+cmdDrawMeshTasksIndirectCountNV :: 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)+                                -> -- | @countBuffer@ is the buffer containing the draw count.+                                   ("countBuffer" ::: Buffer)+                                -> -- | @countBufferOffset@ is the byte offset into @countBuffer@ where the draw+                                   -- count begins.+                                   ("countBufferOffset" ::: DeviceSize)+                                -> -- | @maxDrawCount@ specifies the maximum number of draws that will be+                                   -- executed. The actual number of executed draw calls is the minimum of the+                                   -- count specified in @countBuffer@ and @maxDrawCount@.+                                   ("maxDrawCount" ::: Word32)+                                -> -- | @stride@ is the byte stride between successive sets of draw parameters.+                                   ("stride" ::: Word32)+                                -> io ()+cmdDrawMeshTasksIndirectCountNV commandBuffer+                                  buffer+                                  offset+                                  countBuffer+                                  countBufferOffset+                                  maxDrawCount+                                  stride = liftIO $ do+  let vkCmdDrawMeshTasksIndirectCountNVPtr = pVkCmdDrawMeshTasksIndirectCountNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  unless (vkCmdDrawMeshTasksIndirectCountNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdDrawMeshTasksIndirectCountNV is null" Nothing Nothing+  let vkCmdDrawMeshTasksIndirectCountNV' = mkVkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNVPtr+  traceAroundEvent "vkCmdDrawMeshTasksIndirectCountNV" (vkCmdDrawMeshTasksIndirectCountNV'+                                                          (commandBufferHandle (commandBuffer))+                                                          (buffer)+                                                          (offset)+                                                          (countBuffer)+                                                          (countBufferOffset)+                                                          (maxDrawCount)+                                                          (stride))+  pure $ ()+++-- No documentation found for TopLevel "VK_SHADER_STAGE_TASK_BIT_NV"+pattern SHADER_STAGE_TASK_BIT_NV = SHADER_STAGE_TASK_BIT_EXT+++-- No documentation found for TopLevel "VK_SHADER_STAGE_MESH_BIT_NV"+pattern SHADER_STAGE_MESH_BIT_NV = SHADER_STAGE_MESH_BIT_EXT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV"+pattern PIPELINE_STAGE_TASK_SHADER_BIT_NV = PIPELINE_STAGE_TASK_SHADER_BIT_EXT+++-- No documentation found for TopLevel "VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV"+pattern PIPELINE_STAGE_MESH_SHADER_BIT_NV = PIPELINE_STAGE_MESH_SHADER_BIT_EXT+++-- | VkPhysicalDeviceMeshShaderFeaturesNV - Structure describing mesh shading+-- features that can be supported by an implementation+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceMeshShaderFeaturesNV' 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. 'PhysicalDeviceMeshShaderFeaturesNV' /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_NV_mesh_shader VK_NV_mesh_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMeshShaderFeaturesNV = PhysicalDeviceMeshShaderFeaturesNV+  { -- | @taskShader@ specifies whether task shaders are supported. If this+    -- feature is not enabled, the 'SHADER_STAGE_TASK_BIT_NV' and+    -- 'PIPELINE_STAGE_TASK_SHADER_BIT_NV' enum values /must/ not be used.+    taskShader :: Bool+  , -- | @meshShader@ specifies whether mesh shaders are supported. If this+    -- feature is not enabled, the 'SHADER_STAGE_MESH_BIT_NV' and+    -- 'PIPELINE_STAGE_MESH_SHADER_BIT_NV' enum values /must/ not be used.+    meshShader :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMeshShaderFeaturesNV)+#endif+deriving instance Show PhysicalDeviceMeshShaderFeaturesNV++instance ToCStruct PhysicalDeviceMeshShaderFeaturesNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceMeshShaderFeaturesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (taskShader))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (meshShader))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV)+    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 PhysicalDeviceMeshShaderFeaturesNV where+  peekCStruct p = do+    taskShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    meshShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceMeshShaderFeaturesNV+             (bool32ToBool taskShader) (bool32ToBool meshShader)++instance Storable PhysicalDeviceMeshShaderFeaturesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceMeshShaderFeaturesNV where+  zero = PhysicalDeviceMeshShaderFeaturesNV+           zero+           zero+++-- | VkPhysicalDeviceMeshShaderPropertiesNV - Structure describing mesh+-- shading properties+--+-- = Description+--+-- If the 'PhysicalDeviceMeshShaderPropertiesNV' 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_NV_mesh_shader VK_NV_mesh_shader>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceMeshShaderPropertiesNV = PhysicalDeviceMeshShaderPropertiesNV+  { -- | @maxDrawMeshTasksCount@ is the maximum number of local workgroups that+    -- /can/ be launched by a single draw mesh tasks command. See+    -- <https://registry.khronos.org/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+    -- sizes, as specified by the @LocalSize@ or @LocalSizeId@ execution mode+    -- in shader modules or by the object decorated by the @WorkgroupSize@+    -- decoration, /must/ be less than or equal to this limit.+    maxTaskWorkGroupInvocations :: Word32+  , -- | @maxTaskWorkGroupSize@[3] is the maximum size of a local task workgroup.+    -- These three values represent the maximum local workgroup size in the X,+    -- Y, and Z dimensions, respectively. The @x@, @y@, and @z@ sizes, as+    -- specified by the @LocalSize@ or @LocalSizeId@ execution mode or by the+    -- object decorated by the @WorkgroupSize@ decoration in shader modules,+    -- /must/ be less than or equal to the corresponding limit.+    maxTaskWorkGroupSize :: (Word32, Word32, Word32)+  , -- | @maxTaskTotalMemorySize@ is the maximum number of bytes that the task+    -- shader can use in total for shared and output memory combined.+    maxTaskTotalMemorySize :: Word32+  , -- | @maxTaskOutputCount@ is the maximum number of output tasks a single task+    -- shader workgroup can emit.+    maxTaskOutputCount :: Word32+  , -- | @maxMeshWorkGroupInvocations@ is the maximum total number of mesh shader+    -- invocations in a single local workgroup. The product of the X, Y, and Z+    -- sizes, as specified by the @LocalSize@ or @LocalSizeId@ execution mode+    -- in shader modules or by the object decorated by the @WorkgroupSize@+    -- decoration, /must/ be less than or equal to this limit.+    maxMeshWorkGroupInvocations :: Word32+  , -- | @maxMeshWorkGroupSize@[3] is the maximum size of a local mesh workgroup.+    -- These three values represent the maximum local workgroup size in the X,+    -- Y, and Z dimensions, respectively. The @x@, @y@, and @z@ sizes, as+    -- specified by the @LocalSize@ or @LocalSizeId@ execution mode or by the+    -- object decorated by the @WorkgroupSize@ decoration in shader modules,+    -- /must/ be less than or equal to the corresponding limit.+    maxMeshWorkGroupSize :: (Word32, Word32, Word32)+  , -- | @maxMeshTotalMemorySize@ is the maximum number of bytes that the mesh+    -- shader can use in total for shared and output memory combined.+    maxMeshTotalMemorySize :: Word32+  , -- | @maxMeshOutputVertices@ is the maximum number of vertices a mesh shader+    -- output can store.+    maxMeshOutputVertices :: Word32+  , -- | @maxMeshOutputPrimitives@ is the maximum number of primitives a mesh+    -- shader output can store.+    maxMeshOutputPrimitives :: Word32+  , -- | @maxMeshMultiviewViewCount@ is the maximum number of multiview views a+    -- mesh shader can use.+    maxMeshMultiviewViewCount :: Word32+  , -- | @meshOutputPerVertexGranularity@ is the granularity with which mesh+    -- vertex outputs are allocated. The value can be used to compute the+    -- memory size used by the mesh shader, which must be less than or equal to+    -- @maxMeshTotalMemorySize@.+    meshOutputPerVertexGranularity :: Word32+  , -- | @meshOutputPerPrimitiveGranularity@ is the granularity with which mesh+    -- outputs qualified as per-primitive are allocated. The value can be used+    -- to compute the memory size used by the mesh shader, which must be less+    -- than or equal to @maxMeshTotalMemorySize@.+    meshOutputPerPrimitiveGranularity :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceMeshShaderPropertiesNV)+#endif+deriving instance Show PhysicalDeviceMeshShaderPropertiesNV++instance ToCStruct PhysicalDeviceMeshShaderPropertiesNV where+  withCStruct x f = allocaBytes 88 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceMeshShaderPropertiesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxDrawMeshTasksCount)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (maxTaskWorkGroupInvocations)+    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 3 Word32)))+    case (maxTaskWorkGroupSize) of+      (e0, e1, e2) -> do+        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (maxTaskTotalMemorySize)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (maxTaskOutputCount)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (maxMeshWorkGroupInvocations)+    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 48 :: Ptr (FixedArray 3 Word32)))+    case (maxMeshWorkGroupSize) of+      (e0, e1, e2) -> do+        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 60 :: Ptr Word32)) (maxMeshTotalMemorySize)+    poke ((p `plusPtr` 64 :: Ptr Word32)) (maxMeshOutputVertices)+    poke ((p `plusPtr` 68 :: Ptr Word32)) (maxMeshOutputPrimitives)+    poke ((p `plusPtr` 72 :: Ptr Word32)) (maxMeshMultiviewViewCount)+    poke ((p `plusPtr` 76 :: Ptr Word32)) (meshOutputPerVertexGranularity)+    poke ((p `plusPtr` 80 :: Ptr Word32)) (meshOutputPerPrimitiveGranularity)+    f+  cStructSize = 88+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    let pMaxTaskWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 24 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxTaskWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxTaskWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 36 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 40 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)+    let pMaxMeshWorkGroupSize' = lowerArrayPtr ((p `plusPtr` 48 :: Ptr (FixedArray 3 Word32)))+    case ((zero, zero, zero)) of+      (e0, e1, e2) -> do+        poke (pMaxMeshWorkGroupSize' :: Ptr Word32) (e0)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 4 :: Ptr Word32) (e1)+        poke (pMaxMeshWorkGroupSize' `plusPtr` 8 :: Ptr Word32) (e2)+    poke ((p `plusPtr` 60 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 64 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 68 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 72 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 76 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 80 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceMeshShaderPropertiesNV where+  peekCStruct p = do+    maxDrawMeshTasksCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    maxTaskWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    let pmaxTaskWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 24 :: Ptr (FixedArray 3 Word32)))+    maxTaskWorkGroupSize0 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+    maxTaskWorkGroupSize1 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+    maxTaskWorkGroupSize2 <- peek @Word32 ((pmaxTaskWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+    maxTaskTotalMemorySize <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+    maxTaskOutputCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    maxMeshWorkGroupInvocations <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    let pmaxMeshWorkGroupSize = lowerArrayPtr @Word32 ((p `plusPtr` 48 :: Ptr (FixedArray 3 Word32)))+    maxMeshWorkGroupSize0 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 0 :: Ptr Word32))+    maxMeshWorkGroupSize1 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 4 :: Ptr Word32))+    maxMeshWorkGroupSize2 <- peek @Word32 ((pmaxMeshWorkGroupSize `advancePtrBytes` 8 :: Ptr Word32))+    maxMeshTotalMemorySize <- peek @Word32 ((p `plusPtr` 60 :: Ptr Word32))+    maxMeshOutputVertices <- peek @Word32 ((p `plusPtr` 64 :: Ptr Word32))+    maxMeshOutputPrimitives <- peek @Word32 ((p `plusPtr` 68 :: Ptr Word32))+    maxMeshMultiviewViewCount <- peek @Word32 ((p `plusPtr` 72 :: Ptr Word32))+    meshOutputPerVertexGranularity <- peek @Word32 ((p `plusPtr` 76 :: Ptr Word32))+    meshOutputPerPrimitiveGranularity <- peek @Word32 ((p `plusPtr` 80 :: Ptr Word32))+    pure $ PhysicalDeviceMeshShaderPropertiesNV+             maxDrawMeshTasksCount+             maxTaskWorkGroupInvocations+             (( maxTaskWorkGroupSize0+              , maxTaskWorkGroupSize1+              , maxTaskWorkGroupSize2 ))+             maxTaskTotalMemorySize+             maxTaskOutputCount+             maxMeshWorkGroupInvocations+             (( maxMeshWorkGroupSize0+              , maxMeshWorkGroupSize1+              , maxMeshWorkGroupSize2 ))+             maxMeshTotalMemorySize+             maxMeshOutputVertices+             maxMeshOutputPrimitives+             maxMeshMultiviewViewCount+             meshOutputPerVertexGranularity+             meshOutputPerPrimitiveGranularity  instance Storable PhysicalDeviceMeshShaderPropertiesNV where   sizeOf ~_ = 88
+ src/Vulkan/Extensions/VK_NV_optical_flow.hs view
@@ -0,0 +1,2188 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_optical_flow - device extension+--+-- == VK_NV_optical_flow+--+-- [__Name String__]+--     @VK_NV_optical_flow@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     465+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_KHR_format_feature_flags2@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_synchronization2@ to be enabled for any+--         device-level functionality+--+-- [__Contact__]+--+--     -   Carsten Rohde+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_optical_flow] @crohde%0A*Here describe the issue or question you have about the VK_NV_optical_flow extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-09-26+--+-- [__Contributors__]+--+--     -   Carsten Rohde, NVIDIA+--+--     -   Vipul Parashar, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Eric Werness, NVIDIA+--+-- == Description+--+-- Optical flow are fundamental algorithms in computer vision (CV) area.+-- This extension allows applications to estimate 2D displacement of pixels+-- between two frames.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+--+-- == New Commands+--+-- -   'bindOpticalFlowSessionImageNV'+--+-- -   'cmdOpticalFlowExecuteNV'+--+-- -   'createOpticalFlowSessionNV'+--+-- -   'destroyOpticalFlowSessionNV'+--+-- -   'getPhysicalDeviceOpticalFlowImageFormatsNV'+--+-- == New Structures+--+-- -   'OpticalFlowExecuteInfoNV'+--+-- -   'OpticalFlowImageFormatPropertiesNV'+--+-- -   'OpticalFlowSessionCreateInfoNV'+--+-- -   Extending 'OpticalFlowSessionCreateInfoNV':+--+--     -   'OpticalFlowSessionCreatePrivateDataInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceOpticalFlowFeaturesNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',+--     'Vulkan.Core10.Image.ImageCreateInfo':+--+--     -   'OpticalFlowImageFormatInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceOpticalFlowPropertiesNV'+--+-- == New Enums+--+-- -   'OpticalFlowExecuteFlagBitsNV'+--+-- -   'OpticalFlowGridSizeFlagBitsNV'+--+-- -   'OpticalFlowPerformanceLevelNV'+--+-- -   'OpticalFlowSessionBindingPointNV'+--+-- -   'OpticalFlowSessionCreateFlagBitsNV'+--+-- -   'OpticalFlowUsageFlagBitsNV'+--+-- == New Bitmasks+--+-- -   'OpticalFlowExecuteFlagsNV'+--+-- -   'OpticalFlowGridSizeFlagsNV'+--+-- -   'OpticalFlowSessionCreateFlagsNV'+--+-- -   'OpticalFlowUsageFlagsNV'+--+-- == New Enum Constants+--+-- -   'NV_OPTICAL_FLOW_EXTENSION_NAME'+--+-- -   'NV_OPTICAL_FLOW_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.Format.Format':+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_S10_5_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':+--+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlagBits':+--+--     -   'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_OPTICAL_FLOW_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV'+--+-- == Examples+--+-- > // Example querying available input formats+-- > VkOpticalFlowImageFormatInfoNV ofFormatInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV };+-- > ofFormatInfo.usage = VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV;+-- >+-- > uint32_t count = 0;+-- > vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, &ofFormatInfo, &count, NULL);+-- > VkOpticalFlowImageFormatPropertiesNV* fmt = new VkOpticalFlowImageFormatPropertiesNV[count];+-- > memset(fmt, 0, count  * sizeof(VkOpticalFlowImageFormatPropertiesNV));+-- > for (uint32_t i = 0; i < count; i++) {+-- >     fmt[i].sType = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV;+-- > }+-- > vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, &ofFormatInfo, &count, fmt);+-- >+-- > // Pick one of the available formats+-- > VkFormat inputFormat = fmt[0].format;+-- >+-- > // Check feature support for optimal tiling+-- > VkFormatProperties3 formatProperties3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 };+-- > VkFormatProperties2 formatProperties2 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, &formatProperties3 };+-- > vkGetPhysicalDeviceFormatProperties2(physicalDevice, inputFormat, &formatProperties2);+-- > if (!(formatProperties3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV)) {+-- >     return false;+-- > }+-- >+-- > // Check support for image creation parameters+-- > VkPhysicalDeviceImageFormatInfo2 imageFormatInfo2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, &ofFormatInfo };+-- > imageFormatInfo2.format = inputFormat;+-- > imageFormatInfo2.type = VK_IMAGE_TYPE_2D;+-- > imageFormatInfo2.tiling = VK_IMAGE_TILING_OPTIMAL;+-- > imageFormatInfo2.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;+-- >+-- > VkImageFormatProperties2 imageFormatProperties2 = { VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 };+-- > if (vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, &imageFormatInfo2, &imageFormatProperties2) != VK_SUCCESS) {+-- >     return false;+-- > }+-- >+-- > VkImageCreateInfo imageCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, &ofFormatInfo };+-- > imageCreateInfo.imageType = VK_IMAGE_TYPE_2D;+-- > imageCreateInfo.format = inputFormat;+-- > imageCreateInfo.extent = { width, height, (uint32_t)1};+-- > imageCreateInfo.mipLevels = 1;+-- > imageCreateInfo.arrayLayers = 1;+-- > imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;+-- > imageCreateInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;;+-- > imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;+-- >+-- > vkCreateImage(device, &imageCreateInfo, NULL, &input);+-- > "allocate memory, bind image, create view"+-- >+-- > "do the same for reference and output"+-- >+-- > // Create optical flow session+-- > VkOpticalFlowSessionCreateInfoNV sessionCreateInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV };+-- > sessionCreateInfo.width = width;+-- > sessionCreateInfo.height = height;+-- > sessionCreateInfo.imageFormat = inputFormat;+-- > sessionCreateInfo.flowVectorFormat = outputFormat;+-- > sessionCreateInfo.outputGridSize = VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV;+-- > sessionCreateInfo.performanceLevel = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV;+-- > VkOpticalFlowSessionNV session;+-- > vkCreateOpticalFlowSessionNV(device, &sessionCreateInfo, NULL, &session);+-- >+-- > "allocate command buffer"+-- >+-- > "transfer images to VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"+-- > "transfer input images to VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV and output image to VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"+-- >+-- > vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV, inputView, VK_IMAGE_LAYOUT_GENERAL);+-- > vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV, refView, VK_IMAGE_LAYOUT_GENERAL);+-- > vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV, outputView, VK_IMAGE_LAYOUT_GENERAL);+-- >+-- > VkOpticalFlowExecuteInfoNV opticalFlowExecuteInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV };+-- > vkCmdOpticalFlowExecuteNV(cmd, session, &opticalFlowExecuteInfo);+-- >+-- > "submit command buffer"+--+-- == Version History+--+-- -   Revision 1, 2022-09-26 (Carsten Rohde)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'OpticalFlowExecuteFlagBitsNV', 'OpticalFlowExecuteFlagsNV',+-- 'OpticalFlowExecuteInfoNV', 'OpticalFlowGridSizeFlagBitsNV',+-- 'OpticalFlowGridSizeFlagsNV', 'OpticalFlowImageFormatInfoNV',+-- 'OpticalFlowImageFormatPropertiesNV', 'OpticalFlowPerformanceLevelNV',+-- 'OpticalFlowSessionBindingPointNV',+-- 'OpticalFlowSessionCreateFlagBitsNV', 'OpticalFlowSessionCreateFlagsNV',+-- 'OpticalFlowSessionCreateInfoNV',+-- 'OpticalFlowSessionCreatePrivateDataInfoNV',+-- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV',+-- 'OpticalFlowUsageFlagBitsNV', 'OpticalFlowUsageFlagsNV',+-- 'PhysicalDeviceOpticalFlowFeaturesNV',+-- 'PhysicalDeviceOpticalFlowPropertiesNV',+-- 'bindOpticalFlowSessionImageNV', 'cmdOpticalFlowExecuteNV',+-- 'createOpticalFlowSessionNV', 'destroyOpticalFlowSessionNV',+-- 'getPhysicalDeviceOpticalFlowImageFormatsNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_optical_flow Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_optical_flow  ( getPhysicalDeviceOpticalFlowImageFormatsNV+                                             , createOpticalFlowSessionNV+                                             , withOpticalFlowSessionNV+                                             , destroyOpticalFlowSessionNV+                                             , bindOpticalFlowSessionImageNV+                                             , cmdOpticalFlowExecuteNV+                                             , PhysicalDeviceOpticalFlowFeaturesNV(..)+                                             , PhysicalDeviceOpticalFlowPropertiesNV(..)+                                             , OpticalFlowImageFormatInfoNV(..)+                                             , OpticalFlowImageFormatPropertiesNV(..)+                                             , OpticalFlowSessionCreateInfoNV(..)+                                             , OpticalFlowSessionCreatePrivateDataInfoNV(..)+                                             , OpticalFlowExecuteInfoNV(..)+                                             , OpticalFlowGridSizeFlagsNV+                                             , OpticalFlowGridSizeFlagBitsNV( OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV+                                                                            , OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV+                                                                            , OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV+                                                                            , OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV+                                                                            , OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV+                                                                            , ..+                                                                            )+                                             , OpticalFlowUsageFlagsNV+                                             , OpticalFlowUsageFlagBitsNV( OPTICAL_FLOW_USAGE_UNKNOWN_NV+                                                                         , OPTICAL_FLOW_USAGE_INPUT_BIT_NV+                                                                         , OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV+                                                                         , OPTICAL_FLOW_USAGE_HINT_BIT_NV+                                                                         , OPTICAL_FLOW_USAGE_COST_BIT_NV+                                                                         , OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV+                                                                         , ..+                                                                         )+                                             , OpticalFlowPerformanceLevelNV( OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV+                                                                            , OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV+                                                                            , OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV+                                                                            , OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV+                                                                            , ..+                                                                            )+                                             , OpticalFlowSessionBindingPointNV( OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV+                                                                               , OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV+                                                                               , ..+                                                                               )+                                             , OpticalFlowSessionCreateFlagsNV+                                             , OpticalFlowSessionCreateFlagBitsNV( OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV+                                                                                 , OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV+                                                                                 , OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV+                                                                                 , OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV+                                                                                 , OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV+                                                                                 , ..+                                                                                 )+                                             , OpticalFlowExecuteFlagsNV+                                             , OpticalFlowExecuteFlagBitsNV( OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV+                                                                           , ..+                                                                           )+                                             , NV_OPTICAL_FLOW_SPEC_VERSION+                                             , pattern NV_OPTICAL_FLOW_SPEC_VERSION+                                             , NV_OPTICAL_FLOW_EXTENSION_NAME+                                             , pattern NV_OPTICAL_FLOW_EXTENSION_NAME+                                             , OpticalFlowSessionNV(..)+                                             ) 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 GHC.Show (showsPrec)+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 Data.Int (Int32)+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.NamedType ((:::))+import Vulkan.Core10.AllocationCallbacks (AllocationCallbacks)+import Vulkan.Core10.FundamentalTypes (Bool32)+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.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkBindOpticalFlowSessionImageNV))+import Vulkan.Dynamic (DeviceCmds(pVkCmdOpticalFlowExecuteNV))+import Vulkan.Dynamic (DeviceCmds(pVkCreateOpticalFlowSessionNV))+import Vulkan.Dynamic (DeviceCmds(pVkDestroyOpticalFlowSessionNV))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.Core10.FundamentalTypes (Flags)+import Vulkan.Core10.Enums.Format (Format)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout(..))+import Vulkan.Core10.Handles (ImageView)+import Vulkan.Core10.Handles (ImageView(..))+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceOpticalFlowImageFormatsNV))+import Vulkan.Extensions.Handles (OpticalFlowSessionNV)+import Vulkan.Extensions.Handles (OpticalFlowSessionNV(..))+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..))+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.CStruct.Extends (SomeStruct)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+import Vulkan.Extensions.Handles (OpticalFlowSessionNV(..))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPhysicalDeviceOpticalFlowImageFormatsNV+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr OpticalFlowImageFormatInfoNV -> Ptr Word32 -> Ptr OpticalFlowImageFormatPropertiesNV -> IO Result) -> Ptr PhysicalDevice_T -> Ptr OpticalFlowImageFormatInfoNV -> Ptr Word32 -> Ptr OpticalFlowImageFormatPropertiesNV -> IO Result++-- | vkGetPhysicalDeviceOpticalFlowImageFormatsNV - Query image formats for+-- optical flow+--+-- = Description+--+-- If @pImageFormatProperties@ is @NULL@, then the number of optical flow+-- properties supported for the given @physicalDevice@ is returned in+-- @pFormatCount@. Otherwise, @pFormatCount@ must point to a variable set+-- by the user to the number of elements in the @pImageFormatProperties@+-- array, and on return the variable is overwritten with the number of+-- values actually written to @pImageFormatProperties@. If the value of+-- @pFormatCount@ is less than the number of optical flow properties+-- supported, at most @pFormatCount@ values will be written to+-- @pImageFormatProperties@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE'+-- will be returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to+-- indicate that not all the available values were returned. Before+-- creating an image to be used as a optical flow frame, obtain the+-- supported image creation parameters by querying with+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFormatProperties2'+-- and+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+-- using one of the reported formats and adding+-- 'OpticalFlowImageFormatInfoNV' to the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2'.+-- When querying the parameters with+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceImageFormatProperties2'+-- for images used for optical flow operations, the+-- 'OpticalFlowImageFormatInfoNV'::@usage@ field should contain one or more+-- of the bits defined in 'OpticalFlowUsageFlagBitsNV'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-physicalDevice-parameter#+--     @physicalDevice@ /must/ be a valid+--     'Vulkan.Core10.Handles.PhysicalDevice' handle+--+-- -   #VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pOpticalFlowImageFormatInfo-parameter#+--     @pOpticalFlowImageFormatInfo@ /must/ be a valid pointer to a valid+--     'OpticalFlowImageFormatInfoNV' structure+--+-- -   #VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pFormatCount-parameter#+--     @pFormatCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   #VUID-vkGetPhysicalDeviceOpticalFlowImageFormatsNV-pImageFormatProperties-parameter#+--     If the value referenced by @pFormatCount@ is not @0@, and+--     @pImageFormatProperties@ is not @NULL@, @pImageFormatProperties@+--     /must/ be a valid pointer to an array of @pFormatCount@+--     'OpticalFlowImageFormatPropertiesNV' 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_EXTENSION_NOT_PRESENT'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_FORMAT_NOT_SUPPORTED'+--+-- Note+--+-- 'Vulkan.Core10.Enums.Format.FORMAT_B8G8R8A8_UNORM',+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8_UNORM' and+-- 'Vulkan.Core10.Enums.Format.FORMAT_G8_B8R8_2PLANE_420_UNORM' are+-- initially supported for images with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usage optical usage>+-- 'OPTICAL_FLOW_USAGE_INPUT_BIT_NV'.+--+-- 'Vulkan.Core10.Enums.Format.FORMAT_R16G16_S10_5_NV' is initially+-- supported for images with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usage optical usage>+-- 'OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV', 'OPTICAL_FLOW_USAGE_HINT_BIT_NV' and+-- 'OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV'.+--+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT' and+-- 'Vulkan.Core10.Enums.Format.FORMAT_R32_UINT' are initially supported for+-- images with+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#opticalflow-usage optical usage>+-- 'OPTICAL_FLOW_USAGE_COST_BIT_NV'. It is recommended to use+-- 'Vulkan.Core10.Enums.Format.FORMAT_R8_UINT' because of the lower+-- bandwidth.+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowImageFormatInfoNV', 'OpticalFlowImageFormatPropertiesNV',+-- 'Vulkan.Core10.Handles.PhysicalDevice'+getPhysicalDeviceOpticalFlowImageFormatsNV :: forall io+                                            . (MonadIO io)+                                           => -- | @physicalDevice@ is the physical device being queried.+                                              PhysicalDevice+                                           -> -- | #opticalflow-getimageformat-pOpticalFlowImageFormatInfo#+                                              -- @pOpticalFlowImageFormatInfo@ is a pointer to a+                                              -- 'OpticalFlowImageFormatInfoNV' structure specifying the optical flow+                                              -- usage for which information is returned.+                                              OpticalFlowImageFormatInfoNV+                                           -> io (Result, ("imageFormatProperties" ::: Vector OpticalFlowImageFormatPropertiesNV))+getPhysicalDeviceOpticalFlowImageFormatsNV physicalDevice+                                             opticalFlowImageFormatInfo = liftIO . evalContT $ do+  let vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr = pVkGetPhysicalDeviceOpticalFlowImageFormatsNV (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)+  lift $ unless (vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceOpticalFlowImageFormatsNV is null" Nothing Nothing+  let vkGetPhysicalDeviceOpticalFlowImageFormatsNV' = mkVkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNVPtr+  let physicalDevice' = physicalDeviceHandle (physicalDevice)+  pOpticalFlowImageFormatInfo <- ContT $ withCStruct (opticalFlowImageFormatInfo)+  pPFormatCount <- ContT $ bracket (callocBytes @Word32 4) free+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" (vkGetPhysicalDeviceOpticalFlowImageFormatsNV'+                                                                                 physicalDevice'+                                                                                 pOpticalFlowImageFormatInfo+                                                                                 (pPFormatCount)+                                                                                 (nullPtr))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pFormatCount <- lift $ peek @Word32 pPFormatCount+  pPImageFormatProperties <- ContT $ bracket (callocBytes @OpticalFlowImageFormatPropertiesNV ((fromIntegral (pFormatCount)) * 24)) free+  _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPImageFormatProperties `advancePtrBytes` (i * 24) :: Ptr OpticalFlowImageFormatPropertiesNV) . ($ ())) [0..(fromIntegral (pFormatCount)) - 1]+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" (vkGetPhysicalDeviceOpticalFlowImageFormatsNV'+                                                                                  physicalDevice'+                                                                                  pOpticalFlowImageFormatInfo+                                                                                  (pPFormatCount)+                                                                                  ((pPImageFormatProperties)))+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))+  pFormatCount' <- lift $ peek @Word32 pPFormatCount+  pImageFormatProperties' <- lift $ generateM (fromIntegral (pFormatCount')) (\i -> peekCStruct @OpticalFlowImageFormatPropertiesNV (((pPImageFormatProperties) `advancePtrBytes` (24 * (i)) :: Ptr OpticalFlowImageFormatPropertiesNV)))+  pure $ ((r'), pImageFormatProperties')+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCreateOpticalFlowSessionNV+  :: FunPtr (Ptr Device_T -> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV) -> Ptr AllocationCallbacks -> Ptr OpticalFlowSessionNV -> IO Result) -> Ptr Device_T -> Ptr (SomeStruct OpticalFlowSessionCreateInfoNV) -> Ptr AllocationCallbacks -> Ptr OpticalFlowSessionNV -> IO Result++-- | vkCreateOpticalFlowSessionNV - Creates an optical flow session object+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCreateOpticalFlowSessionNV-device-parameter# @device@ /must/+--     be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkCreateOpticalFlowSessionNV-pCreateInfo-parameter#+--     @pCreateInfo@ /must/ be a valid pointer to a valid+--     'OpticalFlowSessionCreateInfoNV' structure+--+-- -   #VUID-vkCreateOpticalFlowSessionNV-pAllocator-parameter# If+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'+--     structure+--+-- -   #VUID-vkCreateOpticalFlowSessionNV-pSession-parameter# @pSession@+--     /must/ be a valid pointer to a+--     'Vulkan.Extensions.Handles.OpticalFlowSessionNV' handle+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+--     -   'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_OUT_OF_HOST_MEMORY'+--+--     -   'Vulkan.Core10.Enums.Result.ERROR_INITIALIZATION_FAILED'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device', 'OpticalFlowSessionCreateInfoNV',+-- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+createOpticalFlowSessionNV :: forall a io+                            . ( Extendss OpticalFlowSessionCreateInfoNV a+                              , PokeChain a+                              , MonadIO io )+                           => -- | @device@ is the logical device that creates the optical flow session+                              -- object.+                              Device+                           -> -- | @pCreateInfo@ is a pointer to a 'OpticalFlowSessionCreateInfoNV'+                              -- structure containing parameters specifying the creation of the optical+                              -- flow session.+                              (OpticalFlowSessionCreateInfoNV a)+                           -> -- | @pAllocator@ controls host memory allocation as described in the+                              -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                              -- chapter.+                              ("allocator" ::: Maybe AllocationCallbacks)+                           -> io (OpticalFlowSessionNV)+createOpticalFlowSessionNV device createInfo allocator = liftIO . evalContT $ do+  let vkCreateOpticalFlowSessionNVPtr = pVkCreateOpticalFlowSessionNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkCreateOpticalFlowSessionNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateOpticalFlowSessionNV is null" Nothing Nothing+  let vkCreateOpticalFlowSessionNV' = mkVkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNVPtr+  pCreateInfo <- ContT $ withCStruct (createInfo)+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  pPSession <- ContT $ bracket (callocBytes @OpticalFlowSessionNV 8) free+  r <- lift $ traceAroundEvent "vkCreateOpticalFlowSessionNV" (vkCreateOpticalFlowSessionNV'+                                                                 (deviceHandle (device))+                                                                 (forgetExtensions pCreateInfo)+                                                                 pAllocator+                                                                 (pPSession))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pSession <- lift $ peek @OpticalFlowSessionNV pPSession+  pure $ (pSession)++-- | A convenience wrapper to make a compatible pair of calls to+-- 'createOpticalFlowSessionNV' and 'destroyOpticalFlowSessionNV'+--+-- To ensure that 'destroyOpticalFlowSessionNV' 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.+--+withOpticalFlowSessionNV :: forall a io r . (Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a, MonadIO io) => Device -> OpticalFlowSessionCreateInfoNV a -> Maybe AllocationCallbacks -> (io OpticalFlowSessionNV -> (OpticalFlowSessionNV -> io ()) -> r) -> r+withOpticalFlowSessionNV device pCreateInfo pAllocator b =+  b (createOpticalFlowSessionNV device pCreateInfo pAllocator)+    (\(o0) -> destroyOpticalFlowSessionNV device o0 pAllocator)+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkDestroyOpticalFlowSessionNV+  :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ()) -> Ptr Device_T -> OpticalFlowSessionNV -> Ptr AllocationCallbacks -> IO ()++-- | vkDestroyOpticalFlowSessionNV - Destroy optical flow session object+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkDestroyOpticalFlowSessionNV-device-parameter# @device@+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkDestroyOpticalFlowSessionNV-session-parameter# @session@+--     /must/ be a valid 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+--     handle+--+-- -   #VUID-vkDestroyOpticalFlowSessionNV-pAllocator-parameter# If+--     @pAllocator@ is not @NULL@, @pAllocator@ /must/ be a valid pointer+--     to a valid 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks'+--     structure+--+-- -   #VUID-vkDestroyOpticalFlowSessionNV-session-parent# @session@ /must/+--     have been created, allocated, or retrieved from @device@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.AllocationCallbacks.AllocationCallbacks',+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+destroyOpticalFlowSessionNV :: forall io+                             . (MonadIO io)+                            => -- | @device@ is the device that was used for the creation of the optical+                               -- flow session.+                               Device+                            -> -- | @session@ is the optical flow session to be destroyed.+                               OpticalFlowSessionNV+                            -> -- | @pAllocator@ controls host memory allocation as described in the+                               -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#memory-allocation Memory Allocation>+                               -- chapter.+                               ("allocator" ::: Maybe AllocationCallbacks)+                            -> io ()+destroyOpticalFlowSessionNV device session allocator = liftIO . evalContT $ do+  let vkDestroyOpticalFlowSessionNVPtr = pVkDestroyOpticalFlowSessionNV (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkDestroyOpticalFlowSessionNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyOpticalFlowSessionNV is null" Nothing Nothing+  let vkDestroyOpticalFlowSessionNV' = mkVkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNVPtr+  pAllocator <- case (allocator) of+    Nothing -> pure nullPtr+    Just j -> ContT $ withCStruct (j)+  lift $ traceAroundEvent "vkDestroyOpticalFlowSessionNV" (vkDestroyOpticalFlowSessionNV'+                                                             (deviceHandle (device))+                                                             (session)+                                                             pAllocator)+  pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkBindOpticalFlowSessionImageNV+  :: FunPtr (Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result) -> Ptr Device_T -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> IO Result++-- | vkBindOpticalFlowSessionImageNV - Bind image to an optical flow session+--+-- = Parameters+--+-- -   @device@ is the device which owns the optical flow session object+--     @session@.+--+-- -   @session@ is the optical flow session object to which the image view+--     is to be bound.+--+-- -   @bindingPoint@ specifies the binding point+--     'OpticalFlowSessionBindingPointNV' to which the image view is bound.+--+-- -   @view@ is a 'Vulkan.Core10.Handles.ImageView' to be bound.+--+-- -   layout /must/ specify the layout that the image subresources+--     accessible from @view@ will be in at the time the optical flow+--     vectors are calculated with 'cmdOpticalFlowExecuteNV' on a+--     'Vulkan.Core10.Handles.Device'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-device-parameter# @device@+--     /must/ be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-session-parameter# @session@+--     /must/ be a valid 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+--     handle+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-bindingPoint-parameter#+--     @bindingPoint@ /must/ be a valid 'OpticalFlowSessionBindingPointNV'+--     value+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-view-parameter# If @view@ is+--     not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @view@ /must/ be a+--     valid 'Vulkan.Core10.Handles.ImageView' handle+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-layout-parameter# @layout@+--     /must/ be a valid 'Vulkan.Core10.Enums.ImageLayout.ImageLayout'+--     value+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-session-parent# @session@+--     /must/ have been created, allocated, or retrieved from @device@+--+-- -   #VUID-vkBindOpticalFlowSessionImageNV-view-parent# If @view@ is a+--     valid handle, it /must/ have been created, allocated, or retrieved+--     from @device@+--+-- == 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_INITIALIZATION_FAILED'+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.Handles.Device',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Handles.ImageView', 'OpticalFlowSessionBindingPointNV',+-- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+bindOpticalFlowSessionImageNV :: forall io+                               . (MonadIO io)+                              => -- No documentation found for Nested "vkBindOpticalFlowSessionImageNV" "device"+                                 Device+                              -> -- No documentation found for Nested "vkBindOpticalFlowSessionImageNV" "session"+                                 OpticalFlowSessionNV+                              -> -- No documentation found for Nested "vkBindOpticalFlowSessionImageNV" "bindingPoint"+                                 OpticalFlowSessionBindingPointNV+                              -> -- No documentation found for Nested "vkBindOpticalFlowSessionImageNV" "view"+                                 ImageView+                              -> -- No documentation found for Nested "vkBindOpticalFlowSessionImageNV" "layout"+                                 ImageLayout+                              -> io ()+bindOpticalFlowSessionImageNV device+                                session+                                bindingPoint+                                view+                                layout = liftIO $ do+  let vkBindOpticalFlowSessionImageNVPtr = pVkBindOpticalFlowSessionImageNV (case device of Device{deviceCmds} -> deviceCmds)+  unless (vkBindOpticalFlowSessionImageNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkBindOpticalFlowSessionImageNV is null" Nothing Nothing+  let vkBindOpticalFlowSessionImageNV' = mkVkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNVPtr+  r <- traceAroundEvent "vkBindOpticalFlowSessionImageNV" (vkBindOpticalFlowSessionImageNV'+                                                             (deviceHandle (device))+                                                             (session)+                                                             (bindingPoint)+                                                             (view)+                                                             (layout))+  when (r < SUCCESS) (throwIO (VulkanException r))+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkCmdOpticalFlowExecuteNV+  :: FunPtr (Ptr CommandBuffer_T -> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ()) -> Ptr CommandBuffer_T -> OpticalFlowSessionNV -> Ptr OpticalFlowExecuteInfoNV -> IO ()++-- | vkCmdOpticalFlowExecuteNV - Calculate optical flow vectors+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-commandBuffer-parameter#+--     @commandBuffer@ /must/ be a valid+--     'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-session-parameter# @session@ /must/+--     be a valid 'Vulkan.Extensions.Handles.OpticalFlowSessionNV' handle+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-pExecuteInfo-parameter#+--     @pExecuteInfo@ /must/ be a valid pointer to a valid+--     'OpticalFlowExecuteInfoNV' structure+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-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-vkCmdOpticalFlowExecuteNV-commandBuffer-cmdpool# The+--     'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+--     allocated from /must/ support opticalflow operations+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-renderpass# This command /must/ only+--     be called outside of a render pass instance+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-videocoding# This command /must/+--     only be called outside of a video coding scope+--+-- -   #VUID-vkCmdOpticalFlowExecuteNV-commonparent# Both of+--     @commandBuffer@, and @session@ /must/ have been created, allocated,+--     or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- == Host Synchronization+--+-- -   Host access to the 'Vulkan.Core10.Handles.CommandPool' that+--     @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginVideoCodingKHR Video Coding Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-queueoperation-command-types Command Type> |+-- +============================================================================================================================+========================================================================================================================+=============================================================================================================================+=======================================================================================================================+========================================================================================================================================++-- | Primary                                                                                                                    | Outside                                                                                                                | Outside                                                                                                                     | Opticalflow                                                                                                           | Action                                                                                                                                 |+-- | Secondary                                                                                                                  |                                                                                                                        |                                                                                                                             |                                                                                                                       |                                                                                                                                        |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.Handles.CommandBuffer', 'OpticalFlowExecuteInfoNV',+-- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+cmdOpticalFlowExecuteNV :: forall io+                         . (MonadIO io)+                        => -- | @commandBuffer@ is the command buffer into which the command will be+                           -- recorded.+                           CommandBuffer+                        -> -- | @session@ is the optical flow session object on which this command is+                           -- operating.+                           OpticalFlowSessionNV+                        -> -- | @pExecuteInfo@ Info is a pointer to a 'OpticalFlowExecuteInfoNV'.+                           OpticalFlowExecuteInfoNV+                        -> io ()+cmdOpticalFlowExecuteNV commandBuffer+                          session+                          executeInfo = liftIO . evalContT $ do+  let vkCmdOpticalFlowExecuteNVPtr = pVkCmdOpticalFlowExecuteNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)+  lift $ unless (vkCmdOpticalFlowExecuteNVPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdOpticalFlowExecuteNV is null" Nothing Nothing+  let vkCmdOpticalFlowExecuteNV' = mkVkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNVPtr+  pExecuteInfo <- ContT $ withCStruct (executeInfo)+  lift $ traceAroundEvent "vkCmdOpticalFlowExecuteNV" (vkCmdOpticalFlowExecuteNV'+                                                         (commandBufferHandle (commandBuffer))+                                                         (session)+                                                         pExecuteInfo)+  pure $ ()+++-- | VkPhysicalDeviceOpticalFlowFeaturesNV - Structure describing the optical+-- flow features supported by the implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceOpticalFlowFeaturesNV' 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. 'PhysicalDeviceOpticalFlowFeaturesNV' /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_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceOpticalFlowFeaturesNV = PhysicalDeviceOpticalFlowFeaturesNV+  { -- | #features-opticalFlow# @opticalFlow@ indicates whether the+    -- implementation supports optical flow.+    opticalFlow :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceOpticalFlowFeaturesNV)+#endif+deriving instance Show PhysicalDeviceOpticalFlowFeaturesNV++instance ToCStruct PhysicalDeviceOpticalFlowFeaturesNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceOpticalFlowFeaturesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (opticalFlow))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceOpticalFlowFeaturesNV where+  peekCStruct p = do+    opticalFlow <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceOpticalFlowFeaturesNV+             (bool32ToBool opticalFlow)++instance Storable PhysicalDeviceOpticalFlowFeaturesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceOpticalFlowFeaturesNV where+  zero = PhysicalDeviceOpticalFlowFeaturesNV+           zero+++-- | VkPhysicalDeviceOpticalFlowPropertiesNV - Structure describing+-- properties supported by VK_NV_optical_flow+--+-- = Description+--+-- If the 'PhysicalDeviceOpticalFlowPropertiesNV' 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_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32', 'OpticalFlowGridSizeFlagsNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceOpticalFlowPropertiesNV = PhysicalDeviceOpticalFlowPropertiesNV+  { -- | #limits-supportedOutputGridSizes# @supportedOutputGridSizes@ are the+    -- supported 'OpticalFlowGridSizeFlagsNV' which can be specified in+    -- 'OpticalFlowSessionCreateInfoNV'::@outputGridSize@.+    supportedOutputGridSizes :: OpticalFlowGridSizeFlagsNV+  , -- | #limits-supportedHintGridSizes# @supportedHintGridSizes@ are the+    -- supported 'OpticalFlowGridSizeFlagsNV' which can be specified in+    -- 'OpticalFlowSessionCreateInfoNV'::@hintGridSize@.+    supportedHintGridSizes :: OpticalFlowGridSizeFlagsNV+  , -- | #limits-hintSupported# @hintSupported@ is a boolean describing whether+    -- using hint flow vector map is supported in an optical flow session.+    hintSupported :: Bool+  , -- | #limits-costSupported# @costSupported@ is a boolean describing whether+    -- cost map generation is supported in an optical flow session.+    costSupported :: Bool+  , -- | #limits-bidirectionalFlowSupported# @bidirectionalFlowSupported@ is a+    -- boolean describing whether bi-directional flow generation is supported+    -- in an optical flow session.+    bidirectionalFlowSupported :: Bool+  , -- | #limits-globalFlowSupported# @globalFlowSupported@ is a boolean+    -- describing whether global flow vector map generation is supported in an+    -- optical flow session.+    globalFlowSupported :: Bool+  , -- | #limits-minWidth# @minWidth@ is the minimum width in pixels for images+    -- used in an optical flow session.+    minWidth :: Word32+  , -- | #limits-minHeight# @minHeight@ is the minimum height in pixels for+    -- images used in an optical flow session.+    minHeight :: Word32+  , -- | #limits-maxWidth# @maxWidth@ is the maximum width in pixels for images+    -- used in an optical flow session.+    maxWidth :: Word32+  , -- | #limits-maxHeight# @maxHeight@ is the maximum height in pixels for+    -- images used in an optical flow session.+    maxHeight :: Word32+  , -- | #limits-maxNumRegionsOfInterest# @maxNumRegionsOfInterest@ is the+    -- maximum number of regions of interest which can be used in an optical+    -- flow session. If this @maxNumRegionsOfInterest@ is 0, regions of+    -- interest are not supported in an optical flow session.+    maxNumRegionsOfInterest :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceOpticalFlowPropertiesNV)+#endif+deriving instance Show PhysicalDeviceOpticalFlowPropertiesNV++instance ToCStruct PhysicalDeviceOpticalFlowPropertiesNV where+  withCStruct x f = allocaBytes 64 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceOpticalFlowPropertiesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr OpticalFlowGridSizeFlagsNV)) (supportedOutputGridSizes)+    poke ((p `plusPtr` 20 :: Ptr OpticalFlowGridSizeFlagsNV)) (supportedHintGridSizes)+    poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (hintSupported))+    poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (costSupported))+    poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (bidirectionalFlowSupported))+    poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (globalFlowSupported))+    poke ((p `plusPtr` 40 :: Ptr Word32)) (minWidth)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (minHeight)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (maxWidth)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (maxHeight)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (maxNumRegionsOfInterest)+    f+  cStructSize = 64+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr OpticalFlowGridSizeFlagsNV)) (zero)+    poke ((p `plusPtr` 20 :: Ptr OpticalFlowGridSizeFlagsNV)) (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 Word32)) (zero)+    poke ((p `plusPtr` 44 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 48 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 52 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 56 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceOpticalFlowPropertiesNV where+  peekCStruct p = do+    supportedOutputGridSizes <- peek @OpticalFlowGridSizeFlagsNV ((p `plusPtr` 16 :: Ptr OpticalFlowGridSizeFlagsNV))+    supportedHintGridSizes <- peek @OpticalFlowGridSizeFlagsNV ((p `plusPtr` 20 :: Ptr OpticalFlowGridSizeFlagsNV))+    hintSupported <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+    costSupported <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+    bidirectionalFlowSupported <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+    globalFlowSupported <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+    minWidth <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+    minHeight <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+    maxWidth <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))+    maxHeight <- peek @Word32 ((p `plusPtr` 52 :: Ptr Word32))+    maxNumRegionsOfInterest <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))+    pure $ PhysicalDeviceOpticalFlowPropertiesNV+             supportedOutputGridSizes+             supportedHintGridSizes+             (bool32ToBool hintSupported)+             (bool32ToBool costSupported)+             (bool32ToBool bidirectionalFlowSupported)+             (bool32ToBool globalFlowSupported)+             minWidth+             minHeight+             maxWidth+             maxHeight+             maxNumRegionsOfInterest++instance Storable PhysicalDeviceOpticalFlowPropertiesNV where+  sizeOf ~_ = 64+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceOpticalFlowPropertiesNV where+  zero = PhysicalDeviceOpticalFlowPropertiesNV+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkOpticalFlowImageFormatInfoNV - Structure describing optical flow image+-- format info+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowUsageFlagsNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getPhysicalDeviceOpticalFlowImageFormatsNV'+data OpticalFlowImageFormatInfoNV = OpticalFlowImageFormatInfoNV+  { -- | #opticalflow-usage# @usage@ is a bitmask of 'OpticalFlowUsageFlagBitsNV'+    -- describing the intended optical flow usage of the image.+    --+    -- #VUID-VkOpticalFlowImageFormatInfoNV-usage-parameter# @usage@ /must/ be+    -- a valid combination of 'OpticalFlowUsageFlagBitsNV' values+    --+    -- #VUID-VkOpticalFlowImageFormatInfoNV-usage-requiredbitmask# @usage@+    -- /must/ not be @0@+    usage :: OpticalFlowUsageFlagsNV }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (OpticalFlowImageFormatInfoNV)+#endif+deriving instance Show OpticalFlowImageFormatInfoNV++instance ToCStruct OpticalFlowImageFormatInfoNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p OpticalFlowImageFormatInfoNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr OpticalFlowUsageFlagsNV)) (usage)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr OpticalFlowUsageFlagsNV)) (zero)+    f++instance FromCStruct OpticalFlowImageFormatInfoNV where+  peekCStruct p = do+    usage <- peek @OpticalFlowUsageFlagsNV ((p `plusPtr` 16 :: Ptr OpticalFlowUsageFlagsNV))+    pure $ OpticalFlowImageFormatInfoNV+             usage++instance Storable OpticalFlowImageFormatInfoNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero OpticalFlowImageFormatInfoNV where+  zero = OpticalFlowImageFormatInfoNV+           zero+++-- | VkOpticalFlowImageFormatPropertiesNV - Structure describing properties+-- of an optical flow image format+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.Enums.Format.Format',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getPhysicalDeviceOpticalFlowImageFormatsNV'+data OpticalFlowImageFormatPropertiesNV = OpticalFlowImageFormatPropertiesNV+  { -- | #opticalflow-format# @format@ is a 'Vulkan.Core10.Enums.Format.Format'+    -- that specifies the format that can be used with the specified optical+    -- flow image usages.+    format :: Format }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (OpticalFlowImageFormatPropertiesNV)+#endif+deriving instance Show OpticalFlowImageFormatPropertiesNV++instance ToCStruct OpticalFlowImageFormatPropertiesNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p OpticalFlowImageFormatPropertiesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Format)) (format)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Format)) (zero)+    f++instance FromCStruct OpticalFlowImageFormatPropertiesNV where+  peekCStruct p = do+    format <- peek @Format ((p `plusPtr` 16 :: Ptr Format))+    pure $ OpticalFlowImageFormatPropertiesNV+             format++instance Storable OpticalFlowImageFormatPropertiesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero OpticalFlowImageFormatPropertiesNV where+  zero = OpticalFlowImageFormatPropertiesNV+           zero+++-- | VkOpticalFlowSessionCreateInfoNV - Structure specifying parameters of a+-- newly created optical flow session+--+-- == Valid Usage+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-width-07581# @width@ /must/+--     be greater than or equal to+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@minWidth@ and less than or+--     equal to 'PhysicalDeviceOpticalFlowPropertiesNV'::@maxWidth@.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-height-07582# @height@ /must/+--     be greater than or equal to+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@minHeight@ and less than+--     or equal to 'PhysicalDeviceOpticalFlowPropertiesNV'::@maxHeight@.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-07583#+--     @imageFormat@ /must/ be one of the formats returned by+--     'getPhysicalDeviceOpticalFlowImageFormatsNV' for+--     'OPTICAL_FLOW_USAGE_INPUT_BIT_NV'.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-07584#+--     @flowVectorFormat@ /must/ be one of the formats returned by+--     'getPhysicalDeviceOpticalFlowImageFormatsNV' for+--     'OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV'.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-07585#+--     @costFormat@ /must/ be one of the formats returned by+--     'getPhysicalDeviceOpticalFlowImageFormatsNV' for+--     'OPTICAL_FLOW_USAGE_COST_BIT_NV' if+--     'OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV' is set in @flags@.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-07586#+--     @outputGridSize@ /must/ be exactly one of the bits reported in+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@supportedOutputGridSizes@.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-07587#+--     @hintGridSize@ /must/ be exactly one of the bits reported in+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@supportedHintGridSizes@ if+--     'OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV' is set in @flags@.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flags-07588#+--     'OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV' /must/ not be set+--     in @flags@ if+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@hintSupported@ is+--     'Vulkan.Core10.FundamentalTypes.FALSE'.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flags-07589#+--     'OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV' /must/ not be set+--     in @flags@ if+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@costSupported@ is+--     'Vulkan.Core10.FundamentalTypes.FALSE'.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flags-07590#+--     'OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV' /must/ not+--     be set in @flags@ if+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@globalFlowSupported@ is+--     'Vulkan.Core10.FundamentalTypes.FALSE'.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flags-07591#+--     'OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV' /must/ not be set+--     in @flags@ if+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@maxNumRegionsOfInterest@+--     is 0.+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flags-07592#+--     'OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV' /must/ not be+--     set in @flags@ if+--     'PhysicalDeviceOpticalFlowPropertiesNV'::@bidirectionalFlowSupported@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE'.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-sType-sType# @sType@ /must/+--     be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV'+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-pNext-pNext# @pNext@ /must/+--     be @NULL@ or a pointer to a valid instance of+--     'OpticalFlowSessionCreatePrivateDataInfoNV'+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-sType-unique# The @sType@+--     value of each struct in the @pNext@ chain /must/ be unique+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-imageFormat-parameter#+--     @imageFormat@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format'+--     value+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flowVectorFormat-parameter#+--     @flowVectorFormat@ /must/ be a valid+--     'Vulkan.Core10.Enums.Format.Format' value+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-costFormat-parameter# If+--     @costFormat@ is not @0@, @costFormat@ /must/ be a valid+--     'Vulkan.Core10.Enums.Format.Format' value+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-parameter#+--     @outputGridSize@ /must/ be a valid combination of+--     'OpticalFlowGridSizeFlagBitsNV' values+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-outputGridSize-requiredbitmask#+--     @outputGridSize@ /must/ not be @0@+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-hintGridSize-parameter#+--     @hintGridSize@ /must/ be a valid combination of+--     'OpticalFlowGridSizeFlagBitsNV' values+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-performanceLevel-parameter#+--     If @performanceLevel@ is not @0@, @performanceLevel@ /must/ be a+--     valid 'OpticalFlowPerformanceLevelNV' value+--+-- -   #VUID-VkOpticalFlowSessionCreateInfoNV-flags-parameter# @flags@+--     /must/ be a valid combination of+--     'OpticalFlowSessionCreateFlagBitsNV' values+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.Enums.Format.Format', 'OpticalFlowGridSizeFlagsNV',+-- 'OpticalFlowPerformanceLevelNV', 'OpticalFlowSessionCreateFlagsNV',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'createOpticalFlowSessionNV'+data OpticalFlowSessionCreateInfoNV (es :: [Type]) = OpticalFlowSessionCreateInfoNV+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @width@ is the width in pixels of the input or reference frame to be+    -- bound to this optical flow session.+    width :: Word32+  , -- | @height@ is the height in pixels of the input or reference frame to be+    -- bound to this optical flow session.+    height :: Word32+  , -- | @imageFormat@ is the 'Vulkan.Core10.Enums.Format.Format' of the input+    -- and reference frame to be bound to this optical flow session.+    imageFormat :: Format+  , -- | @flowVectorFormat@ is the 'Vulkan.Core10.Enums.Format.Format' of the+    -- flow vector maps (output or hint) to be bound to this optical flow+    -- session.+    flowVectorFormat :: Format+  , -- | @costFormat@ is the 'Vulkan.Core10.Enums.Format.Format' of the cost maps+    -- to be bound to this optical flow session.+    costFormat :: Format+  , -- | @outputGridSize@ is exactly one bit of 'OpticalFlowGridSizeFlagsNV'+    -- specifying the grid size of the output flow and cost maps to be bound to+    -- this optical flow session. The size of the output flow and cost maps is+    -- determined by 'OpticalFlowSessionCreateInfoNV'::@width@ and+    -- 'OpticalFlowSessionCreateInfoNV'::@height@ divided by+    -- 'OpticalFlowSessionCreateInfoNV'::@outputGridSize@.+    outputGridSize :: OpticalFlowGridSizeFlagsNV+  , -- | @hintGridSize@ is one exactly bit of 'OpticalFlowGridSizeFlagsNV'+    -- specifying the grid size of of the hint flow vector maps to be bound to+    -- this optical flow session. The size of the hint maps is determined by+    -- 'OpticalFlowSessionCreateInfoNV'::@width@ and+    -- 'OpticalFlowSessionCreateInfoNV'::@height@ divided by+    -- 'OpticalFlowSessionCreateInfoNV'::@hintGridSize@.+    hintGridSize :: OpticalFlowGridSizeFlagsNV+  , -- | @performanceLevel@ is the 'OpticalFlowPerformanceLevelNV' used for this+    -- optical flow session.+    performanceLevel :: OpticalFlowPerformanceLevelNV+  , -- | @flags@ are the 'OpticalFlowSessionCreateFlagsNV' used for this optical+    -- flow session.+    flags :: OpticalFlowSessionCreateFlagsNV+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (OpticalFlowSessionCreateInfoNV (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (OpticalFlowSessionCreateInfoNV es)++instance Extensible OpticalFlowSessionCreateInfoNV where+  extensibleTypeName = "OpticalFlowSessionCreateInfoNV"+  setNext OpticalFlowSessionCreateInfoNV{..} next' = OpticalFlowSessionCreateInfoNV{next = next', ..}+  getNext OpticalFlowSessionCreateInfoNV{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends OpticalFlowSessionCreateInfoNV e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @OpticalFlowSessionCreatePrivateDataInfoNV = Just f+    | otherwise = Nothing++instance ( Extendss OpticalFlowSessionCreateInfoNV es+         , PokeChain es ) => ToCStruct (OpticalFlowSessionCreateInfoNV es) where+  withCStruct x f = allocaBytes 56 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p OpticalFlowSessionCreateInfoNV{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (width)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (height)+    lift $ poke ((p `plusPtr` 24 :: Ptr Format)) (imageFormat)+    lift $ poke ((p `plusPtr` 28 :: Ptr Format)) (flowVectorFormat)+    lift $ poke ((p `plusPtr` 32 :: Ptr Format)) (costFormat)+    lift $ poke ((p `plusPtr` 36 :: Ptr OpticalFlowGridSizeFlagsNV)) (outputGridSize)+    lift $ poke ((p `plusPtr` 40 :: Ptr OpticalFlowGridSizeFlagsNV)) (hintGridSize)+    lift $ poke ((p `plusPtr` 44 :: Ptr OpticalFlowPerformanceLevelNV)) (performanceLevel)+    lift $ poke ((p `plusPtr` 48 :: Ptr OpticalFlowSessionCreateFlagsNV)) (flags)+    lift $ f+  cStructSize = 56+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr Format)) (zero)+    lift $ poke ((p `plusPtr` 28 :: Ptr Format)) (zero)+    lift $ poke ((p `plusPtr` 36 :: Ptr OpticalFlowGridSizeFlagsNV)) (zero)+    lift $ f++instance ( Extendss OpticalFlowSessionCreateInfoNV es+         , PeekChain es ) => FromCStruct (OpticalFlowSessionCreateInfoNV es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    width <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    height <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    imageFormat <- peek @Format ((p `plusPtr` 24 :: Ptr Format))+    flowVectorFormat <- peek @Format ((p `plusPtr` 28 :: Ptr Format))+    costFormat <- peek @Format ((p `plusPtr` 32 :: Ptr Format))+    outputGridSize <- peek @OpticalFlowGridSizeFlagsNV ((p `plusPtr` 36 :: Ptr OpticalFlowGridSizeFlagsNV))+    hintGridSize <- peek @OpticalFlowGridSizeFlagsNV ((p `plusPtr` 40 :: Ptr OpticalFlowGridSizeFlagsNV))+    performanceLevel <- peek @OpticalFlowPerformanceLevelNV ((p `plusPtr` 44 :: Ptr OpticalFlowPerformanceLevelNV))+    flags <- peek @OpticalFlowSessionCreateFlagsNV ((p `plusPtr` 48 :: Ptr OpticalFlowSessionCreateFlagsNV))+    pure $ OpticalFlowSessionCreateInfoNV+             next+             width+             height+             imageFormat+             flowVectorFormat+             costFormat+             outputGridSize+             hintGridSize+             performanceLevel+             flags++instance es ~ '[] => Zero (OpticalFlowSessionCreateInfoNV es) where+  zero = OpticalFlowSessionCreateInfoNV+           ()+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+           zero+++-- | VkOpticalFlowSessionCreatePrivateDataInfoNV - Structure for NV internal+-- use only+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data OpticalFlowSessionCreatePrivateDataInfoNV = OpticalFlowSessionCreatePrivateDataInfoNV+  { -- | @id@ is an identifier for data which is passed at a memory location+    -- specified in+    -- 'OpticalFlowSessionCreatePrivateDataInfoNV'::@pPrivateData@.+    id' :: Word32+  , -- | @size@ is is the size of data in bytes which is passed at a memory+    -- location specified in+    -- 'OpticalFlowSessionCreatePrivateDataInfoNV'::@pPrivateData@.+    size :: Word32+  , -- | @pPrivateData@ is a pointer to NV internal data.+    --+    -- #VUID-VkOpticalFlowSessionCreatePrivateDataInfoNV-pPrivateData-parameter#+    -- @pPrivateData@ /must/ be a pointer value+    privateData :: Ptr ()+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (OpticalFlowSessionCreatePrivateDataInfoNV)+#endif+deriving instance Show OpticalFlowSessionCreatePrivateDataInfoNV++instance ToCStruct OpticalFlowSessionCreatePrivateDataInfoNV where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p OpticalFlowSessionCreatePrivateDataInfoNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (id')+    poke ((p `plusPtr` 20 :: Ptr Word32)) (size)+    poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (privateData)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV)+    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 (Ptr ()))) (zero)+    f++instance FromCStruct OpticalFlowSessionCreatePrivateDataInfoNV where+  peekCStruct p = do+    id' <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    size <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pPrivateData <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+    pure $ OpticalFlowSessionCreatePrivateDataInfoNV+             id' size pPrivateData++instance Storable OpticalFlowSessionCreatePrivateDataInfoNV where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero OpticalFlowSessionCreatePrivateDataInfoNV where+  zero = OpticalFlowSessionCreatePrivateDataInfoNV+           zero+           zero+           zero+++-- | VkOpticalFlowExecuteInfoNV - Structure specifying parameters of a+-- optical flow vector calculation+--+-- == Valid Usage+--+-- -   #VUID-VkOpticalFlowExecuteInfoNV-regionCount-07593# @regionCount@+--     /must/ be 0 if 'OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV'+--     was not set for 'Vulkan.Extensions.Handles.OpticalFlowSessionNV' on+--     which this command is operating.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkOpticalFlowExecuteInfoNV-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV'+--+-- -   #VUID-VkOpticalFlowExecuteInfoNV-pNext-pNext# @pNext@ /must/ be+--     @NULL@+--+-- -   #VUID-VkOpticalFlowExecuteInfoNV-flags-parameter# @flags@ /must/ be+--     a valid combination of 'OpticalFlowExecuteFlagBitsNV' values+--+-- -   #VUID-VkOpticalFlowExecuteInfoNV-pRegions-parameter# If+--     @regionCount@ is not @0@, @pRegions@ /must/ be a valid pointer to an+--     array of @regionCount@ 'Vulkan.Core10.FundamentalTypes.Rect2D'+--     structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowExecuteFlagsNV', 'Vulkan.Core10.FundamentalTypes.Rect2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdOpticalFlowExecuteNV'+data OpticalFlowExecuteInfoNV = OpticalFlowExecuteInfoNV+  { -- | @flags@ are the 'OpticalFlowExecuteFlagsNV' used for this command.+    flags :: OpticalFlowExecuteFlagsNV+  , -- | @pRegions@ is a pointer to @regionCount@+    -- 'Vulkan.Core10.FundamentalTypes.Rect2D' regions of interest.+    regions :: Vector Rect2D+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (OpticalFlowExecuteInfoNV)+#endif+deriving instance Show OpticalFlowExecuteInfoNV++instance ToCStruct OpticalFlowExecuteInfoNV where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p OpticalFlowExecuteInfoNV{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr OpticalFlowExecuteFlagsNV)) (flags)+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+    pPRegions' <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (regions)) * 16)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPRegions' `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (regions)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr Rect2D))) (pPRegions')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct OpticalFlowExecuteInfoNV where+  peekCStruct p = do+    flags <- peek @OpticalFlowExecuteFlagsNV ((p `plusPtr` 16 :: Ptr OpticalFlowExecuteFlagsNV))+    regionCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pRegions <- peek @(Ptr Rect2D) ((p `plusPtr` 24 :: Ptr (Ptr Rect2D)))+    pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @Rect2D ((pRegions `advancePtrBytes` (16 * (i)) :: Ptr Rect2D)))+    pure $ OpticalFlowExecuteInfoNV+             flags pRegions'++instance Zero OpticalFlowExecuteInfoNV where+  zero = OpticalFlowExecuteInfoNV+           zero+           mempty+++type OpticalFlowGridSizeFlagsNV = OpticalFlowGridSizeFlagBitsNV++-- | VkOpticalFlowGridSizeFlagBitsNV - Bits specifying grid sizes for optical+-- flow operations+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowGridSizeFlagsNV'+newtype OpticalFlowGridSizeFlagBitsNV = OpticalFlowGridSizeFlagBitsNV Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- No documentation found for Nested "VkOpticalFlowGridSizeFlagBitsNV" "VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV"+pattern OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = OpticalFlowGridSizeFlagBitsNV 0x00000000++-- | 'OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV' specifies that grid is 1x1 pixel.+pattern OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000001++-- | 'OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV' specifies that grid is 2x2 pixel.+pattern OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000002++-- | 'OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV' specifies that grid is 4x4 pixel.+pattern OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000004++-- | 'OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV' specifies that grid is 8x8 pixel.+pattern OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = OpticalFlowGridSizeFlagBitsNV 0x00000008++conNameOpticalFlowGridSizeFlagBitsNV :: String+conNameOpticalFlowGridSizeFlagBitsNV = "OpticalFlowGridSizeFlagBitsNV"++enumPrefixOpticalFlowGridSizeFlagBitsNV :: String+enumPrefixOpticalFlowGridSizeFlagBitsNV = "OPTICAL_FLOW_GRID_SIZE_"++showTableOpticalFlowGridSizeFlagBitsNV :: [(OpticalFlowGridSizeFlagBitsNV, String)]+showTableOpticalFlowGridSizeFlagBitsNV =+  [+    ( OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV+    , "UNKNOWN_NV"+    )+  ,+    ( OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV+    , "1X1_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV+    , "2X2_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV+    , "4X4_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV+    , "8X8_BIT_NV"+    )+  ]++instance Show OpticalFlowGridSizeFlagBitsNV where+  showsPrec =+    enumShowsPrec+      enumPrefixOpticalFlowGridSizeFlagBitsNV+      showTableOpticalFlowGridSizeFlagBitsNV+      conNameOpticalFlowGridSizeFlagBitsNV+      (\(OpticalFlowGridSizeFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read OpticalFlowGridSizeFlagBitsNV where+  readPrec =+    enumReadPrec+      enumPrefixOpticalFlowGridSizeFlagBitsNV+      showTableOpticalFlowGridSizeFlagBitsNV+      conNameOpticalFlowGridSizeFlagBitsNV+      OpticalFlowGridSizeFlagBitsNV++type OpticalFlowUsageFlagsNV = OpticalFlowUsageFlagBitsNV++-- | VkOpticalFlowUsageFlagBitsNV - Bits specifying usage for optical flow+-- operations+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowUsageFlagsNV'+newtype OpticalFlowUsageFlagBitsNV = OpticalFlowUsageFlagBitsNV Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- No documentation found for Nested "VkOpticalFlowUsageFlagBitsNV" "VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV"+pattern OPTICAL_FLOW_USAGE_UNKNOWN_NV = OpticalFlowUsageFlagBitsNV 0x00000000++-- | 'OPTICAL_FLOW_USAGE_INPUT_BIT_NV' specifies that the image /can/ be used+-- as input or reference frame for an optical flow operation.+pattern OPTICAL_FLOW_USAGE_INPUT_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000001++-- | 'OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV' specifies that the image /can/ be+-- used as output flow vector map for an optical flow operation.+pattern OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000002++-- | 'OPTICAL_FLOW_USAGE_HINT_BIT_NV' specifies that the image /can/ be used+-- as hint flow vector map for an optical flow operation.+pattern OPTICAL_FLOW_USAGE_HINT_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000004++-- | 'OPTICAL_FLOW_USAGE_COST_BIT_NV' specifies that the image /can/ be used+-- as output cost map for an optical flow operation.+pattern OPTICAL_FLOW_USAGE_COST_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000008++-- | 'OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV' specifies that the image /can/+-- be used as global flow vector for an optical flow operation.+pattern OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = OpticalFlowUsageFlagBitsNV 0x00000010++conNameOpticalFlowUsageFlagBitsNV :: String+conNameOpticalFlowUsageFlagBitsNV = "OpticalFlowUsageFlagBitsNV"++enumPrefixOpticalFlowUsageFlagBitsNV :: String+enumPrefixOpticalFlowUsageFlagBitsNV = "OPTICAL_FLOW_USAGE_"++showTableOpticalFlowUsageFlagBitsNV :: [(OpticalFlowUsageFlagBitsNV, String)]+showTableOpticalFlowUsageFlagBitsNV =+  [+    ( OPTICAL_FLOW_USAGE_UNKNOWN_NV+    , "UNKNOWN_NV"+    )+  ,+    ( OPTICAL_FLOW_USAGE_INPUT_BIT_NV+    , "INPUT_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV+    , "OUTPUT_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_USAGE_HINT_BIT_NV+    , "HINT_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_USAGE_COST_BIT_NV+    , "COST_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV+    , "GLOBAL_FLOW_BIT_NV"+    )+  ]++instance Show OpticalFlowUsageFlagBitsNV where+  showsPrec =+    enumShowsPrec+      enumPrefixOpticalFlowUsageFlagBitsNV+      showTableOpticalFlowUsageFlagBitsNV+      conNameOpticalFlowUsageFlagBitsNV+      (\(OpticalFlowUsageFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read OpticalFlowUsageFlagBitsNV where+  readPrec =+    enumReadPrec+      enumPrefixOpticalFlowUsageFlagBitsNV+      showTableOpticalFlowUsageFlagBitsNV+      conNameOpticalFlowUsageFlagBitsNV+      OpticalFlowUsageFlagBitsNV++-- | VkOpticalFlowPerformanceLevelNV - Optical flow performance level types+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowSessionCreateInfoNV'+newtype OpticalFlowPerformanceLevelNV = OpticalFlowPerformanceLevelNV Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- No documentation found for Nested "VkOpticalFlowPerformanceLevelNV" "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV"+pattern OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = OpticalFlowPerformanceLevelNV 0++-- | 'OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV' is a level with slower+-- performance but higher quality.+pattern OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = OpticalFlowPerformanceLevelNV 1++-- | 'OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV' is a level with medium+-- performance and medium quality.+pattern OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = OpticalFlowPerformanceLevelNV 2++-- | 'OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV' is a preset with higher+-- performance but lower quality.+pattern OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = OpticalFlowPerformanceLevelNV 3++{-# COMPLETE+  OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV+  , OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV+  , OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV+  , OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV ::+    OpticalFlowPerformanceLevelNV+  #-}++conNameOpticalFlowPerformanceLevelNV :: String+conNameOpticalFlowPerformanceLevelNV = "OpticalFlowPerformanceLevelNV"++enumPrefixOpticalFlowPerformanceLevelNV :: String+enumPrefixOpticalFlowPerformanceLevelNV = "OPTICAL_FLOW_PERFORMANCE_LEVEL_"++showTableOpticalFlowPerformanceLevelNV :: [(OpticalFlowPerformanceLevelNV, String)]+showTableOpticalFlowPerformanceLevelNV =+  [+    ( OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV+    , "UNKNOWN_NV"+    )+  ,+    ( OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV+    , "SLOW_NV"+    )+  ,+    ( OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV+    , "MEDIUM_NV"+    )+  ,+    ( OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV+    , "FAST_NV"+    )+  ]++instance Show OpticalFlowPerformanceLevelNV where+  showsPrec =+    enumShowsPrec+      enumPrefixOpticalFlowPerformanceLevelNV+      showTableOpticalFlowPerformanceLevelNV+      conNameOpticalFlowPerformanceLevelNV+      (\(OpticalFlowPerformanceLevelNV x) -> x)+      (showsPrec 11)++instance Read OpticalFlowPerformanceLevelNV where+  readPrec =+    enumReadPrec+      enumPrefixOpticalFlowPerformanceLevelNV+      showTableOpticalFlowPerformanceLevelNV+      conNameOpticalFlowPerformanceLevelNV+      OpticalFlowPerformanceLevelNV++-- | VkOpticalFlowSessionBindingPointNV - Binding points of an optical flow+-- session+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'bindOpticalFlowSessionImageNV'+newtype OpticalFlowSessionBindingPointNV = OpticalFlowSessionBindingPointNV Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- No documentation found for Nested "VkOpticalFlowSessionBindingPointNV" "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV"+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = OpticalFlowSessionBindingPointNV 0++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV' specifies the binding+-- point for the input frame.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = OpticalFlowSessionBindingPointNV 1++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV' specifies the binding+-- point for the input reference frame.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = OpticalFlowSessionBindingPointNV 2++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV' specifies the binding point+-- for the optional external hint flow vectors.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = OpticalFlowSessionBindingPointNV 3++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV' specifies the+-- binding point for output flow vectors of default forward flow calcution.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = OpticalFlowSessionBindingPointNV 4++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV' specifies+-- the binding point for the optional output flow vector map of optional+-- backward flow calcution.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = OpticalFlowSessionBindingPointNV 5++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV' specifies the binding point+-- for the optional output cost map of default forward flow calcution.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = OpticalFlowSessionBindingPointNV 6++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV' specifies the+-- binding point for the optional output cost map of optional backward flow+-- calcution.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = OpticalFlowSessionBindingPointNV 7++-- | 'OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV' specifies the+-- binding point for the optional global flow value of default forward flow+-- calcution.+pattern OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = OpticalFlowSessionBindingPointNV 8++{-# COMPLETE+  OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV+  , OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV ::+    OpticalFlowSessionBindingPointNV+  #-}++conNameOpticalFlowSessionBindingPointNV :: String+conNameOpticalFlowSessionBindingPointNV = "OpticalFlowSessionBindingPointNV"++enumPrefixOpticalFlowSessionBindingPointNV :: String+enumPrefixOpticalFlowSessionBindingPointNV = "OPTICAL_FLOW_SESSION_BINDING_POINT_"++showTableOpticalFlowSessionBindingPointNV :: [(OpticalFlowSessionBindingPointNV, String)]+showTableOpticalFlowSessionBindingPointNV =+  [+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV+    , "UNKNOWN_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV+    , "INPUT_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV+    , "REFERENCE_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV+    , "HINT_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV+    , "FLOW_VECTOR_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV+    , "BACKWARD_FLOW_VECTOR_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV+    , "COST_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV+    , "BACKWARD_COST_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV+    , "GLOBAL_FLOW_NV"+    )+  ]++instance Show OpticalFlowSessionBindingPointNV where+  showsPrec =+    enumShowsPrec+      enumPrefixOpticalFlowSessionBindingPointNV+      showTableOpticalFlowSessionBindingPointNV+      conNameOpticalFlowSessionBindingPointNV+      (\(OpticalFlowSessionBindingPointNV x) -> x)+      (showsPrec 11)++instance Read OpticalFlowSessionBindingPointNV where+  readPrec =+    enumReadPrec+      enumPrefixOpticalFlowSessionBindingPointNV+      showTableOpticalFlowSessionBindingPointNV+      conNameOpticalFlowSessionBindingPointNV+      OpticalFlowSessionBindingPointNV++type OpticalFlowSessionCreateFlagsNV = OpticalFlowSessionCreateFlagBitsNV++-- | VkOpticalFlowSessionCreateFlagBitsNV - Bits specifying flags for optical+-- flow session+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowSessionCreateFlagsNV'+newtype OpticalFlowSessionCreateFlagBitsNV = OpticalFlowSessionCreateFlagBitsNV Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV' specifies that a+-- 'Vulkan.Core10.Handles.ImageView' with external flow vectors will be+-- used as hints in performing the motion search and /must/ be bound to+-- 'OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV'.+pattern OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000001++-- | 'OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV' specifies that the cost+-- for the forward flow is generated in a 'Vulkan.Core10.Handles.ImageView'+-- which /must/ be bound to 'OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV'.+-- Additionally, if 'OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV' is+-- also set, the cost for backward flow is generated in a+-- 'Vulkan.Core10.Handles.ImageView' which /must/ be bound to+-- 'OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV'. The cost is the+-- confidence level of the flow vector for each grid in the frame. The Cost+-- implies how (in)accurate the flow vector is. Higher cost value implies+-- the flow vector to be less accurate and vice-versa.+pattern OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000002++-- | 'OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV' specifies that a+-- global flow vector is estimated from forward flow in a single pixel+-- 'Vulkan.Core10.Handles.ImageView' which /must/ be bound to+-- 'OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV'.+pattern OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000004++-- | 'OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV' specifies that+-- regions of interest /can/ be specified in 'OpticalFlowExecuteInfoNV'.+pattern OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000008++-- | 'OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV' specifies that+-- backward flow is generated in addition to forward flow which is always+-- generated.+pattern OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = OpticalFlowSessionCreateFlagBitsNV 0x00000010++conNameOpticalFlowSessionCreateFlagBitsNV :: String+conNameOpticalFlowSessionCreateFlagBitsNV = "OpticalFlowSessionCreateFlagBitsNV"++enumPrefixOpticalFlowSessionCreateFlagBitsNV :: String+enumPrefixOpticalFlowSessionCreateFlagBitsNV = "OPTICAL_FLOW_SESSION_CREATE_"++showTableOpticalFlowSessionCreateFlagBitsNV :: [(OpticalFlowSessionCreateFlagBitsNV, String)]+showTableOpticalFlowSessionCreateFlagBitsNV =+  [+    ( OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV+    , "ENABLE_HINT_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV+    , "ENABLE_COST_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV+    , "ENABLE_GLOBAL_FLOW_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV+    , "ALLOW_REGIONS_BIT_NV"+    )+  ,+    ( OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV+    , "BOTH_DIRECTIONS_BIT_NV"+    )+  ]++instance Show OpticalFlowSessionCreateFlagBitsNV where+  showsPrec =+    enumShowsPrec+      enumPrefixOpticalFlowSessionCreateFlagBitsNV+      showTableOpticalFlowSessionCreateFlagBitsNV+      conNameOpticalFlowSessionCreateFlagBitsNV+      (\(OpticalFlowSessionCreateFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read OpticalFlowSessionCreateFlagBitsNV where+  readPrec =+    enumReadPrec+      enumPrefixOpticalFlowSessionCreateFlagBitsNV+      showTableOpticalFlowSessionCreateFlagBitsNV+      conNameOpticalFlowSessionCreateFlagBitsNV+      OpticalFlowSessionCreateFlagBitsNV++type OpticalFlowExecuteFlagsNV = OpticalFlowExecuteFlagBitsNV++-- | VkOpticalFlowExecuteFlagBitsNV - Bits specifying flags for a optical+-- flow vector calculation+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_optical_flow VK_NV_optical_flow>,+-- 'OpticalFlowExecuteFlagsNV'+newtype OpticalFlowExecuteFlagBitsNV = OpticalFlowExecuteFlagBitsNV Flags+  deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits)++-- | 'OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV' specifies that+-- temporal hints from previously generated flow vectors are not used. If+-- temporal hints are enabled, optical flow vectors from previous+-- 'cmdOpticalFlowExecuteNV' call are automatically used as hints for the+-- current 'cmdOpticalFlowExecuteNV' call, to take advantage of temporal+-- correlation in a video sequence. Temporal hints should be disabled if+-- there is a-priori knowledge of no temporal correlation (e.g. a scene+-- change, independent successive frame pairs).+pattern OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = OpticalFlowExecuteFlagBitsNV 0x00000001++conNameOpticalFlowExecuteFlagBitsNV :: String+conNameOpticalFlowExecuteFlagBitsNV = "OpticalFlowExecuteFlagBitsNV"++enumPrefixOpticalFlowExecuteFlagBitsNV :: String+enumPrefixOpticalFlowExecuteFlagBitsNV = "OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV"++showTableOpticalFlowExecuteFlagBitsNV :: [(OpticalFlowExecuteFlagBitsNV, String)]+showTableOpticalFlowExecuteFlagBitsNV =+  [+    ( OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV+    , ""+    )+  ]++instance Show OpticalFlowExecuteFlagBitsNV where+  showsPrec =+    enumShowsPrec+      enumPrefixOpticalFlowExecuteFlagBitsNV+      showTableOpticalFlowExecuteFlagBitsNV+      conNameOpticalFlowExecuteFlagBitsNV+      (\(OpticalFlowExecuteFlagBitsNV x) -> x)+      (\x -> showString "0x" . showHex x)++instance Read OpticalFlowExecuteFlagBitsNV where+  readPrec =+    enumReadPrec+      enumPrefixOpticalFlowExecuteFlagBitsNV+      showTableOpticalFlowExecuteFlagBitsNV+      conNameOpticalFlowExecuteFlagBitsNV+      OpticalFlowExecuteFlagBitsNV++type NV_OPTICAL_FLOW_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NV_OPTICAL_FLOW_SPEC_VERSION"+pattern NV_OPTICAL_FLOW_SPEC_VERSION :: forall a . Integral a => a+pattern NV_OPTICAL_FLOW_SPEC_VERSION = 1+++type NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow"++-- No documentation found for TopLevel "VK_NV_OPTICAL_FLOW_EXTENSION_NAME"+pattern NV_OPTICAL_FLOW_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow"+
+ src/Vulkan/Extensions/VK_NV_optical_flow.hs-boot view
@@ -0,0 +1,368 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_optical_flow - device extension+--+-- == VK_NV_optical_flow+--+-- [__Name String__]+--     @VK_NV_optical_flow@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     465+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_KHR_format_feature_flags2@ to be enabled for any+--         device-level functionality+--+--     -   Requires @VK_KHR_synchronization2@ to be enabled for any+--         device-level functionality+--+-- [__Contact__]+--+--     -   Carsten Rohde+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_optical_flow] @crohde%0A*Here describe the issue or question you have about the VK_NV_optical_flow extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-09-26+--+-- [__Contributors__]+--+--     -   Carsten Rohde, NVIDIA+--+--     -   Vipul Parashar, NVIDIA+--+--     -   Jeff Bolz, NVIDIA+--+--     -   Eric Werness, NVIDIA+--+-- == Description+--+-- Optical flow are fundamental algorithms in computer vision (CV) area.+-- This extension allows applications to estimate 2D displacement of pixels+-- between two frames.+--+-- == New Object Types+--+-- -   'Vulkan.Extensions.Handles.OpticalFlowSessionNV'+--+-- == New Commands+--+-- -   'bindOpticalFlowSessionImageNV'+--+-- -   'cmdOpticalFlowExecuteNV'+--+-- -   'createOpticalFlowSessionNV'+--+-- -   'destroyOpticalFlowSessionNV'+--+-- -   'getPhysicalDeviceOpticalFlowImageFormatsNV'+--+-- == New Structures+--+-- -   'OpticalFlowExecuteInfoNV'+--+-- -   'OpticalFlowImageFormatPropertiesNV'+--+-- -   'OpticalFlowSessionCreateInfoNV'+--+-- -   Extending 'OpticalFlowSessionCreateInfoNV':+--+--     -   'OpticalFlowSessionCreatePrivateDataInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceOpticalFlowFeaturesNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceImageFormatInfo2',+--     'Vulkan.Core10.Image.ImageCreateInfo':+--+--     -   'OpticalFlowImageFormatInfoNV'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceOpticalFlowPropertiesNV'+--+-- == New Enums+--+-- -   'OpticalFlowExecuteFlagBitsNV'+--+-- -   'OpticalFlowGridSizeFlagBitsNV'+--+-- -   'OpticalFlowPerformanceLevelNV'+--+-- -   'OpticalFlowSessionBindingPointNV'+--+-- -   'OpticalFlowSessionCreateFlagBitsNV'+--+-- -   'OpticalFlowUsageFlagBitsNV'+--+-- == New Bitmasks+--+-- -   'OpticalFlowExecuteFlagsNV'+--+-- -   'OpticalFlowGridSizeFlagsNV'+--+-- -   'OpticalFlowSessionCreateFlagsNV'+--+-- -   'OpticalFlowUsageFlagsNV'+--+-- == New Enum Constants+--+-- -   'NV_OPTICAL_FLOW_EXTENSION_NAME'+--+-- -   'NV_OPTICAL_FLOW_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core13.Enums.AccessFlags2.AccessFlagBits2':+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_READ_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.AccessFlags2.ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.Format.Format':+--+--     -   'Vulkan.Core10.Enums.Format.FORMAT_R16G16_S10_5_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.FormatFeatureFlags2.FormatFeatureFlagBits2':+--+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV'+--+--     -   'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.ObjectType.ObjectType':+--+--     -   'Vulkan.Core10.Enums.ObjectType.OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV'+--+-- -   Extending+--     'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlagBits2':+--+--     -   'Vulkan.Core13.Enums.PipelineStageFlags2.PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.QueueFlagBits.QueueFlagBits':+--+--     -   'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_OPTICAL_FLOW_BIT_NV'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV'+--+-- == Examples+--+-- > // Example querying available input formats+-- > VkOpticalFlowImageFormatInfoNV ofFormatInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV };+-- > ofFormatInfo.usage = VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV;+-- >+-- > uint32_t count = 0;+-- > vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, &ofFormatInfo, &count, NULL);+-- > VkOpticalFlowImageFormatPropertiesNV* fmt = new VkOpticalFlowImageFormatPropertiesNV[count];+-- > memset(fmt, 0, count  * sizeof(VkOpticalFlowImageFormatPropertiesNV));+-- > for (uint32_t i = 0; i < count; i++) {+-- >     fmt[i].sType = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV;+-- > }+-- > vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, &ofFormatInfo, &count, fmt);+-- >+-- > // Pick one of the available formats+-- > VkFormat inputFormat = fmt[0].format;+-- >+-- > // Check feature support for optimal tiling+-- > VkFormatProperties3 formatProperties3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 };+-- > VkFormatProperties2 formatProperties2 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, &formatProperties3 };+-- > vkGetPhysicalDeviceFormatProperties2(physicalDevice, inputFormat, &formatProperties2);+-- > if (!(formatProperties3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV)) {+-- >     return false;+-- > }+-- >+-- > // Check support for image creation parameters+-- > VkPhysicalDeviceImageFormatInfo2 imageFormatInfo2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, &ofFormatInfo };+-- > imageFormatInfo2.format = inputFormat;+-- > imageFormatInfo2.type = VK_IMAGE_TYPE_2D;+-- > imageFormatInfo2.tiling = VK_IMAGE_TILING_OPTIMAL;+-- > imageFormatInfo2.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;+-- >+-- > VkImageFormatProperties2 imageFormatProperties2 = { VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 };+-- > if (vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, &imageFormatInfo2, &imageFormatProperties2) != VK_SUCCESS) {+-- >     return false;+-- > }+-- >+-- > VkImageCreateInfo imageCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, &ofFormatInfo };+-- > imageCreateInfo.imageType = VK_IMAGE_TYPE_2D;+-- > imageCreateInfo.format = inputFormat;+-- > imageCreateInfo.extent = { width, height, (uint32_t)1};+-- > imageCreateInfo.mipLevels = 1;+-- > imageCreateInfo.arrayLayers = 1;+-- > imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;+-- > imageCreateInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;;+-- > imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;+-- >+-- > vkCreateImage(device, &imageCreateInfo, NULL, &input);+-- > "allocate memory, bind image, create view"+-- >+-- > "do the same for reference and output"+-- >+-- > // Create optical flow session+-- > VkOpticalFlowSessionCreateInfoNV sessionCreateInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV };+-- > sessionCreateInfo.width = width;+-- > sessionCreateInfo.height = height;+-- > sessionCreateInfo.imageFormat = inputFormat;+-- > sessionCreateInfo.flowVectorFormat = outputFormat;+-- > sessionCreateInfo.outputGridSize = VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV;+-- > sessionCreateInfo.performanceLevel = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV;+-- > VkOpticalFlowSessionNV session;+-- > vkCreateOpticalFlowSessionNV(device, &sessionCreateInfo, NULL, &session);+-- >+-- > "allocate command buffer"+-- >+-- > "transfer images to VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"+-- > "transfer input images to VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV and output image to VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"+-- >+-- > vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV, inputView, VK_IMAGE_LAYOUT_GENERAL);+-- > vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV, refView, VK_IMAGE_LAYOUT_GENERAL);+-- > vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV, outputView, VK_IMAGE_LAYOUT_GENERAL);+-- >+-- > VkOpticalFlowExecuteInfoNV opticalFlowExecuteInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV };+-- > vkCmdOpticalFlowExecuteNV(cmd, session, &opticalFlowExecuteInfo);+-- >+-- > "submit command buffer"+--+-- == Version History+--+-- -   Revision 1, 2022-09-26 (Carsten Rohde)+--+--     -   Internal revisions+--+-- == See Also+--+-- 'OpticalFlowExecuteFlagBitsNV', 'OpticalFlowExecuteFlagsNV',+-- 'OpticalFlowExecuteInfoNV', 'OpticalFlowGridSizeFlagBitsNV',+-- 'OpticalFlowGridSizeFlagsNV', 'OpticalFlowImageFormatInfoNV',+-- 'OpticalFlowImageFormatPropertiesNV', 'OpticalFlowPerformanceLevelNV',+-- 'OpticalFlowSessionBindingPointNV',+-- 'OpticalFlowSessionCreateFlagBitsNV', 'OpticalFlowSessionCreateFlagsNV',+-- 'OpticalFlowSessionCreateInfoNV',+-- 'OpticalFlowSessionCreatePrivateDataInfoNV',+-- 'Vulkan.Extensions.Handles.OpticalFlowSessionNV',+-- 'OpticalFlowUsageFlagBitsNV', 'OpticalFlowUsageFlagsNV',+-- 'PhysicalDeviceOpticalFlowFeaturesNV',+-- 'PhysicalDeviceOpticalFlowPropertiesNV',+-- 'bindOpticalFlowSessionImageNV', 'cmdOpticalFlowExecuteNV',+-- 'createOpticalFlowSessionNV', 'destroyOpticalFlowSessionNV',+-- 'getPhysicalDeviceOpticalFlowImageFormatsNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_optical_flow Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_optical_flow  ( OpticalFlowExecuteInfoNV+                                             , OpticalFlowImageFormatInfoNV+                                             , OpticalFlowImageFormatPropertiesNV+                                             , OpticalFlowSessionCreateInfoNV+                                             , OpticalFlowSessionCreatePrivateDataInfoNV+                                             , PhysicalDeviceOpticalFlowFeaturesNV+                                             , PhysicalDeviceOpticalFlowPropertiesNV+                                             , OpticalFlowSessionBindingPointNV+                                             ) 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 OpticalFlowExecuteInfoNV++instance ToCStruct OpticalFlowExecuteInfoNV+instance Show OpticalFlowExecuteInfoNV++instance FromCStruct OpticalFlowExecuteInfoNV+++data OpticalFlowImageFormatInfoNV++instance ToCStruct OpticalFlowImageFormatInfoNV+instance Show OpticalFlowImageFormatInfoNV++instance FromCStruct OpticalFlowImageFormatInfoNV+++data OpticalFlowImageFormatPropertiesNV++instance ToCStruct OpticalFlowImageFormatPropertiesNV+instance Show OpticalFlowImageFormatPropertiesNV++instance FromCStruct OpticalFlowImageFormatPropertiesNV+++type role OpticalFlowSessionCreateInfoNV nominal+data OpticalFlowSessionCreateInfoNV (es :: [Type])++instance ( Extendss OpticalFlowSessionCreateInfoNV es+         , PokeChain es ) => ToCStruct (OpticalFlowSessionCreateInfoNV es)+instance Show (Chain es) => Show (OpticalFlowSessionCreateInfoNV es)++instance ( Extendss OpticalFlowSessionCreateInfoNV es+         , PeekChain es ) => FromCStruct (OpticalFlowSessionCreateInfoNV es)+++data OpticalFlowSessionCreatePrivateDataInfoNV++instance ToCStruct OpticalFlowSessionCreatePrivateDataInfoNV+instance Show OpticalFlowSessionCreatePrivateDataInfoNV++instance FromCStruct OpticalFlowSessionCreatePrivateDataInfoNV+++data PhysicalDeviceOpticalFlowFeaturesNV++instance ToCStruct PhysicalDeviceOpticalFlowFeaturesNV+instance Show PhysicalDeviceOpticalFlowFeaturesNV++instance FromCStruct PhysicalDeviceOpticalFlowFeaturesNV+++data PhysicalDeviceOpticalFlowPropertiesNV++instance ToCStruct PhysicalDeviceOpticalFlowPropertiesNV+instance Show PhysicalDeviceOpticalFlowPropertiesNV++instance FromCStruct PhysicalDeviceOpticalFlowPropertiesNV+++data OpticalFlowSessionBindingPointNV+
+ src/Vulkan/Extensions/VK_NV_present_barrier.hs view
@@ -0,0 +1,374 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_present_barrier - device extension+--+-- == VK_NV_present_barrier+--+-- [__Name String__]+--     @VK_NV_present_barrier@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     293+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_KHR_surface@ to be enabled for any device-level+--         functionality+--+--     -   Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+--         any device-level functionality+--+--     -   Requires @VK_KHR_swapchain@ to be enabled for any device-level+--         functionality+--+-- [__Contact__]+--+--     -   Liya Li+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_present_barrier] @liyli%0A*Here describe the issue or question you have about the VK_NV_present_barrier extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-05-16+--+-- [__Contributors__]+--+--     -   Liya Li, Nvidia+--+--     -   Martin Schwarzer, Nvidia+--+--     -   Andy Wolf, Nvidia+--+--     -   Ian Williams, Nvidia+--+--     -   Ben Morris, Nvidia+--+--     -   James Jones, Nvidia+--+--     -   Jeff Juliano, Nvidia+--+-- == Description+--+-- This extension adds support for synchronizing corresponding presentation+-- requests across multiple swapchains using the /present barrier/.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePresentBarrierFeaturesNV'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR':+--+--     -   'SurfaceCapabilitiesPresentBarrierNV'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR':+--+--     -   'SwapchainPresentBarrierCreateInfoNV'+--+-- == New Enum Constants+--+-- -   'NV_PRESENT_BARRIER_EXTENSION_NAME'+--+-- -   'NV_PRESENT_BARRIER_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV'+--+-- == Issues+--+-- 1) Is there a query interface to check if a swapchain is using the+-- present barrier?+--+-- __RESOLVED__. There is no such query interface. When creating a+-- swapchain, an application can specify to use the /present barrier/, and+-- if the swapchain is created successfully, this swapchain will be using+-- the present barrier.+--+-- 2) Do we need an extra interface to set up the present barrier across+-- distributed systems?+--+-- __RESOLVED__. If the required hardware is presented in the system, and+-- all settings for the physical synchronization with other systems are set+-- up, an implementation manages the configuration automatically when+-- creating a swapchain, without any extra calls from the application.+--+-- == Version History+--+-- -   Revision 1, 2022-07-20+--+--     -   Initial version+--+-- == See Also+--+-- 'PhysicalDevicePresentBarrierFeaturesNV',+-- 'SurfaceCapabilitiesPresentBarrierNV',+-- 'SwapchainPresentBarrierCreateInfoNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_present_barrier Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_present_barrier  ( PhysicalDevicePresentBarrierFeaturesNV(..)+                                                , SurfaceCapabilitiesPresentBarrierNV(..)+                                                , SwapchainPresentBarrierCreateInfoNV(..)+                                                , NV_PRESENT_BARRIER_SPEC_VERSION+                                                , pattern NV_PRESENT_BARRIER_SPEC_VERSION+                                                , NV_PRESENT_BARRIER_EXTENSION_NAME+                                                , pattern NV_PRESENT_BARRIER_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_PRESENT_BARRIER_FEATURES_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV))+-- | VkPhysicalDevicePresentBarrierFeaturesNV - Structure indicating support+-- for VK_NV_present_barrier extension+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDevicePresentBarrierFeaturesNV' 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. 'PhysicalDevicePresentBarrierFeaturesNV' /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_NV_present_barrier VK_NV_present_barrier>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePresentBarrierFeaturesNV = PhysicalDevicePresentBarrierFeaturesNV+  { -- | #features-presentBarrier# @presentBarrier@ indicates that the+    -- implementation supports the present barrier feature.+    presentBarrier :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePresentBarrierFeaturesNV)+#endif+deriving instance Show PhysicalDevicePresentBarrierFeaturesNV++instance ToCStruct PhysicalDevicePresentBarrierFeaturesNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDevicePresentBarrierFeaturesNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentBarrier))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDevicePresentBarrierFeaturesNV where+  peekCStruct p = do+    presentBarrier <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDevicePresentBarrierFeaturesNV+             (bool32ToBool presentBarrier)++instance Storable PhysicalDevicePresentBarrierFeaturesNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePresentBarrierFeaturesNV where+  zero = PhysicalDevicePresentBarrierFeaturesNV+           zero+++-- | VkSurfaceCapabilitiesPresentBarrierNV - Structure describing present+-- barrier capabilities of a surface+--+-- = Description+--+-- This structure /can/ be included in the @pNext@ chain of+-- 'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR'+-- to determine support for present barrier access. If+-- @presentBarrierSupported@ is 'Vulkan.Core10.FundamentalTypes.FALSE', it+-- indicates that the present barrier feature is not obtainable for this+-- surface.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_present_barrier VK_NV_present_barrier>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SurfaceCapabilitiesPresentBarrierNV = SurfaceCapabilitiesPresentBarrierNV+  { -- | @presentBarrierSupported@ is a boolean describing whether the surface is+    -- able to make use of the present barrier feature.+    presentBarrierSupported :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SurfaceCapabilitiesPresentBarrierNV)+#endif+deriving instance Show SurfaceCapabilitiesPresentBarrierNV++instance ToCStruct SurfaceCapabilitiesPresentBarrierNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SurfaceCapabilitiesPresentBarrierNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentBarrierSupported))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct SurfaceCapabilitiesPresentBarrierNV where+  peekCStruct p = do+    presentBarrierSupported <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ SurfaceCapabilitiesPresentBarrierNV+             (bool32ToBool presentBarrierSupported)++instance Storable SurfaceCapabilitiesPresentBarrierNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SurfaceCapabilitiesPresentBarrierNV where+  zero = SurfaceCapabilitiesPresentBarrierNV+           zero+++-- | VkSwapchainPresentBarrierCreateInfoNV - specify the present barrier+-- membership of this swapchain+--+-- = Description+--+-- If the @pNext@ chain of+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR' does not+-- include this structure, the default value for @presentBarrierEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.FALSE', meaning the swapchain does not+-- request to use the present barrier. Additionally, when recreating a+-- swapchain that was using the present barrier, and the @pNext@ chain of+-- 'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR' does not+-- include this structure, it means the swapchain will stop using the+-- present barrier.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_present_barrier VK_NV_present_barrier>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data SwapchainPresentBarrierCreateInfoNV = SwapchainPresentBarrierCreateInfoNV+  { -- | @presentBarrierEnable@ is a boolean value indicating a request for using+    -- the /present barrier/.+    presentBarrierEnable :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (SwapchainPresentBarrierCreateInfoNV)+#endif+deriving instance Show SwapchainPresentBarrierCreateInfoNV++instance ToCStruct SwapchainPresentBarrierCreateInfoNV where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p SwapchainPresentBarrierCreateInfoNV{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (presentBarrierEnable))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct SwapchainPresentBarrierCreateInfoNV where+  peekCStruct p = do+    presentBarrierEnable <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ SwapchainPresentBarrierCreateInfoNV+             (bool32ToBool presentBarrierEnable)++instance Storable SwapchainPresentBarrierCreateInfoNV where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero SwapchainPresentBarrierCreateInfoNV where+  zero = SwapchainPresentBarrierCreateInfoNV+           zero+++type NV_PRESENT_BARRIER_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NV_PRESENT_BARRIER_SPEC_VERSION"+pattern NV_PRESENT_BARRIER_SPEC_VERSION :: forall a . Integral a => a+pattern NV_PRESENT_BARRIER_SPEC_VERSION = 1+++type NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier"++-- No documentation found for TopLevel "VK_NV_PRESENT_BARRIER_EXTENSION_NAME"+pattern NV_PRESENT_BARRIER_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_PRESENT_BARRIER_EXTENSION_NAME = "VK_NV_present_barrier"+
+ src/Vulkan/Extensions/VK_NV_present_barrier.hs-boot view
@@ -0,0 +1,167 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_present_barrier - device extension+--+-- == VK_NV_present_barrier+--+-- [__Name String__]+--     @VK_NV_present_barrier@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     293+--+-- [__Revision__]+--     1+--+-- [__Extension and Version Dependencies__]+--+--     -   Requires support for Vulkan 1.0+--+--     -   Requires @VK_KHR_get_physical_device_properties2@ to be enabled+--         for any device-level functionality+--+--     -   Requires @VK_KHR_surface@ to be enabled for any device-level+--         functionality+--+--     -   Requires @VK_KHR_get_surface_capabilities2@ to be enabled for+--         any device-level functionality+--+--     -   Requires @VK_KHR_swapchain@ to be enabled for any device-level+--         functionality+--+-- [__Contact__]+--+--     -   Liya Li+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_NV_present_barrier] @liyli%0A*Here describe the issue or question you have about the VK_NV_present_barrier extension* >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2022-05-16+--+-- [__Contributors__]+--+--     -   Liya Li, Nvidia+--+--     -   Martin Schwarzer, Nvidia+--+--     -   Andy Wolf, Nvidia+--+--     -   Ian Williams, Nvidia+--+--     -   Ben Morris, Nvidia+--+--     -   James Jones, Nvidia+--+--     -   Jeff Juliano, Nvidia+--+-- == Description+--+-- This extension adds support for synchronizing corresponding presentation+-- requests across multiple swapchains using the /present barrier/.+--+-- == New Structures+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDevicePresentBarrierFeaturesNV'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_get_surface_capabilities2.SurfaceCapabilities2KHR':+--+--     -   'SurfaceCapabilitiesPresentBarrierNV'+--+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_swapchain.SwapchainCreateInfoKHR':+--+--     -   'SwapchainPresentBarrierCreateInfoNV'+--+-- == New Enum Constants+--+-- -   'NV_PRESENT_BARRIER_EXTENSION_NAME'+--+-- -   'NV_PRESENT_BARRIER_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV'+--+-- == Issues+--+-- 1) Is there a query interface to check if a swapchain is using the+-- present barrier?+--+-- __RESOLVED__. There is no such query interface. When creating a+-- swapchain, an application can specify to use the /present barrier/, and+-- if the swapchain is created successfully, this swapchain will be using+-- the present barrier.+--+-- 2) Do we need an extra interface to set up the present barrier across+-- distributed systems?+--+-- __RESOLVED__. If the required hardware is presented in the system, and+-- all settings for the physical synchronization with other systems are set+-- up, an implementation manages the configuration automatically when+-- creating a swapchain, without any extra calls from the application.+--+-- == Version History+--+-- -   Revision 1, 2022-07-20+--+--     -   Initial version+--+-- == See Also+--+-- 'PhysicalDevicePresentBarrierFeaturesNV',+-- 'SurfaceCapabilitiesPresentBarrierNV',+-- 'SwapchainPresentBarrierCreateInfoNV'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_NV_present_barrier Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_present_barrier  ( PhysicalDevicePresentBarrierFeaturesNV+                                                , SurfaceCapabilitiesPresentBarrierNV+                                                , SwapchainPresentBarrierCreateInfoNV+                                                ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDevicePresentBarrierFeaturesNV++instance ToCStruct PhysicalDevicePresentBarrierFeaturesNV+instance Show PhysicalDevicePresentBarrierFeaturesNV++instance FromCStruct PhysicalDevicePresentBarrierFeaturesNV+++data SurfaceCapabilitiesPresentBarrierNV++instance ToCStruct SurfaceCapabilitiesPresentBarrierNV+instance Show SurfaceCapabilitiesPresentBarrierNV++instance FromCStruct SurfaceCapabilitiesPresentBarrierNV+++data SwapchainPresentBarrierCreateInfoNV++instance ToCStruct SwapchainPresentBarrierCreateInfoNV+instance Show SwapchainPresentBarrierCreateInfoNV++instance FromCStruct SwapchainPresentBarrierCreateInfoNV+
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -847,7 +847,10 @@   unless (vkCompileDeferredNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCompileDeferredNV is null" Nothing Nothing   let vkCompileDeferredNV' = mkVkCompileDeferredNV vkCompileDeferredNVPtr-  r <- traceAroundEvent "vkCompileDeferredNV" (vkCompileDeferredNV' (deviceHandle (device)) (pipeline) (shader))+  r <- traceAroundEvent "vkCompileDeferredNV" (vkCompileDeferredNV'+                                                 (deviceHandle (device))+                                                 (pipeline)+                                                 (shader))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -921,7 +924,9 @@                                  -- chapter.                                  ("allocator" ::: Maybe AllocationCallbacks)                               -> io (AccelerationStructureNV)-createAccelerationStructureNV device createInfo allocator = liftIO . evalContT $ do+createAccelerationStructureNV device+                                createInfo+                                allocator = liftIO . evalContT $ do   let vkCreateAccelerationStructureNVPtr = pVkCreateAccelerationStructureNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateAccelerationStructureNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateAccelerationStructureNV is null" Nothing Nothing@@ -931,7 +936,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPAccelerationStructure <- ContT $ bracket (callocBytes @AccelerationStructureNV 8) free-  r <- lift $ traceAroundEvent "vkCreateAccelerationStructureNV" (vkCreateAccelerationStructureNV' (deviceHandle (device)) pCreateInfo pAllocator (pPAccelerationStructure))+  r <- lift $ traceAroundEvent "vkCreateAccelerationStructureNV" (vkCreateAccelerationStructureNV'+                                                                    (deviceHandle (device))+                                                                    pCreateInfo+                                                                    pAllocator+                                                                    (pPAccelerationStructure))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pAccelerationStructure <- lift $ peek @AccelerationStructureNV pPAccelerationStructure   pure $ (pAccelerationStructure)@@ -1018,7 +1027,9 @@                                   -- chapter.                                   ("allocator" ::: Maybe AllocationCallbacks)                                -> io ()-destroyAccelerationStructureNV device accelerationStructure allocator = liftIO . evalContT $ do+destroyAccelerationStructureNV device+                                 accelerationStructure+                                 allocator = liftIO . evalContT $ do   let vkDestroyAccelerationStructureNVPtr = pVkDestroyAccelerationStructureNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkDestroyAccelerationStructureNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkDestroyAccelerationStructureNV is null" Nothing Nothing@@ -1026,7 +1037,10 @@   pAllocator <- case (allocator) of     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)-  lift $ traceAroundEvent "vkDestroyAccelerationStructureNV" (vkDestroyAccelerationStructureNV' (deviceHandle (device)) (accelerationStructure) pAllocator)+  lift $ traceAroundEvent "vkDestroyAccelerationStructureNV" (vkDestroyAccelerationStructureNV'+                                                                (deviceHandle (device))+                                                                (accelerationStructure)+                                                                pAllocator)   pure $ ()  @@ -1049,7 +1063,10 @@ -- 'Vulkan.Core10.Handles.Device', -- 'Vulkan.Extensions.VK_KHR_get_memory_requirements2.MemoryRequirements2KHR' getAccelerationStructureMemoryRequirementsNV :: forall a io-                                              . (Extendss MemoryRequirements2KHR a, PokeChain a, PeekChain a, MonadIO io)+                                              . ( Extendss MemoryRequirements2KHR a+                                                , PokeChain a+                                                , PeekChain a+                                                , MonadIO io )                                              => -- | @device@ is the logical device on which the acceleration structure was                                                 -- created.                                                 --@@ -1065,14 +1082,18 @@                                                 -- 'AccelerationStructureMemoryRequirementsInfoNV' structure                                                 AccelerationStructureMemoryRequirementsInfoNV                                              -> io (MemoryRequirements2KHR a)-getAccelerationStructureMemoryRequirementsNV device info = liftIO . evalContT $ do+getAccelerationStructureMemoryRequirementsNV device+                                               info = liftIO . evalContT $ do   let vkGetAccelerationStructureMemoryRequirementsNVPtr = pVkGetAccelerationStructureMemoryRequirementsNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetAccelerationStructureMemoryRequirementsNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureMemoryRequirementsNV is null" Nothing Nothing   let vkGetAccelerationStructureMemoryRequirementsNV' = mkVkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNVPtr   pInfo <- ContT $ withCStruct (info)   pPMemoryRequirements <- ContT (withZeroCStruct @(MemoryRequirements2KHR _))-  lift $ traceAroundEvent "vkGetAccelerationStructureMemoryRequirementsNV" (vkGetAccelerationStructureMemoryRequirementsNV' (deviceHandle (device)) pInfo (forgetExtensions (pPMemoryRequirements)))+  lift $ traceAroundEvent "vkGetAccelerationStructureMemoryRequirementsNV" (vkGetAccelerationStructureMemoryRequirementsNV'+                                                                              (deviceHandle (device))+                                                                              pInfo+                                                                              (forgetExtensions (pPMemoryRequirements)))   pMemoryRequirements <- lift $ peekCStruct @(MemoryRequirements2KHR _) pPMemoryRequirements   pure $ (pMemoryRequirements) @@ -1126,7 +1147,10 @@   let vkBindAccelerationStructureMemoryNV' = mkVkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNVPtr   pPBindInfos <- ContT $ allocaBytes @BindAccelerationStructureMemoryInfoNV ((Data.Vector.length (bindInfos)) * 56)   Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPBindInfos `plusPtr` (56 * (i)) :: Ptr BindAccelerationStructureMemoryInfoNV) (e) . ($ ())) (bindInfos)-  r <- lift $ traceAroundEvent "vkBindAccelerationStructureMemoryNV" (vkBindAccelerationStructureMemoryNV' (deviceHandle (device)) ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32)) (pPBindInfos))+  r <- lift $ traceAroundEvent "vkBindAccelerationStructureMemoryNV" (vkBindAccelerationStructureMemoryNV'+                                                                        (deviceHandle (device))+                                                                        ((fromIntegral (Data.Vector.length $ (bindInfos)) :: Word32))+                                                                        (pPBindInfos))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))  @@ -1257,7 +1281,11 @@   unless (vkCmdCopyAccelerationStructureNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyAccelerationStructureNV is null" Nothing Nothing   let vkCmdCopyAccelerationStructureNV' = mkVkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNVPtr-  traceAroundEvent "vkCmdCopyAccelerationStructureNV" (vkCmdCopyAccelerationStructureNV' (commandBufferHandle (commandBuffer)) (dst) (src) (mode))+  traceAroundEvent "vkCmdCopyAccelerationStructureNV" (vkCmdCopyAccelerationStructureNV'+                                                         (commandBufferHandle (commandBuffer))+                                                         (dst)+                                                         (src)+                                                         (mode))   pure $ ()  @@ -1397,14 +1425,24 @@                                               -- contain the @accelerationStructureCount@ number of results.                                               ("firstQuery" ::: Word32)                                            -> io ()-cmdWriteAccelerationStructuresPropertiesNV commandBuffer accelerationStructures queryType queryPool firstQuery = liftIO . evalContT $ do+cmdWriteAccelerationStructuresPropertiesNV commandBuffer+                                             accelerationStructures+                                             queryType+                                             queryPool+                                             firstQuery = liftIO . evalContT $ do   let vkCmdWriteAccelerationStructuresPropertiesNVPtr = pVkCmdWriteAccelerationStructuresPropertiesNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdWriteAccelerationStructuresPropertiesNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdWriteAccelerationStructuresPropertiesNV is null" Nothing Nothing   let vkCmdWriteAccelerationStructuresPropertiesNV' = mkVkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNVPtr   pPAccelerationStructures <- ContT $ allocaBytes @AccelerationStructureNV ((Data.Vector.length (accelerationStructures)) * 8)   lift $ Data.Vector.imapM_ (\i e -> poke (pPAccelerationStructures `plusPtr` (8 * (i)) :: Ptr AccelerationStructureNV) (e)) (accelerationStructures)-  lift $ traceAroundEvent "vkCmdWriteAccelerationStructuresPropertiesNV" (vkCmdWriteAccelerationStructuresPropertiesNV' (commandBufferHandle (commandBuffer)) ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32)) (pPAccelerationStructures) (queryType) (queryPool) (firstQuery))+  lift $ traceAroundEvent "vkCmdWriteAccelerationStructuresPropertiesNV" (vkCmdWriteAccelerationStructuresPropertiesNV'+                                                                            (commandBufferHandle (commandBuffer))+                                                                            ((fromIntegral (Data.Vector.length $ (accelerationStructures)) :: Word32))+                                                                            (pPAccelerationStructures)+                                                                            (queryType)+                                                                            (queryPool)+                                                                            (firstQuery))   pure $ ()  @@ -1614,13 +1652,30 @@                                    -- @scratch@ that will be used as a scratch memory.                                    ("scratchOffset" ::: DeviceSize)                                 -> io ()-cmdBuildAccelerationStructureNV commandBuffer info instanceData instanceOffset update dst src scratch scratchOffset = liftIO . evalContT $ do+cmdBuildAccelerationStructureNV commandBuffer+                                  info+                                  instanceData+                                  instanceOffset+                                  update+                                  dst+                                  src+                                  scratch+                                  scratchOffset = liftIO . evalContT $ do   let vkCmdBuildAccelerationStructureNVPtr = pVkCmdBuildAccelerationStructureNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdBuildAccelerationStructureNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBuildAccelerationStructureNV is null" Nothing Nothing   let vkCmdBuildAccelerationStructureNV' = mkVkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNVPtr   pInfo <- ContT $ withCStruct (info)-  lift $ traceAroundEvent "vkCmdBuildAccelerationStructureNV" (vkCmdBuildAccelerationStructureNV' (commandBufferHandle (commandBuffer)) pInfo (instanceData) (instanceOffset) (boolToBool32 (update)) (dst) (src) (scratch) (scratchOffset))+  lift $ traceAroundEvent "vkCmdBuildAccelerationStructureNV" (vkCmdBuildAccelerationStructureNV'+                                                                 (commandBufferHandle (commandBuffer))+                                                                 pInfo+                                                                 (instanceData)+                                                                 (instanceOffset)+                                                                 (boolToBool32 (update))+                                                                 (dst)+                                                                 (src)+                                                                 (scratch)+                                                                 (scratchOffset))   pure $ ()  @@ -2217,12 +2272,41 @@                -> -- | @depth@ is depth of the ray trace query dimensions.                   ("depth" ::: Word32)                -> io ()-cmdTraceRaysNV commandBuffer raygenShaderBindingTableBuffer raygenShaderBindingOffset missShaderBindingTableBuffer missShaderBindingOffset missShaderBindingStride hitShaderBindingTableBuffer hitShaderBindingOffset hitShaderBindingStride callableShaderBindingTableBuffer callableShaderBindingOffset callableShaderBindingStride width height depth = liftIO $ do+cmdTraceRaysNV commandBuffer+                 raygenShaderBindingTableBuffer+                 raygenShaderBindingOffset+                 missShaderBindingTableBuffer+                 missShaderBindingOffset+                 missShaderBindingStride+                 hitShaderBindingTableBuffer+                 hitShaderBindingOffset+                 hitShaderBindingStride+                 callableShaderBindingTableBuffer+                 callableShaderBindingOffset+                 callableShaderBindingStride+                 width+                 height+                 depth = liftIO $ do   let vkCmdTraceRaysNVPtr = pVkCmdTraceRaysNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   unless (vkCmdTraceRaysNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdTraceRaysNV is null" Nothing Nothing   let vkCmdTraceRaysNV' = mkVkCmdTraceRaysNV vkCmdTraceRaysNVPtr-  traceAroundEvent "vkCmdTraceRaysNV" (vkCmdTraceRaysNV' (commandBufferHandle (commandBuffer)) (raygenShaderBindingTableBuffer) (raygenShaderBindingOffset) (missShaderBindingTableBuffer) (missShaderBindingOffset) (missShaderBindingStride) (hitShaderBindingTableBuffer) (hitShaderBindingOffset) (hitShaderBindingStride) (callableShaderBindingTableBuffer) (callableShaderBindingOffset) (callableShaderBindingStride) (width) (height) (depth))+  traceAroundEvent "vkCmdTraceRaysNV" (vkCmdTraceRaysNV'+                                         (commandBufferHandle (commandBuffer))+                                         (raygenShaderBindingTableBuffer)+                                         (raygenShaderBindingOffset)+                                         (missShaderBindingTableBuffer)+                                         (missShaderBindingOffset)+                                         (missShaderBindingStride)+                                         (hitShaderBindingTableBuffer)+                                         (hitShaderBindingOffset)+                                         (hitShaderBindingStride)+                                         (callableShaderBindingTableBuffer)+                                         (callableShaderBindingOffset)+                                         (callableShaderBindingStride)+                                         (width)+                                         (height)+                                         (depth))   pure $ ()  @@ -2291,12 +2375,19 @@                                     -- be a valid pointer to an array of @dataSize@ bytes                                     ("data" ::: Ptr ())                                  -> io ()-getAccelerationStructureHandleNV device accelerationStructure dataSize data' = liftIO $ do+getAccelerationStructureHandleNV device+                                   accelerationStructure+                                   dataSize+                                   data' = liftIO $ do   let vkGetAccelerationStructureHandleNVPtr = pVkGetAccelerationStructureHandleNV (case device of Device{deviceCmds} -> deviceCmds)   unless (vkGetAccelerationStructureHandleNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetAccelerationStructureHandleNV is null" Nothing Nothing   let vkGetAccelerationStructureHandleNV' = mkVkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNVPtr-  r <- traceAroundEvent "vkGetAccelerationStructureHandleNV" (vkGetAccelerationStructureHandleNV' (deviceHandle (device)) (accelerationStructure) (CSize (dataSize)) (data'))+  r <- traceAroundEvent "vkGetAccelerationStructureHandleNV" (vkGetAccelerationStructureHandleNV'+                                                                (deviceHandle (device))+                                                                (accelerationStructure)+                                                                (CSize (dataSize))+                                                                (data'))   when (r < SUCCESS) (throwIO (VulkanException r))  @@ -2407,7 +2498,10 @@                                -- chapter.                                ("allocator" ::: Maybe AllocationCallbacks)                             -> io (Result, ("pipelines" ::: Vector Pipeline))-createRayTracingPipelinesNV device pipelineCache createInfos allocator = liftIO . evalContT $ do+createRayTracingPipelinesNV device+                              pipelineCache+                              createInfos+                              allocator = liftIO . evalContT $ do   let vkCreateRayTracingPipelinesNVPtr = pVkCreateRayTracingPipelinesNV (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkCreateRayTracingPipelinesNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCreateRayTracingPipelinesNV is null" Nothing Nothing@@ -2418,7 +2512,13 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPPipelines <- ContT $ bracket (callocBytes @Pipeline ((fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) * 8)) free-  r <- lift $ traceAroundEvent "vkCreateRayTracingPipelinesNV" (vkCreateRayTracingPipelinesNV' (deviceHandle (device)) (pipelineCache) ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32)) (forgetExtensions (pPCreateInfos)) pAllocator (pPPipelines))+  r <- lift $ traceAroundEvent "vkCreateRayTracingPipelinesNV" (vkCreateRayTracingPipelinesNV'+                                                                  (deviceHandle (device))+                                                                  (pipelineCache)+                                                                  ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))+                                                                  (forgetExtensions (pPCreateInfos))+                                                                  pAllocator+                                                                  (pPPipelines))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pPipelines <- lift $ generateM (fromIntegral ((fromIntegral (Data.Vector.length $ (createInfos)) :: Word32))) (\i -> peek @Pipeline ((pPPipelines `advancePtrBytes` (8 * (i)) :: Ptr Pipeline)))   pure $ (r, pPipelines)@@ -2434,7 +2534,9 @@ withRayTracingPipelinesNV :: forall io r . MonadIO io => Device -> PipelineCache -> Vector (SomeStruct RayTracingPipelineCreateInfoNV) -> Maybe AllocationCallbacks -> (io (Result, Vector Pipeline) -> ((Result, Vector Pipeline) -> io ()) -> r) -> r withRayTracingPipelinesNV device pipelineCache pCreateInfos pAllocator b =   b (createRayTracingPipelinesNV device pipelineCache pCreateInfos pAllocator)-    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device o1Elem pAllocator) o1)+    (\(_, o1) -> traverse_ (\o1Elem -> destroyPipeline device+                                                         o1Elem+                                                         pAllocator) o1)   -- No documentation found for TopLevel "VK_SHADER_STAGE_RAYGEN_BIT_NV"@@ -2704,7 +2806,11 @@     anyHitShader <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))     intersectionShader <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))     pure $ RayTracingShaderGroupCreateInfoNV-             type' generalShader closestHitShader anyHitShader intersectionShader+             type'+             generalShader+             closestHitShader+             anyHitShader+             intersectionShader  instance Storable RayTracingShaderGroupCreateInfoNV where   sizeOf ~_ = 40@@ -2853,6 +2959,10 @@ --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_CALLABLE_BIT_KHR' --+-- -   #VUID-VkRayTracingPipelineCreateInfoNV-flags-07402# @flags@ /must/+--     not include+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT'+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkRayTracingPipelineCreateInfoNV-sType-sType# @sType@ /must/@@ -2948,7 +3058,8 @@     | Just Refl <- eqT @e @PipelineCreationFeedbackCreateInfo = Just f     | otherwise = Nothing -instance (Extendss RayTracingPipelineCreateInfoNV es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoNV es) where+instance ( Extendss RayTracingPipelineCreateInfoNV es+         , PokeChain es ) => ToCStruct (RayTracingPipelineCreateInfoNV es) where   withCStruct x f = allocaBytes 80 $ \p -> pokeCStruct p x (f p)   pokeCStruct p RayTracingPipelineCreateInfoNV{..} f = evalContT $ do     lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV)@@ -2979,7 +3090,8 @@     lift $ poke ((p `plusPtr` 72 :: Ptr Int32)) (zero)     lift $ f -instance (Extendss RayTracingPipelineCreateInfoNV es, PeekChain es) => FromCStruct (RayTracingPipelineCreateInfoNV es) where+instance ( Extendss RayTracingPipelineCreateInfoNV es+         , PeekChain es ) => FromCStruct (RayTracingPipelineCreateInfoNV es) where   peekCStruct p = do     pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))     next <- peekChain (castPtr pNext)@@ -2995,7 +3107,14 @@     basePipelineHandle <- peek @Pipeline ((p `plusPtr` 64 :: Ptr Pipeline))     basePipelineIndex <- peek @Int32 ((p `plusPtr` 72 :: Ptr Int32))     pure $ RayTracingPipelineCreateInfoNV-             next flags pStages' pGroups' maxRecursionDepth layout basePipelineHandle basePipelineIndex+             next+             flags+             pStages'+             pGroups'+             maxRecursionDepth+             layout+             basePipelineHandle+             basePipelineIndex  instance es ~ '[] => Zero (RayTracingPipelineCreateInfoNV es) where   zero = RayTracingPipelineCreateInfoNV@@ -3187,7 +3306,17 @@     transformData <- peek @Buffer ((p `plusPtr` 80 :: Ptr Buffer))     transformOffset <- peek @DeviceSize ((p `plusPtr` 88 :: Ptr DeviceSize))     pure $ GeometryTrianglesNV-             vertexData vertexOffset vertexCount vertexStride vertexFormat indexData indexOffset indexCount indexType transformData transformOffset+             vertexData+             vertexOffset+             vertexCount+             vertexStride+             vertexFormat+             indexData+             indexOffset+             indexCount+             indexType+             transformData+             transformOffset  instance Storable GeometryTrianglesNV where   sizeOf ~_ = 96@@ -4056,7 +4185,14 @@     maxTriangleCount <- peek @Word64 ((p `plusPtr` 48 :: Ptr Word64))     maxDescriptorSetAccelerationStructures <- peek @Word32 ((p `plusPtr` 56 :: Ptr Word32))     pure $ PhysicalDeviceRayTracingPropertiesNV-             shaderGroupHandleSize maxRecursionDepth maxShaderGroupStride shaderGroupBaseAlignment maxGeometryCount maxInstanceCount maxTriangleCount maxDescriptorSetAccelerationStructures+             shaderGroupHandleSize+             maxRecursionDepth+             maxShaderGroupStride+             shaderGroupBaseAlignment+             maxGeometryCount+             maxInstanceCount+             maxTriangleCount+             maxDescriptorSetAccelerationStructures  instance Storable PhysicalDeviceRayTracingPropertiesNV where   sizeOf ~_ = 64@@ -4090,19 +4226,23 @@ -- memory requirement for the -- 'Vulkan.Extensions.Handles.AccelerationStructureNV' backing store. pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = AccelerationStructureMemoryRequirementsTypeNV 0+ -- | 'ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV' -- requests the memory requirement for scratch space during the initial -- build.-pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV =-  AccelerationStructureMemoryRequirementsTypeNV 1+pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = AccelerationStructureMemoryRequirementsTypeNV 1+ -- | 'ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV' -- requests the memory requirement for scratch space during an update.-pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV =-  AccelerationStructureMemoryRequirementsTypeNV 2-{-# complete ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV,-             ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV,-             ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV :: AccelerationStructureMemoryRequirementsTypeNV #-}+pattern ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = AccelerationStructureMemoryRequirementsTypeNV 2 +{-# COMPLETE+  ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV+  , ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV+  , ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV ::+    AccelerationStructureMemoryRequirementsTypeNV+  #-}+ conNameAccelerationStructureMemoryRequirementsTypeNV :: String conNameAccelerationStructureMemoryRequirementsTypeNV = "AccelerationStructureMemoryRequirementsTypeNV" @@ -4111,24 +4251,36 @@  showTableAccelerationStructureMemoryRequirementsTypeNV :: [(AccelerationStructureMemoryRequirementsTypeNV, String)] showTableAccelerationStructureMemoryRequirementsTypeNV =-  [ (ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV        , "OBJECT_NV")-  , (ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV , "BUILD_SCRATCH_NV")-  , (ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV, "UPDATE_SCRATCH_NV")+  [+    ( ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV+    , "OBJECT_NV"+    )+  ,+    ( ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV+    , "BUILD_SCRATCH_NV"+    )+  ,+    ( ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV+    , "UPDATE_SCRATCH_NV"+    )   ]  instance Show AccelerationStructureMemoryRequirementsTypeNV where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureMemoryRequirementsTypeNV-                            showTableAccelerationStructureMemoryRequirementsTypeNV-                            conNameAccelerationStructureMemoryRequirementsTypeNV-                            (\(AccelerationStructureMemoryRequirementsTypeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureMemoryRequirementsTypeNV+      showTableAccelerationStructureMemoryRequirementsTypeNV+      conNameAccelerationStructureMemoryRequirementsTypeNV+      (\(AccelerationStructureMemoryRequirementsTypeNV x) -> x)+      (showsPrec 11)  instance Read AccelerationStructureMemoryRequirementsTypeNV where-  readPrec = enumReadPrec enumPrefixAccelerationStructureMemoryRequirementsTypeNV-                          showTableAccelerationStructureMemoryRequirementsTypeNV-                          conNameAccelerationStructureMemoryRequirementsTypeNV-                          AccelerationStructureMemoryRequirementsTypeNV-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureMemoryRequirementsTypeNV+      showTableAccelerationStructureMemoryRequirementsTypeNV+      conNameAccelerationStructureMemoryRequirementsTypeNV+      AccelerationStructureMemoryRequirementsTypeNV  -- No documentation found for TopLevel "VkGeometryFlagsNV" type GeometryFlagsNV = GeometryFlagsKHR
src/Vulkan/Extensions/VK_NV_ray_tracing.hs-boot view
@@ -563,10 +563,12 @@ type role RayTracingPipelineCreateInfoNV nominal data RayTracingPipelineCreateInfoNV (es :: [Type]) -instance (Extendss RayTracingPipelineCreateInfoNV es, PokeChain es) => ToCStruct (RayTracingPipelineCreateInfoNV es)+instance ( Extendss RayTracingPipelineCreateInfoNV es+         , PokeChain es ) => ToCStruct (RayTracingPipelineCreateInfoNV es) instance Show (Chain es) => Show (RayTracingPipelineCreateInfoNV es) -instance (Extendss RayTracingPipelineCreateInfoNV es, PeekChain es) => FromCStruct (RayTracingPipelineCreateInfoNV es)+instance ( Extendss RayTracingPipelineCreateInfoNV es+         , PeekChain es ) => FromCStruct (RayTracingPipelineCreateInfoNV es)   data RayTracingShaderGroupCreateInfoNV
src/Vulkan/Extensions/VK_NV_ray_tracing_motion_blur.hs view
@@ -341,7 +341,8 @@     rayTracingMotionBlur <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     rayTracingMotionBlurPipelineTraceRaysIndirect <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceRayTracingMotionBlurFeaturesNV-             (bool32ToBool rayTracingMotionBlur) (bool32ToBool rayTracingMotionBlurPipelineTraceRaysIndirect)+             (bool32ToBool rayTracingMotionBlur)+             (bool32ToBool rayTracingMotionBlurPipelineTraceRaysIndirect)  instance Storable PhysicalDeviceRayTracingMotionBlurFeaturesNV where   sizeOf ~_ = 24@@ -620,7 +621,22 @@     ty <- peek @CFloat ((p `plusPtr` 56 :: Ptr CFloat))     tz <- peek @CFloat ((p `plusPtr` 60 :: Ptr CFloat))     pure $ SRTDataNV-             (coerce @CFloat @Float sx) (coerce @CFloat @Float a) (coerce @CFloat @Float b) (coerce @CFloat @Float pvx) (coerce @CFloat @Float sy) (coerce @CFloat @Float c) (coerce @CFloat @Float pvy) (coerce @CFloat @Float sz) (coerce @CFloat @Float pvz) (coerce @CFloat @Float qx) (coerce @CFloat @Float qy) (coerce @CFloat @Float qz) (coerce @CFloat @Float qw) (coerce @CFloat @Float tx) (coerce @CFloat @Float ty) (coerce @CFloat @Float tz)+             (coerce @CFloat @Float sx)+             (coerce @CFloat @Float a)+             (coerce @CFloat @Float b)+             (coerce @CFloat @Float pvx)+             (coerce @CFloat @Float sy)+             (coerce @CFloat @Float c)+             (coerce @CFloat @Float pvy)+             (coerce @CFloat @Float sz)+             (coerce @CFloat @Float pvz)+             (coerce @CFloat @Float qx)+             (coerce @CFloat @Float qy)+             (coerce @CFloat @Float qz)+             (coerce @CFloat @Float qw)+             (coerce @CFloat @Float tx)+             (coerce @CFloat @Float ty)+             (coerce @CFloat @Float tz)  instance Storable SRTDataNV where   sizeOf ~_ = 64@@ -767,7 +783,13 @@     let flags' = ((((flags `shiftR` 24)) .&. coerce @Word32 0xff))     accelerationStructureReference <- peek @Word64 ((p `plusPtr` 136 :: Ptr Word64))     pure $ AccelerationStructureSRTMotionInstanceNV-             transformT0 transformT1 instanceCustomIndex' mask' instanceShaderBindingTableRecordOffset' flags' accelerationStructureReference+             transformT0+             transformT1+             instanceCustomIndex'+             mask'+             instanceShaderBindingTableRecordOffset'+             flags'+             accelerationStructureReference  instance Storable AccelerationStructureSRTMotionInstanceNV where   sizeOf ~_ = 144@@ -909,7 +931,13 @@     let flags' = ((((flags `shiftR` 24)) .&. coerce @Word32 0xff))     accelerationStructureReference <- peek @Word64 ((p `plusPtr` 104 :: Ptr Word64))     pure $ AccelerationStructureMatrixMotionInstanceNV-             transformT0 transformT1 instanceCustomIndex' mask' instanceShaderBindingTableRecordOffset' flags' accelerationStructureReference+             transformT0+             transformT1+             instanceCustomIndex'+             mask'+             instanceShaderBindingTableRecordOffset'+             flags'+             accelerationStructureReference  instance Storable AccelerationStructureMatrixMotionInstanceNV where   sizeOf ~_ = 112@@ -1047,8 +1075,6 @@ newtype AccelerationStructureMotionInfoFlagsNV = AccelerationStructureMotionInfoFlagsNV Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameAccelerationStructureMotionInfoFlagsNV :: String conNameAccelerationStructureMotionInfoFlagsNV = "AccelerationStructureMotionInfoFlagsNV" @@ -1059,18 +1085,21 @@ showTableAccelerationStructureMotionInfoFlagsNV = []  instance Show AccelerationStructureMotionInfoFlagsNV where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureMotionInfoFlagsNV-                            showTableAccelerationStructureMotionInfoFlagsNV-                            conNameAccelerationStructureMotionInfoFlagsNV-                            (\(AccelerationStructureMotionInfoFlagsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureMotionInfoFlagsNV+      showTableAccelerationStructureMotionInfoFlagsNV+      conNameAccelerationStructureMotionInfoFlagsNV+      (\(AccelerationStructureMotionInfoFlagsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AccelerationStructureMotionInfoFlagsNV where-  readPrec = enumReadPrec enumPrefixAccelerationStructureMotionInfoFlagsNV-                          showTableAccelerationStructureMotionInfoFlagsNV-                          conNameAccelerationStructureMotionInfoFlagsNV-                          AccelerationStructureMotionInfoFlagsNV-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureMotionInfoFlagsNV+      showTableAccelerationStructureMotionInfoFlagsNV+      conNameAccelerationStructureMotionInfoFlagsNV+      AccelerationStructureMotionInfoFlagsNV  -- | VkAccelerationStructureMotionInstanceFlagsNV - Reserved for future use --@@ -1086,8 +1115,6 @@ newtype AccelerationStructureMotionInstanceFlagsNV = AccelerationStructureMotionInstanceFlagsNV Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameAccelerationStructureMotionInstanceFlagsNV :: String conNameAccelerationStructureMotionInstanceFlagsNV = "AccelerationStructureMotionInstanceFlagsNV" @@ -1098,18 +1125,21 @@ showTableAccelerationStructureMotionInstanceFlagsNV = []  instance Show AccelerationStructureMotionInstanceFlagsNV where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureMotionInstanceFlagsNV-                            showTableAccelerationStructureMotionInstanceFlagsNV-                            conNameAccelerationStructureMotionInstanceFlagsNV-                            (\(AccelerationStructureMotionInstanceFlagsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureMotionInstanceFlagsNV+      showTableAccelerationStructureMotionInstanceFlagsNV+      conNameAccelerationStructureMotionInstanceFlagsNV+      (\(AccelerationStructureMotionInstanceFlagsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read AccelerationStructureMotionInstanceFlagsNV where-  readPrec = enumReadPrec enumPrefixAccelerationStructureMotionInstanceFlagsNV-                          showTableAccelerationStructureMotionInstanceFlagsNV-                          conNameAccelerationStructureMotionInstanceFlagsNV-                          AccelerationStructureMotionInstanceFlagsNV-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureMotionInstanceFlagsNV+      showTableAccelerationStructureMotionInstanceFlagsNV+      conNameAccelerationStructureMotionInstanceFlagsNV+      AccelerationStructureMotionInstanceFlagsNV  -- | VkAccelerationStructureMotionInstanceTypeNV - Enum specifying a type of -- acceleration structure motion instance data for building into an@@ -1124,19 +1154,25 @@  -- | 'ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV' specifies that -- the instance is a static instance with no instance motion.-pattern ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV        = AccelerationStructureMotionInstanceTypeNV 0+pattern ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = AccelerationStructureMotionInstanceTypeNV 0+ -- | 'ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV' specifies -- that the instance is a motion instance with motion specified by -- interpolation between two matrices. pattern ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = AccelerationStructureMotionInstanceTypeNV 1+ -- | 'ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV' specifies -- that the instance is a motion instance with motion specified by -- interpolation in the SRT decomposition.-pattern ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV    = AccelerationStructureMotionInstanceTypeNV 2-{-# complete ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV,-             ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV,-             ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV :: AccelerationStructureMotionInstanceTypeNV #-}+pattern ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = AccelerationStructureMotionInstanceTypeNV 2 +{-# COMPLETE+  ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV+  , ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV+  , ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV ::+    AccelerationStructureMotionInstanceTypeNV+  #-}+ conNameAccelerationStructureMotionInstanceTypeNV :: String conNameAccelerationStructureMotionInstanceTypeNV = "AccelerationStructureMotionInstanceTypeNV" @@ -1145,24 +1181,36 @@  showTableAccelerationStructureMotionInstanceTypeNV :: [(AccelerationStructureMotionInstanceTypeNV, String)] showTableAccelerationStructureMotionInstanceTypeNV =-  [ (ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV       , "STATIC_NV")-  , (ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV, "MATRIX_MOTION_NV")-  , (ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV   , "SRT_MOTION_NV")+  [+    ( ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV+    , "STATIC_NV"+    )+  ,+    ( ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV+    , "MATRIX_MOTION_NV"+    )+  ,+    ( ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV+    , "SRT_MOTION_NV"+    )   ]  instance Show AccelerationStructureMotionInstanceTypeNV where-  showsPrec = enumShowsPrec enumPrefixAccelerationStructureMotionInstanceTypeNV-                            showTableAccelerationStructureMotionInstanceTypeNV-                            conNameAccelerationStructureMotionInstanceTypeNV-                            (\(AccelerationStructureMotionInstanceTypeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixAccelerationStructureMotionInstanceTypeNV+      showTableAccelerationStructureMotionInstanceTypeNV+      conNameAccelerationStructureMotionInstanceTypeNV+      (\(AccelerationStructureMotionInstanceTypeNV x) -> x)+      (showsPrec 11)  instance Read AccelerationStructureMotionInstanceTypeNV where-  readPrec = enumReadPrec enumPrefixAccelerationStructureMotionInstanceTypeNV-                          showTableAccelerationStructureMotionInstanceTypeNV-                          conNameAccelerationStructureMotionInstanceTypeNV-                          AccelerationStructureMotionInstanceTypeNV-+  readPrec =+    enumReadPrec+      enumPrefixAccelerationStructureMotionInstanceTypeNV+      showTableAccelerationStructureMotionInstanceTypeNV+      conNameAccelerationStructureMotionInstanceTypeNV+      AccelerationStructureMotionInstanceTypeNV  type NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_scissor_exclusive.hs view
@@ -299,14 +299,20 @@                             -- scissor rectangles.                             ("exclusiveScissors" ::: Vector Rect2D)                          -> io ()-cmdSetExclusiveScissorNV commandBuffer firstExclusiveScissor exclusiveScissors = liftIO . evalContT $ do+cmdSetExclusiveScissorNV commandBuffer+                           firstExclusiveScissor+                           exclusiveScissors = liftIO . evalContT $ do   let vkCmdSetExclusiveScissorNVPtr = pVkCmdSetExclusiveScissorNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetExclusiveScissorNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetExclusiveScissorNV is null" Nothing Nothing   let vkCmdSetExclusiveScissorNV' = mkVkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNVPtr   pPExclusiveScissors <- ContT $ allocaBytes @Rect2D ((Data.Vector.length (exclusiveScissors)) * 16)   lift $ Data.Vector.imapM_ (\i e -> poke (pPExclusiveScissors `plusPtr` (16 * (i)) :: Ptr Rect2D) (e)) (exclusiveScissors)-  lift $ traceAroundEvent "vkCmdSetExclusiveScissorNV" (vkCmdSetExclusiveScissorNV' (commandBufferHandle (commandBuffer)) (firstExclusiveScissor) ((fromIntegral (Data.Vector.length $ (exclusiveScissors)) :: Word32)) (pPExclusiveScissors))+  lift $ traceAroundEvent "vkCmdSetExclusiveScissorNV" (vkCmdSetExclusiveScissorNV'+                                                          (commandBufferHandle (commandBuffer))+                                                          (firstExclusiveScissor)+                                                          ((fromIntegral (Data.Vector.length $ (exclusiveScissors)) :: Word32))+                                                          (pPExclusiveScissors))   pure $ ()  
src/Vulkan/Extensions/VK_NV_shading_rate_image.hs view
@@ -501,7 +501,10 @@   unless (vkCmdBindShadingRateImageNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBindShadingRateImageNV is null" Nothing Nothing   let vkCmdBindShadingRateImageNV' = mkVkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNVPtr-  traceAroundEvent "vkCmdBindShadingRateImageNV" (vkCmdBindShadingRateImageNV' (commandBufferHandle (commandBuffer)) (imageView) (imageLayout))+  traceAroundEvent "vkCmdBindShadingRateImageNV" (vkCmdBindShadingRateImageNV'+                                                    (commandBufferHandle (commandBuffer))+                                                    (imageView)+                                                    (imageLayout))   pure $ ()  @@ -606,14 +609,20 @@                                       -- viewport.                                       ("shadingRatePalettes" ::: Vector ShadingRatePaletteNV)                                    -> io ()-cmdSetViewportShadingRatePaletteNV commandBuffer firstViewport shadingRatePalettes = liftIO . evalContT $ do+cmdSetViewportShadingRatePaletteNV commandBuffer+                                     firstViewport+                                     shadingRatePalettes = liftIO . evalContT $ do   let vkCmdSetViewportShadingRatePaletteNVPtr = pVkCmdSetViewportShadingRatePaletteNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetViewportShadingRatePaletteNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetViewportShadingRatePaletteNV is null" Nothing Nothing   let vkCmdSetViewportShadingRatePaletteNV' = mkVkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNVPtr   pPShadingRatePalettes <- ContT $ allocaBytes @ShadingRatePaletteNV ((Data.Vector.length (shadingRatePalettes)) * 16)   Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPShadingRatePalettes `plusPtr` (16 * (i)) :: Ptr ShadingRatePaletteNV) (e) . ($ ())) (shadingRatePalettes)-  lift $ traceAroundEvent "vkCmdSetViewportShadingRatePaletteNV" (vkCmdSetViewportShadingRatePaletteNV' (commandBufferHandle (commandBuffer)) (firstViewport) ((fromIntegral (Data.Vector.length $ (shadingRatePalettes)) :: Word32)) (pPShadingRatePalettes))+  lift $ traceAroundEvent "vkCmdSetViewportShadingRatePaletteNV" (vkCmdSetViewportShadingRatePaletteNV'+                                                                    (commandBufferHandle (commandBuffer))+                                                                    (firstViewport)+                                                                    ((fromIntegral (Data.Vector.length $ (shadingRatePalettes)) :: Word32))+                                                                    (pPShadingRatePalettes))   pure $ ()  @@ -715,14 +724,20 @@                              -- coverage sample count.                              ("customSampleOrders" ::: Vector CoarseSampleOrderCustomNV)                           -> io ()-cmdSetCoarseSampleOrderNV commandBuffer sampleOrderType customSampleOrders = liftIO . evalContT $ do+cmdSetCoarseSampleOrderNV commandBuffer+                            sampleOrderType+                            customSampleOrders = liftIO . evalContT $ do   let vkCmdSetCoarseSampleOrderNVPtr = pVkCmdSetCoarseSampleOrderNV (case commandBuffer of CommandBuffer{deviceCmds} -> deviceCmds)   lift $ unless (vkCmdSetCoarseSampleOrderNVPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdSetCoarseSampleOrderNV is null" Nothing Nothing   let vkCmdSetCoarseSampleOrderNV' = mkVkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNVPtr   pPCustomSampleOrders <- ContT $ allocaBytes @CoarseSampleOrderCustomNV ((Data.Vector.length (customSampleOrders)) * 24)   Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPCustomSampleOrders `plusPtr` (24 * (i)) :: Ptr CoarseSampleOrderCustomNV) (e) . ($ ())) (customSampleOrders)-  lift $ traceAroundEvent "vkCmdSetCoarseSampleOrderNV" (vkCmdSetCoarseSampleOrderNV' (commandBufferHandle (commandBuffer)) (sampleOrderType) ((fromIntegral (Data.Vector.length $ (customSampleOrders)) :: Word32)) (pPCustomSampleOrders))+  lift $ traceAroundEvent "vkCmdSetCoarseSampleOrderNV" (vkCmdSetCoarseSampleOrderNV'+                                                           (commandBufferHandle (commandBuffer))+                                                           (sampleOrderType)+                                                           ((fromIntegral (Data.Vector.length $ (customSampleOrders)) :: Word32))+                                                           (pPCustomSampleOrders))   pure $ ()  @@ -948,7 +963,8 @@     shadingRateImage <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))     shadingRateCoarseSampleOrder <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     pure $ PhysicalDeviceShadingRateImageFeaturesNV-             (bool32ToBool shadingRateImage) (bool32ToBool shadingRateCoarseSampleOrder)+             (bool32ToBool shadingRateImage)+             (bool32ToBool shadingRateCoarseSampleOrder)  instance Storable PhysicalDeviceShadingRateImageFeaturesNV where   sizeOf ~_ = 24@@ -1033,7 +1049,9 @@     shadingRatePaletteSize <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     shadingRateMaxCoarseSamples <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))     pure $ PhysicalDeviceShadingRateImagePropertiesNV-             shadingRateTexelSize shadingRatePaletteSize shadingRateMaxCoarseSamples+             shadingRateTexelSize+             shadingRatePaletteSize+             shadingRateMaxCoarseSamples  instance Storable PhysicalDeviceShadingRateImagePropertiesNV where   sizeOf ~_ = 32@@ -1380,42 +1398,57 @@   deriving newtype (Eq, Ord, Storable, Zero)  -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV"-pattern SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV              = ShadingRatePaletteEntryNV 0+pattern SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = ShadingRatePaletteEntryNV 0+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV"-pattern SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV    = ShadingRatePaletteEntryNV 1+pattern SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = ShadingRatePaletteEntryNV 1+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV"-pattern SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV     = ShadingRatePaletteEntryNV 2+pattern SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = ShadingRatePaletteEntryNV 2+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV"-pattern SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV     = ShadingRatePaletteEntryNV 3+pattern SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = ShadingRatePaletteEntryNV 3+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV"-pattern SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV     = ShadingRatePaletteEntryNV 4+pattern SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = ShadingRatePaletteEntryNV 4+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV"-pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV      = ShadingRatePaletteEntryNV 5+pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = ShadingRatePaletteEntryNV 5+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV" pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = ShadingRatePaletteEntryNV 6+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV" pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = ShadingRatePaletteEntryNV 7+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV" pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = ShadingRatePaletteEntryNV 8+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV" pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = ShadingRatePaletteEntryNV 9+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV" pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = ShadingRatePaletteEntryNV 10+ -- No documentation found for Nested "VkShadingRatePaletteEntryNV" "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV" pattern SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = ShadingRatePaletteEntryNV 11-{-# complete SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV,-             SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV,-             SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV,-             SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV,-             SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV,-             SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV :: ShadingRatePaletteEntryNV #-} +{-# COMPLETE+  SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV+  , SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV+  , SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV+  , SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV+  , SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV+  , SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV ::+    ShadingRatePaletteEntryNV+  #-}+ conNameShadingRatePaletteEntryNV :: String conNameShadingRatePaletteEntryNV = "ShadingRatePaletteEntryNV" @@ -1424,33 +1457,72 @@  showTableShadingRatePaletteEntryNV :: [(ShadingRatePaletteEntryNV, String)] showTableShadingRatePaletteEntryNV =-  [ (SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV             , "NO_INVOCATIONS_NV")-  , (SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV   , "16_INVOCATIONS_PER_PIXEL_NV")-  , (SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV    , "8_INVOCATIONS_PER_PIXEL_NV")-  , (SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV    , "4_INVOCATIONS_PER_PIXEL_NV")-  , (SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV    , "2_INVOCATIONS_PER_PIXEL_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV     , "1_INVOCATION_PER_PIXEL_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV, "1_INVOCATION_PER_2X1_PIXELS_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV, "1_INVOCATION_PER_1X2_PIXELS_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV, "1_INVOCATION_PER_2X2_PIXELS_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV, "1_INVOCATION_PER_4X2_PIXELS_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV, "1_INVOCATION_PER_2X4_PIXELS_NV")-  , (SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, "1_INVOCATION_PER_4X4_PIXELS_NV")+  [+    ( SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV+    , "NO_INVOCATIONS_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV+    , "16_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV+    , "8_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV+    , "4_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV+    , "2_INVOCATIONS_PER_PIXEL_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV+    , "1_INVOCATION_PER_PIXEL_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV+    , "1_INVOCATION_PER_2X1_PIXELS_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV+    , "1_INVOCATION_PER_1X2_PIXELS_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV+    , "1_INVOCATION_PER_2X2_PIXELS_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV+    , "1_INVOCATION_PER_4X2_PIXELS_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV+    , "1_INVOCATION_PER_2X4_PIXELS_NV"+    )+  ,+    ( SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV+    , "1_INVOCATION_PER_4X4_PIXELS_NV"+    )   ]  instance Show ShadingRatePaletteEntryNV where-  showsPrec = enumShowsPrec enumPrefixShadingRatePaletteEntryNV-                            showTableShadingRatePaletteEntryNV-                            conNameShadingRatePaletteEntryNV-                            (\(ShadingRatePaletteEntryNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixShadingRatePaletteEntryNV+      showTableShadingRatePaletteEntryNV+      conNameShadingRatePaletteEntryNV+      (\(ShadingRatePaletteEntryNV x) -> x)+      (showsPrec 11)  instance Read ShadingRatePaletteEntryNV where-  readPrec = enumReadPrec enumPrefixShadingRatePaletteEntryNV-                          showTableShadingRatePaletteEntryNV-                          conNameShadingRatePaletteEntryNV-                          ShadingRatePaletteEntryNV-+  readPrec =+    enumReadPrec+      enumPrefixShadingRatePaletteEntryNV+      showTableShadingRatePaletteEntryNV+      conNameShadingRatePaletteEntryNV+      ShadingRatePaletteEntryNV  -- | VkCoarseSampleOrderTypeNV - Shading rate image sample ordering types --@@ -1464,28 +1536,35 @@  -- | 'COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV' specifies that coverage samples -- will be ordered in an implementation-dependent manner.-pattern COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV      = CoarseSampleOrderTypeNV 0+pattern COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = CoarseSampleOrderTypeNV 0+ -- | 'COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV' specifies that coverage samples -- will be ordered according to the array of custom orderings provided in -- either the @pCustomSampleOrders@ member of -- 'PipelineViewportCoarseSampleOrderStateCreateInfoNV' or the -- @pCustomSampleOrders@ member of 'cmdSetCoarseSampleOrderNV'.-pattern COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV       = CoarseSampleOrderTypeNV 1+pattern COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = CoarseSampleOrderTypeNV 1+ -- | '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://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#primsrast-multisampling-coverage-mask sample index>.-pattern COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV  = CoarseSampleOrderTypeNV 2+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://registry.khronos.org/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,-             COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV,-             COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV,-             COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV :: CoarseSampleOrderTypeNV #-} +{-# COMPLETE+  COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV+  , COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV+  , COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV+  , COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV ::+    CoarseSampleOrderTypeNV+  #-}+ conNameCoarseSampleOrderTypeNV :: String conNameCoarseSampleOrderTypeNV = "CoarseSampleOrderTypeNV" @@ -1494,25 +1573,40 @@  showTableCoarseSampleOrderTypeNV :: [(CoarseSampleOrderTypeNV, String)] showTableCoarseSampleOrderTypeNV =-  [ (COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV     , "DEFAULT_NV")-  , (COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV      , "CUSTOM_NV")-  , (COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV , "PIXEL_MAJOR_NV")-  , (COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, "SAMPLE_MAJOR_NV")+  [+    ( COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV+    , "DEFAULT_NV"+    )+  ,+    ( COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV+    , "CUSTOM_NV"+    )+  ,+    ( COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV+    , "PIXEL_MAJOR_NV"+    )+  ,+    ( COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV+    , "SAMPLE_MAJOR_NV"+    )   ]  instance Show CoarseSampleOrderTypeNV where-  showsPrec = enumShowsPrec enumPrefixCoarseSampleOrderTypeNV-                            showTableCoarseSampleOrderTypeNV-                            conNameCoarseSampleOrderTypeNV-                            (\(CoarseSampleOrderTypeNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixCoarseSampleOrderTypeNV+      showTableCoarseSampleOrderTypeNV+      conNameCoarseSampleOrderTypeNV+      (\(CoarseSampleOrderTypeNV x) -> x)+      (showsPrec 11)  instance Read CoarseSampleOrderTypeNV where-  readPrec = enumReadPrec enumPrefixCoarseSampleOrderTypeNV-                          showTableCoarseSampleOrderTypeNV-                          conNameCoarseSampleOrderTypeNV-                          CoarseSampleOrderTypeNV-+  readPrec =+    enumReadPrec+      enumPrefixCoarseSampleOrderTypeNV+      showTableCoarseSampleOrderTypeNV+      conNameCoarseSampleOrderTypeNV+      CoarseSampleOrderTypeNV  type NV_SHADING_RATE_IMAGE_SPEC_VERSION = 3 
src/Vulkan/Extensions/VK_NV_viewport_swizzle.hs view
@@ -330,7 +330,8 @@ -- -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_viewport_swizzle VK_NV_viewport_swizzle>, -- 'PipelineViewportSwizzleStateCreateInfoNV',--- 'ViewportCoordinateSwizzleNV'+-- 'ViewportCoordinateSwizzleNV',+-- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetViewportSwizzleNV' data ViewportSwizzleNV = ViewportSwizzleNV   { -- | @x@ is a 'ViewportCoordinateSwizzleNV' value specifying the swizzle     -- operation to apply to the x component of the primitive@@ -480,8 +481,6 @@ newtype PipelineViewportSwizzleStateCreateFlagsNV = PipelineViewportSwizzleStateCreateFlagsNV Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNamePipelineViewportSwizzleStateCreateFlagsNV :: String conNamePipelineViewportSwizzleStateCreateFlagsNV = "PipelineViewportSwizzleStateCreateFlagsNV" @@ -492,18 +491,21 @@ showTablePipelineViewportSwizzleStateCreateFlagsNV = []  instance Show PipelineViewportSwizzleStateCreateFlagsNV where-  showsPrec = enumShowsPrec enumPrefixPipelineViewportSwizzleStateCreateFlagsNV-                            showTablePipelineViewportSwizzleStateCreateFlagsNV-                            conNamePipelineViewportSwizzleStateCreateFlagsNV-                            (\(PipelineViewportSwizzleStateCreateFlagsNV x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixPipelineViewportSwizzleStateCreateFlagsNV+      showTablePipelineViewportSwizzleStateCreateFlagsNV+      conNamePipelineViewportSwizzleStateCreateFlagsNV+      (\(PipelineViewportSwizzleStateCreateFlagsNV x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read PipelineViewportSwizzleStateCreateFlagsNV where-  readPrec = enumReadPrec enumPrefixPipelineViewportSwizzleStateCreateFlagsNV-                          showTablePipelineViewportSwizzleStateCreateFlagsNV-                          conNamePipelineViewportSwizzleStateCreateFlagsNV-                          PipelineViewportSwizzleStateCreateFlagsNV-+  readPrec =+    enumReadPrec+      enumPrefixPipelineViewportSwizzleStateCreateFlagsNV+      showTablePipelineViewportSwizzleStateCreateFlagsNV+      conNamePipelineViewportSwizzleStateCreateFlagsNV+      PipelineViewportSwizzleStateCreateFlagsNV  -- | VkViewportCoordinateSwizzleNV - Specify how a viewport coordinate is -- swizzled@@ -522,29 +524,40 @@  -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = ViewportCoordinateSwizzleNV 0+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = ViewportCoordinateSwizzleNV 1+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = ViewportCoordinateSwizzleNV 2+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = ViewportCoordinateSwizzleNV 3+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = ViewportCoordinateSwizzleNV 4+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = ViewportCoordinateSwizzleNV 5+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = ViewportCoordinateSwizzleNV 6+ -- No documentation found for Nested "VkViewportCoordinateSwizzleNV" "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV" pattern VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = ViewportCoordinateSwizzleNV 7-{-# complete VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV,-             VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV,-             VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV,-             VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV,-             VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV,-             VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV,-             VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV,-             VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV :: ViewportCoordinateSwizzleNV #-} +{-# COMPLETE+  VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV+  , VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV+  , VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV+  , VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV+  , VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV+  , VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV+  , VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV+  , VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV ::+    ViewportCoordinateSwizzleNV+  #-}+ conNameViewportCoordinateSwizzleNV :: String conNameViewportCoordinateSwizzleNV = "ViewportCoordinateSwizzleNV" @@ -553,29 +566,56 @@  showTableViewportCoordinateSwizzleNV :: [(ViewportCoordinateSwizzleNV, String)] showTableViewportCoordinateSwizzleNV =-  [ (VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, "POSITIVE_X_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV, "NEGATIVE_X_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV, "POSITIVE_Y_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV, "NEGATIVE_Y_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV, "POSITIVE_Z_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV, "NEGATIVE_Z_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV, "POSITIVE_W_NV")-  , (VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV, "NEGATIVE_W_NV")+  [+    ( VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV+    , "POSITIVE_X_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV+    , "NEGATIVE_X_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV+    , "POSITIVE_Y_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV+    , "NEGATIVE_Y_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV+    , "POSITIVE_Z_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV+    , "NEGATIVE_Z_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV+    , "POSITIVE_W_NV"+    )+  ,+    ( VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV+    , "NEGATIVE_W_NV"+    )   ]  instance Show ViewportCoordinateSwizzleNV where-  showsPrec = enumShowsPrec enumPrefixViewportCoordinateSwizzleNV-                            showTableViewportCoordinateSwizzleNV-                            conNameViewportCoordinateSwizzleNV-                            (\(ViewportCoordinateSwizzleNV x) -> x)-                            (showsPrec 11)+  showsPrec =+    enumShowsPrec+      enumPrefixViewportCoordinateSwizzleNV+      showTableViewportCoordinateSwizzleNV+      conNameViewportCoordinateSwizzleNV+      (\(ViewportCoordinateSwizzleNV x) -> x)+      (showsPrec 11)  instance Read ViewportCoordinateSwizzleNV where-  readPrec = enumReadPrec enumPrefixViewportCoordinateSwizzleNV-                          showTableViewportCoordinateSwizzleNV-                          conNameViewportCoordinateSwizzleNV-                          ViewportCoordinateSwizzleNV-+  readPrec =+    enumReadPrec+      enumPrefixViewportCoordinateSwizzleNV+      showTableViewportCoordinateSwizzleNV+      conNameViewportCoordinateSwizzleNV+      ViewportCoordinateSwizzleNV  type NV_VIEWPORT_SWIZZLE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_NV_win32_keyed_mutex.hs view
@@ -393,7 +393,11 @@     pReleaseKeys <- peek @(Ptr Word64) ((p `plusPtr` 64 :: Ptr (Ptr Word64)))     pReleaseKeys' <- generateM (fromIntegral releaseCount) (\i -> peek @Word64 ((pReleaseKeys `advancePtrBytes` (8 * (i)) :: Ptr Word64)))     pure $ Win32KeyedMutexAcquireReleaseInfoNV-             pAcquireSyncs' pAcquireKeys' pAcquireTimeoutMilliseconds' pReleaseSyncs' pReleaseKeys'+             pAcquireSyncs'+             pAcquireKeys'+             pAcquireTimeoutMilliseconds'+             pReleaseSyncs'+             pReleaseKeys'  instance Zero Win32KeyedMutexAcquireReleaseInfoNV where   zero = Win32KeyedMutexAcquireReleaseInfoNV
src/Vulkan/Extensions/VK_QCOM_image_processing.hs view
@@ -368,7 +368,9 @@     textureBoxFilter <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))     textureBlockMatch <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))     pure $ PhysicalDeviceImageProcessingFeaturesQCOM-             (bool32ToBool textureSampleWeighted) (bool32ToBool textureBoxFilter) (bool32ToBool textureBlockMatch)+             (bool32ToBool textureSampleWeighted)+             (bool32ToBool textureBoxFilter)+             (bool32ToBool textureBlockMatch)  instance Storable PhysicalDeviceImageProcessingFeaturesQCOM where   sizeOf ~_ = 32@@ -478,7 +480,10 @@     maxBlockMatchRegion <- peekCStruct @Extent2D ((p `plusPtr` 28 :: Ptr Extent2D))     maxBoxFilterBlockSize <- peekCStruct @Extent2D ((p `plusPtr` 36 :: Ptr Extent2D))     pure $ PhysicalDeviceImageProcessingPropertiesQCOM-             maxWeightFilterPhases maxWeightFilterDimension maxBlockMatchRegion maxBoxFilterBlockSize+             maxWeightFilterPhases+             maxWeightFilterDimension+             maxBlockMatchRegion+             maxBoxFilterBlockSize  instance Storable PhysicalDeviceImageProcessingPropertiesQCOM where   sizeOf ~_ = 48
src/Vulkan/Extensions/VK_QCOM_tile_properties.hs view
@@ -258,11 +258,19 @@   let vkGetFramebufferTilePropertiesQCOM' = mkVkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOMPtr   let device' = deviceHandle (device)   pPPropertiesCount <- ContT $ bracket (callocBytes @Word32 4) free-  _ <- lift $ traceAroundEvent "vkGetFramebufferTilePropertiesQCOM" (vkGetFramebufferTilePropertiesQCOM' device' (framebuffer) (pPPropertiesCount) (nullPtr))+  _ <- lift $ traceAroundEvent "vkGetFramebufferTilePropertiesQCOM" (vkGetFramebufferTilePropertiesQCOM'+                                                                       device'+                                                                       (framebuffer)+                                                                       (pPPropertiesCount)+                                                                       (nullPtr))   pPropertiesCount <- lift $ peek @Word32 pPPropertiesCount   pPProperties <- ContT $ bracket (callocBytes @TilePropertiesQCOM ((fromIntegral (pPropertiesCount)) * 48)) free   _ <- traverse (\i -> ContT $ pokeZeroCStruct (pPProperties `advancePtrBytes` (i * 48) :: Ptr TilePropertiesQCOM) . ($ ())) [0..(fromIntegral (pPropertiesCount)) - 1]-  r <- lift $ traceAroundEvent "vkGetFramebufferTilePropertiesQCOM" (vkGetFramebufferTilePropertiesQCOM' device' (framebuffer) (pPPropertiesCount) ((pPProperties)))+  r <- lift $ traceAroundEvent "vkGetFramebufferTilePropertiesQCOM" (vkGetFramebufferTilePropertiesQCOM'+                                                                       device'+                                                                       (framebuffer)+                                                                       (pPPropertiesCount)+                                                                       ((pPProperties)))   pPropertiesCount' <- lift $ peek @Word32 pPPropertiesCount   pProperties' <- lift $ generateM (fromIntegral (pPropertiesCount')) (\i -> peekCStruct @TilePropertiesQCOM (((pPProperties) `advancePtrBytes` (48 * (i)) :: Ptr TilePropertiesQCOM)))   pure $ (r, pProperties')@@ -291,7 +299,9 @@ -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo', -- 'TilePropertiesQCOM' getDynamicRenderingTilePropertiesQCOM :: forall a io-                                       . (Extendss RenderingInfo a, PokeChain a, MonadIO io)+                                       . ( Extendss RenderingInfo a+                                         , PokeChain a+                                         , MonadIO io )                                       => -- | @device@ is a logical device associated with the render pass.                                          --                                          -- #VUID-vkGetDynamicRenderingTilePropertiesQCOM-device-parameter# @device@@@ -308,14 +318,18 @@                                          -- structure                                          (RenderingInfo a)                                       -> io (TilePropertiesQCOM)-getDynamicRenderingTilePropertiesQCOM device renderingInfo = liftIO . evalContT $ do+getDynamicRenderingTilePropertiesQCOM device+                                        renderingInfo = liftIO . evalContT $ do   let vkGetDynamicRenderingTilePropertiesQCOMPtr = pVkGetDynamicRenderingTilePropertiesQCOM (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetDynamicRenderingTilePropertiesQCOMPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDynamicRenderingTilePropertiesQCOM is null" Nothing Nothing   let vkGetDynamicRenderingTilePropertiesQCOM' = mkVkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOMPtr   pRenderingInfo <- ContT $ withCStruct (renderingInfo)   pPProperties <- ContT (withZeroCStruct @TilePropertiesQCOM)-  _ <- lift $ traceAroundEvent "vkGetDynamicRenderingTilePropertiesQCOM" (vkGetDynamicRenderingTilePropertiesQCOM' (deviceHandle (device)) (forgetExtensions pRenderingInfo) (pPProperties))+  _ <- lift $ traceAroundEvent "vkGetDynamicRenderingTilePropertiesQCOM" (vkGetDynamicRenderingTilePropertiesQCOM'+                                                                            (deviceHandle (device))+                                                                            (forgetExtensions pRenderingInfo)+                                                                            (pPProperties))   pProperties <- lift $ peekCStruct @TilePropertiesQCOM pPProperties   pure $ (pProperties) 
src/Vulkan/Extensions/VK_QNX_screen_surface.hs view
@@ -239,7 +239,11 @@     Nothing -> pure nullPtr     Just j -> ContT $ withCStruct (j)   pPSurface <- ContT $ bracket (callocBytes @SurfaceKHR 8) free-  r <- lift $ traceAroundEvent "vkCreateScreenSurfaceQNX" (vkCreateScreenSurfaceQNX' (instanceHandle (instance')) pCreateInfo pAllocator (pPSurface))+  r <- lift $ traceAroundEvent "vkCreateScreenSurfaceQNX" (vkCreateScreenSurfaceQNX'+                                                             (instanceHandle (instance'))+                                                             pCreateInfo+                                                             pAllocator+                                                             (pPSurface))   lift $ when (r < SUCCESS) (throwIO (VulkanException r))   pSurface <- lift $ peek @SurfaceKHR pPSurface   pure $ (pSurface)@@ -288,12 +292,17 @@                                                  -- @window@ /must/ be a valid pointer to a 'Screen_window' value                                                  (Ptr Screen_window)                                               -> io (Bool)-getPhysicalDeviceScreenPresentationSupportQNX physicalDevice queueFamilyIndex window = liftIO $ do+getPhysicalDeviceScreenPresentationSupportQNX physicalDevice+                                                queueFamilyIndex+                                                window = liftIO $ do   let vkGetPhysicalDeviceScreenPresentationSupportQNXPtr = pVkGetPhysicalDeviceScreenPresentationSupportQNX (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)   unless (vkGetPhysicalDeviceScreenPresentationSupportQNXPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceScreenPresentationSupportQNX is null" Nothing Nothing   let vkGetPhysicalDeviceScreenPresentationSupportQNX' = mkVkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNXPtr-  r <- traceAroundEvent "vkGetPhysicalDeviceScreenPresentationSupportQNX" (vkGetPhysicalDeviceScreenPresentationSupportQNX' (physicalDeviceHandle (physicalDevice)) (queueFamilyIndex) (window))+  r <- traceAroundEvent "vkGetPhysicalDeviceScreenPresentationSupportQNX" (vkGetPhysicalDeviceScreenPresentationSupportQNX'+                                                                             (physicalDeviceHandle (physicalDevice))+                                                                             (queueFamilyIndex)+                                                                             (window))   pure $ ((bool32ToBool r))  @@ -383,8 +392,6 @@ newtype ScreenSurfaceCreateFlagsQNX = ScreenSurfaceCreateFlagsQNX Flags   deriving newtype (Eq, Ord, Storable, Zero, Bits, FiniteBits) -- conNameScreenSurfaceCreateFlagsQNX :: String conNameScreenSurfaceCreateFlagsQNX = "ScreenSurfaceCreateFlagsQNX" @@ -395,18 +402,21 @@ showTableScreenSurfaceCreateFlagsQNX = []  instance Show ScreenSurfaceCreateFlagsQNX where-  showsPrec = enumShowsPrec enumPrefixScreenSurfaceCreateFlagsQNX-                            showTableScreenSurfaceCreateFlagsQNX-                            conNameScreenSurfaceCreateFlagsQNX-                            (\(ScreenSurfaceCreateFlagsQNX x) -> x)-                            (\x -> showString "0x" . showHex x)+  showsPrec =+    enumShowsPrec+      enumPrefixScreenSurfaceCreateFlagsQNX+      showTableScreenSurfaceCreateFlagsQNX+      conNameScreenSurfaceCreateFlagsQNX+      (\(ScreenSurfaceCreateFlagsQNX x) -> x)+      (\x -> showString "0x" . showHex x)  instance Read ScreenSurfaceCreateFlagsQNX where-  readPrec = enumReadPrec enumPrefixScreenSurfaceCreateFlagsQNX-                          showTableScreenSurfaceCreateFlagsQNX-                          conNameScreenSurfaceCreateFlagsQNX-                          ScreenSurfaceCreateFlagsQNX-+  readPrec =+    enumReadPrec+      enumPrefixScreenSurfaceCreateFlagsQNX+      showTableScreenSurfaceCreateFlagsQNX+      conNameScreenSurfaceCreateFlagsQNX+      ScreenSurfaceCreateFlagsQNX  type QNX_SCREEN_SURFACE_SPEC_VERSION = 1 
src/Vulkan/Extensions/VK_VALVE_descriptor_set_host_mapping.hs view
@@ -320,14 +320,18 @@                                               -- 'DescriptorSetBindingReferenceVALVE' structure                                               DescriptorSetBindingReferenceVALVE                                            -> io (DescriptorSetLayoutHostMappingInfoVALVE)-getDescriptorSetLayoutHostMappingInfoVALVE device bindingReference = liftIO . evalContT $ do+getDescriptorSetLayoutHostMappingInfoVALVE device+                                             bindingReference = liftIO . evalContT $ do   let vkGetDescriptorSetLayoutHostMappingInfoVALVEPtr = pVkGetDescriptorSetLayoutHostMappingInfoVALVE (case device of Device{deviceCmds} -> deviceCmds)   lift $ unless (vkGetDescriptorSetLayoutHostMappingInfoVALVEPtr /= nullFunPtr) $     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDescriptorSetLayoutHostMappingInfoVALVE is null" Nothing Nothing   let vkGetDescriptorSetLayoutHostMappingInfoVALVE' = mkVkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVEPtr   pBindingReference <- ContT $ withCStruct (bindingReference)   pPHostMapping <- ContT (withZeroCStruct @DescriptorSetLayoutHostMappingInfoVALVE)-  lift $ traceAroundEvent "vkGetDescriptorSetLayoutHostMappingInfoVALVE" (vkGetDescriptorSetLayoutHostMappingInfoVALVE' (deviceHandle (device)) pBindingReference (pPHostMapping))+  lift $ traceAroundEvent "vkGetDescriptorSetLayoutHostMappingInfoVALVE" (vkGetDescriptorSetLayoutHostMappingInfoVALVE'+                                                                            (deviceHandle (device))+                                                                            pBindingReference+                                                                            (pPHostMapping))   pHostMapping <- lift $ peekCStruct @DescriptorSetLayoutHostMappingInfoVALVE pPHostMapping   pure $ (pHostMapping) @@ -364,7 +368,10 @@     throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetDescriptorSetHostMappingVALVE is null" Nothing Nothing   let vkGetDescriptorSetHostMappingVALVE' = mkVkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVEPtr   pPpData <- ContT $ bracket (callocBytes @(Ptr ()) 8) free-  lift $ traceAroundEvent "vkGetDescriptorSetHostMappingVALVE" (vkGetDescriptorSetHostMappingVALVE' (deviceHandle (device)) (descriptorSet) (pPpData))+  lift $ traceAroundEvent "vkGetDescriptorSetHostMappingVALVE" (vkGetDescriptorSetHostMappingVALVE'+                                                                  (deviceHandle (device))+                                                                  (descriptorSet)+                                                                  (pPpData))   ppData <- lift $ peek @(Ptr ()) pPpData   pure $ (ppData) 
src/Vulkan/SPIRVRequirements.hs view
@@ -67,2672 +67,3128 @@ import Vulkan.Extensions.VK_EXT_fragment_density_map (pattern EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_fragment_shader_interlock (pattern EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME) import Vulkan.Extensions.VK_EXT_mesh_shader (pattern EXT_MESH_SHADER_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_post_depth_coverage (pattern EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_stencil_export (pattern EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot (pattern EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_subgroup_vote (pattern EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_shader_viewport_index_layer (pattern EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME)-import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME)-import Vulkan.Extensions.VK_GOOGLE_decorate_string (pattern GOOGLE_DECORATE_STRING_EXTENSION_NAME)-import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 (pattern GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME)-import Vulkan.Extensions.VK_GOOGLE_user_type (pattern GOOGLE_USER_TYPE_EXTENSION_NAME)-import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_acceleration_structure (pattern KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_buffer_device_address (pattern KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_create_renderpass2 (pattern KHR_CREATE_RENDERPASS_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_deferred_host_operations (pattern KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_device_group_creation (pattern KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_device_group (pattern KHR_DEVICE_GROUP_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_fragment_shading_rate (pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_get_memory_requirements2 (pattern KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_get_physical_device_properties2 (pattern KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_maintenance2 (pattern KHR_MAINTENANCE_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_maintenance3 (pattern KHR_MAINTENANCE_3_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_multiview (pattern KHR_MULTIVIEW_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_atomic_int64 (pattern KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_clock (pattern KHR_SHADER_CLOCK_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_draw_parameters (pattern KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_float16_int8 (pattern KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_float_controls (pattern KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (pattern KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_non_semantic_info (pattern KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (pattern KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_shader_terminate_invocation (pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_spirv_1_4 (pattern KHR_SPIRV_1_4_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class (pattern KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME)-import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME)-import Vulkan.Version (pattern MAKE_API_VERSION)-import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (pattern NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_geometry_shader_passthrough (pattern NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_mesh_shader (pattern NV_MESH_SHADER_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_ray_tracing (pattern NV_RAY_TRACING_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (pattern NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_sample_mask_override_coverage (pattern NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_shader_image_footprint (pattern NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_shader_sm_builtins (pattern NV_SHADER_SM_BUILTINS_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME)-import Vulkan.Extensions.VK_NV_viewport_array2 (pattern NV_VIEWPORT_ARRAY_2_EXTENSION_NAME)-import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_ARITHMETIC_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_BALLOT_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_BASIC_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_CLUSTERED_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_PARTITIONED_BIT_NV))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_QUAD_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_SHUFFLE_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT))-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)-import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_VOTE_BIT))--- | Check if the intersection of bits is non-zero-(.&&.) :: Bits a => a -> a -> Bool-x .&&. y = (x .&. y) /= zeroBits--spirvExtensionRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])-spirvExtensionRequirements = \case-  "SPV_KHR_variable_pointers" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]-  "SPV_AMD_shader_explicit_vertex_parameter" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_gcn_shader" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_GCN_SHADER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_gpu_shader_half_float" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_gpu_shader_int16" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_GPU_SHADER_INT16_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_shader_ballot" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_BALLOT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_shader_fragment_mask" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_shader_image_load_store_lod" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_shader_trinary_minmax" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_AMD_texture_gather_bias_lod" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_shader_draw_parameters" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]-  "SPV_KHR_8bit_storage" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "SPV_KHR_16bit_storage" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]-  "SPV_KHR_shader_clock" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_CLOCK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_float_controls" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "SPV_KHR_storage_buffer_storage_class" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]-  "SPV_KHR_post_depth_coverage" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_shader_stencil_export" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_shader_ballot" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_subgroup_vote" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_sample_mask_override_coverage" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_geometry_shader_passthrough" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_mesh_shader" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_MESH_SHADER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_viewport_array2" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_shader_subgroup_partitioned" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_shader_viewport_index_layer" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "SPV_NVX_multiview_per_view_attributes" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MULTIVIEW_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_descriptor_indexing" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "SPV_KHR_vulkan_memory_model" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "SPV_NV_compute_shader_derivatives" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_fragment_shader_barycentric" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_shader_image_footprint" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_shading_rate" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADING_RATE_IMAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_ray_tracing" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_RAY_TRACING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_ray_tracing" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_ray_query" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_QUERY_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_ray_cull_mask" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_GOOGLE_hlsl_functionality1" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_GOOGLE_user_type" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = GOOGLE_USER_TYPE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_GOOGLE_decorate_string" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = GOOGLE_DECORATE_STRING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_fragment_invocation_density" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_physical_storage_buffer" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "SPV_EXT_physical_storage_buffer" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_cooperative_matrix" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_COOPERATIVE_MATRIX_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_NV_shader_sm_builtins" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADER_SM_BUILTINS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_fragment_shader_interlock" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_FRAGMENT_SHADER_INTERLOCK_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-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_CREATE_RENDERPASS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MULTIVIEW_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_2_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-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_IMAGE_ATOMIC_INT64_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" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_shader_atomic_float_add" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_fragment_shader_barycentric" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FRAGMENT_SHADER_BARYCENTRIC_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-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_shader_atomic_float16_add" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_integer_dot_product" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]-  "SPV_INTEL_shader_integer_functions" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_KHR_device_group" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]-  "SPV_QCOM_image_processing" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = QCOM_IMAGE_PROCESSING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SPV_EXT_mesh_shader" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_MESH_SHADER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  _ -> ([], [])--spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])-spirvCapabilityRequirements = \case-  "Matrix" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "Shader" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "InputAttachment" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "Sampled1D" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "Image1D"   -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "SampledBuffer" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "ImageBuffer" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "ImageQuery" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "DerivativeControl" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "Geometry" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "geometryShader"-      , checkFeature  = \PhysicalDeviceFeatures { geometryShader } -> geometryShader-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { geometryShader = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "Tessellation" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "tessellationShader"-      , checkFeature  = \PhysicalDeviceFeatures { tessellationShader } -> tessellationShader-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { tessellationShader = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "Float64" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderFloat64"-      , checkFeature  = \PhysicalDeviceFeatures { shaderFloat64 } -> shaderFloat64-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderFloat64 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "Int64" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderInt64"-      , checkFeature  = \PhysicalDeviceFeatures { shaderInt64 } -> shaderInt64-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderInt64 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "Int64Atomics" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferInt64Atomics"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderBufferInt64Atomics } -> shaderBufferInt64Atomics-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderBufferInt64Atomics = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "AtomicFloat16AddEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferFloat16AtomicAdd"-      , checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat16AtomicAdd } ->-                          shaderBufferFloat16AtomicAdd-      , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {..} ->-                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat16AtomicAdd = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "AtomicFloat32AddEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferFloat32AtomicAdd"-      , checkFeature  = \PhysicalDeviceShaderAtomicFloatFeaturesEXT { shaderBufferFloat32AtomicAdd } ->-                          shaderBufferFloat32AtomicAdd-      , enableFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT {..} ->-                          PhysicalDeviceShaderAtomicFloatFeaturesEXT { shaderBufferFloat32AtomicAdd = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "AtomicFloat64AddEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferFloat64AtomicAdd"-      , checkFeature  = \PhysicalDeviceShaderAtomicFloatFeaturesEXT { shaderBufferFloat64AtomicAdd } ->-                          shaderBufferFloat64AtomicAdd-      , enableFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT {..} ->-                          PhysicalDeviceShaderAtomicFloatFeaturesEXT { shaderBufferFloat64AtomicAdd = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "AtomicFloat16MinMaxEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferFloat16AtomicMinMax"-      , checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat16AtomicMinMax } ->-                          shaderBufferFloat16AtomicMinMax-      , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {..} ->-                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat16AtomicMinMax = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "AtomicFloat32MinMaxEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferFloat32AtomicMinMax"-      , checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat32AtomicMinMax } ->-                          shaderBufferFloat32AtomicMinMax-      , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {..} ->-                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat32AtomicMinMax = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "AtomicFloat64MinMaxEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderBufferFloat64AtomicMinMax"-      , checkFeature  = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat64AtomicMinMax } ->-                          shaderBufferFloat64AtomicMinMax-      , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT {..} ->-                          PhysicalDeviceShaderAtomicFloat2FeaturesEXT { shaderBufferFloat64AtomicMinMax = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "Int64ImageEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderImageInt64Atomics"-      , checkFeature  = \PhysicalDeviceShaderImageAtomicInt64FeaturesEXT { shaderImageInt64Atomics } ->-                          shaderImageInt64Atomics-      , enableFeature = \PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {..} ->-                          PhysicalDeviceShaderImageAtomicInt64FeaturesEXT { shaderImageInt64Atomics = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "Int16" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderInt16"-      , checkFeature  = \PhysicalDeviceFeatures { shaderInt16 } -> shaderInt16-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderInt16 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "TessellationPointSize" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderTessellationAndGeometryPointSize"-      , checkFeature  = \PhysicalDeviceFeatures { shaderTessellationAndGeometryPointSize } ->-                          shaderTessellationAndGeometryPointSize-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderTessellationAndGeometryPointSize = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "GeometryPointSize" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderTessellationAndGeometryPointSize"-      , checkFeature  = \PhysicalDeviceFeatures { shaderTessellationAndGeometryPointSize } ->-                          shaderTessellationAndGeometryPointSize-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderTessellationAndGeometryPointSize = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "ImageGatherExtended" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderImageGatherExtended"-      , checkFeature  = \PhysicalDeviceFeatures { shaderImageGatherExtended } -> shaderImageGatherExtended-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderImageGatherExtended = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "StorageImageMultisample" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageImageMultisample"-      , checkFeature  = \PhysicalDeviceFeatures { shaderStorageImageMultisample } -> shaderStorageImageMultisample-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderStorageImageMultisample = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "UniformBufferArrayDynamicIndexing" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderUniformBufferArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceFeatures { shaderUniformBufferArrayDynamicIndexing } ->-                          shaderUniformBufferArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderUniformBufferArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "SampledImageArrayDynamicIndexing" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderSampledImageArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceFeatures { shaderSampledImageArrayDynamicIndexing } ->-                          shaderSampledImageArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderSampledImageArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "StorageBufferArrayDynamicIndexing" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageBufferArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceFeatures { shaderStorageBufferArrayDynamicIndexing } ->-                          shaderStorageBufferArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderStorageBufferArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "StorageImageArrayDynamicIndexing" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageImageArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceFeatures { shaderStorageImageArrayDynamicIndexing } ->-                          shaderStorageImageArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderStorageImageArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "ClipDistance" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderClipDistance"-      , checkFeature  = \PhysicalDeviceFeatures { shaderClipDistance } -> shaderClipDistance-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderClipDistance = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "CullDistance" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderCullDistance"-      , checkFeature  = \PhysicalDeviceFeatures { shaderCullDistance } -> shaderCullDistance-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderCullDistance = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "ImageCubeArray" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "imageCubeArray"-      , checkFeature  = \PhysicalDeviceFeatures { imageCubeArray } -> imageCubeArray-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { imageCubeArray = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "SampleRateShading" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "sampleRateShading"-      , checkFeature  = \PhysicalDeviceFeatures { sampleRateShading } -> sampleRateShading-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { sampleRateShading = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "SparseResidency" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderResourceResidency"-      , checkFeature  = \PhysicalDeviceFeatures { shaderResourceResidency } -> shaderResourceResidency-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderResourceResidency = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "MinLod" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderResourceMinLod"-      , checkFeature  = \PhysicalDeviceFeatures { shaderResourceMinLod } -> shaderResourceMinLod-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { shaderResourceMinLod = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "SampledCubeArray" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "imageCubeArray"-      , checkFeature  = \PhysicalDeviceFeatures { imageCubeArray } -> imageCubeArray-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { imageCubeArray = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "ImageMSArray" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageImageMultisample"-      , checkFeature  = \PhysicalDeviceFeatures { shaderStorageImageMultisample } -> shaderStorageImageMultisample-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderStorageImageMultisample = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "StorageImageExtendedFormats" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]-  "InterpolationFunction" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "sampleRateShading"-      , checkFeature  = \PhysicalDeviceFeatures { sampleRateShading } -> sampleRateShading-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { sampleRateShading = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "StorageImageReadWithoutFormat" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageImageReadWithoutFormat"-      , checkFeature  = \PhysicalDeviceFeatures { shaderStorageImageReadWithoutFormat } ->-                          shaderStorageImageReadWithoutFormat-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderStorageImageReadWithoutFormat = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "StorageImageWriteWithoutFormat" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageImageWriteWithoutFormat"-      , checkFeature  = \PhysicalDeviceFeatures { shaderStorageImageWriteWithoutFormat } ->-                          shaderStorageImageWriteWithoutFormat-      , enableFeature = \PhysicalDeviceFeatures {..} ->-                          PhysicalDeviceFeatures { shaderStorageImageWriteWithoutFormat = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "MultiViewport" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]-    [ RequireDeviceFeature-      { featureName   = "multiViewport"-      , checkFeature  = \PhysicalDeviceFeatures { multiViewport } -> multiViewport-      , enableFeature = \PhysicalDeviceFeatures {..} -> PhysicalDeviceFeatures { multiViewport = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0-    ]-  "DrawParameters" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "shaderDrawParameters"-      , checkFeature  = \PhysicalDeviceVulkan11Features { shaderDrawParameters } -> shaderDrawParameters-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { shaderDrawParameters = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "MultiView" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "multiview"-      , checkFeature  = \PhysicalDeviceVulkan11Features { multiview } -> multiview-      , enableFeature = \PhysicalDeviceVulkan11Features {..} -> PhysicalDeviceVulkan11Features { multiview = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "DeviceGroup" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]-  "VariablePointersStorageBuffer" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "variablePointersStorageBuffer"-      , checkFeature  = \PhysicalDeviceVulkan11Features { variablePointersStorageBuffer } ->-                          variablePointersStorageBuffer-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { variablePointersStorageBuffer = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "VariablePointers" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "variablePointers"-      , checkFeature  = \PhysicalDeviceVulkan11Features { variablePointers } -> variablePointers-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { variablePointers = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "ShaderClockKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_CLOCK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StencilExportEXT" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SubgroupBallotKHR" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SubgroupVoteKHR" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ImageReadWriteLodAMD" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ImageGatherBiasLodAMD" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "FragmentMaskAMD" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SampleMaskOverrideCoverageNV" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "GeometryShaderPassthroughNV" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ShaderViewportIndex" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "shaderOutputViewportIndex"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderOutputViewportIndex } -> shaderOutputViewportIndex-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderOutputViewportIndex = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "ShaderLayer" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "shaderOutputLayer"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderOutputLayer } -> shaderOutputLayer-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderOutputLayer = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "ShaderViewportIndexLayerEXT" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ShaderViewportIndexLayerNV" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ShaderViewportMaskNV" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "PerViewAttributesNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MULTIVIEW_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StorageBuffer16BitAccess" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "storageBuffer16BitAccess"-      , checkFeature  = \PhysicalDeviceVulkan11Features { storageBuffer16BitAccess } -> storageBuffer16BitAccess-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { storageBuffer16BitAccess = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "UniformAndStorageBuffer16BitAccess" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "uniformAndStorageBuffer16BitAccess"-      , checkFeature  = \PhysicalDeviceVulkan11Features { uniformAndStorageBuffer16BitAccess } ->-                          uniformAndStorageBuffer16BitAccess-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { uniformAndStorageBuffer16BitAccess = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "StoragePushConstant16" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "storagePushConstant16"-      , checkFeature  = \PhysicalDeviceVulkan11Features { storagePushConstant16 } -> storagePushConstant16-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { storagePushConstant16 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "StorageInputOutput16" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "storageInputOutput16"-      , checkFeature  = \PhysicalDeviceVulkan11Features { storageInputOutput16 } -> storageInputOutput16-      , enableFeature = \PhysicalDeviceVulkan11Features {..} ->-                          PhysicalDeviceVulkan11Features { storageInputOutput16 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    ]-  "GroupNonUniform" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_BASIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformVote" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_VOTE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformArithmetic" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_ARITHMETIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformBallot" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_BALLOT_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformShuffle" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_SHUFFLE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformShuffleRelative" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformClustered" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_CLUSTERED_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformQuad" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_QUAD_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0-    ]-  "GroupNonUniformPartitionedNV" -> (,)-    []-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan11Properties"-      , checkProperty = \p ->-        SUBGROUP_FEATURE_PARTITIONED_BIT_NV .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SampleMaskPostDepthCoverage" -> (,)-    []-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ShaderNonUniform" ->-    (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]-  "RuntimeDescriptorArray" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "runtimeDescriptorArray"-      , checkFeature  = \PhysicalDeviceVulkan12Features { runtimeDescriptorArray } -> runtimeDescriptorArray-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { runtimeDescriptorArray = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "InputAttachmentArrayDynamicIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderInputAttachmentArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderInputAttachmentArrayDynamicIndexing } ->-                          shaderInputAttachmentArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderInputAttachmentArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "UniformTexelBufferArrayDynamicIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderUniformTexelBufferArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderUniformTexelBufferArrayDynamicIndexing } ->-                          shaderUniformTexelBufferArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderUniformTexelBufferArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StorageTexelBufferArrayDynamicIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageTexelBufferArrayDynamicIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderStorageTexelBufferArrayDynamicIndexing } ->-                          shaderStorageTexelBufferArrayDynamicIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderStorageTexelBufferArrayDynamicIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "UniformBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderUniformBufferArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderUniformBufferArrayNonUniformIndexing } ->-                          shaderUniformBufferArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderUniformBufferArrayNonUniformIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SampledImageArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderSampledImageArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderSampledImageArrayNonUniformIndexing } ->-                          shaderSampledImageArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderSampledImageArrayNonUniformIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StorageBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageBufferArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderStorageBufferArrayNonUniformIndexing } ->-                          shaderStorageBufferArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderStorageBufferArrayNonUniformIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StorageImageArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageImageArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderStorageImageArrayNonUniformIndexing } ->-                          shaderStorageImageArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderStorageImageArrayNonUniformIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "InputAttachmentArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderInputAttachmentArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderInputAttachmentArrayNonUniformIndexing } ->-                          shaderInputAttachmentArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderInputAttachmentArrayNonUniformIndexing = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "UniformTexelBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderUniformTexelBufferArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderUniformTexelBufferArrayNonUniformIndexing } ->-                          shaderUniformTexelBufferArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} -> PhysicalDeviceVulkan12Features-                          { shaderUniformTexelBufferArrayNonUniformIndexing = True-                          , ..-                          }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StorageTexelBufferArrayNonUniformIndexing" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderStorageTexelBufferArrayNonUniformIndexing"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderStorageTexelBufferArrayNonUniformIndexing } ->-                          shaderStorageTexelBufferArrayNonUniformIndexing-      , enableFeature = \PhysicalDeviceVulkan12Features {..} -> PhysicalDeviceVulkan12Features-                          { shaderStorageTexelBufferArrayNonUniformIndexing = True-                          , ..-                          }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "Float16" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderFloat16"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderFloat16 } -> shaderFloat16-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { shaderFloat16 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "Int8" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderInt8"-      , checkFeature  = \PhysicalDeviceVulkan12Features { shaderInt8 } -> shaderInt8-      , enableFeature = \PhysicalDeviceVulkan12Features {..} -> PhysicalDeviceVulkan12Features { shaderInt8 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StorageBuffer8BitAccess" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "storageBuffer8BitAccess"-      , checkFeature  = \PhysicalDeviceVulkan12Features { storageBuffer8BitAccess } -> storageBuffer8BitAccess-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { storageBuffer8BitAccess = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_8BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "UniformAndStorageBuffer8BitAccess" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "uniformAndStorageBuffer8BitAccess"-      , checkFeature  = \PhysicalDeviceVulkan12Features { uniformAndStorageBuffer8BitAccess } ->-                          uniformAndStorageBuffer8BitAccess-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { uniformAndStorageBuffer8BitAccess = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_8BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "StoragePushConstant8" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "storagePushConstant8"-      , checkFeature  = \PhysicalDeviceVulkan12Features { storagePushConstant8 } -> storagePushConstant8-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { storagePushConstant8 = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_8BIT_STORAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "VulkanMemoryModel" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "vulkanMemoryModel"-      , checkFeature  = \PhysicalDeviceVulkan12Features { vulkanMemoryModel } -> vulkanMemoryModel-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { vulkanMemoryModel = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "VulkanMemoryModelDeviceScope" -> (,)-    [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]-    [ RequireDeviceFeature-      { featureName   = "vulkanMemoryModelDeviceScope"-      , checkFeature  = \PhysicalDeviceVulkan12Features { vulkanMemoryModelDeviceScope } -> vulkanMemoryModelDeviceScope-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { vulkanMemoryModelDeviceScope = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "DenormPreserve" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceProperty { propertyName  = "VkPhysicalDeviceVulkan12Properties"-                            , checkProperty = \p -> shaderDenormPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties)-                            }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "DenormFlushToZero" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan12Properties"-      , checkProperty = \p -> shaderDenormFlushToZeroFloat16 (p :: PhysicalDeviceVulkan12Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "SignedZeroInfNanPreserve" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceProperty-      { propertyName  = "VkPhysicalDeviceVulkan12Properties"-      , checkProperty = \p -> shaderSignedZeroInfNanPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties)-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RoundingModeRTE" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceProperty { propertyName  = "VkPhysicalDeviceVulkan12Properties"-                            , checkProperty = \p -> shaderRoundingModeRTEFloat16 (p :: PhysicalDeviceVulkan12Properties)-                            }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RoundingModeRTZ" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceProperty { propertyName  = "VkPhysicalDeviceVulkan12Properties"-                            , checkProperty = \p -> shaderRoundingModeRTZFloat16 (p :: PhysicalDeviceVulkan12Properties)-                            }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ComputeDerivativeGroupQuadsNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "computeDerivativeGroupQuads"-      , checkFeature  = \PhysicalDeviceComputeShaderDerivativesFeaturesNV { computeDerivativeGroupQuads } ->-                          computeDerivativeGroupQuads-      , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV {..} ->-                          PhysicalDeviceComputeShaderDerivativesFeaturesNV { computeDerivativeGroupQuads = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ComputeDerivativeGroupLinearNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "computeDerivativeGroupLinear"-      , checkFeature  = \PhysicalDeviceComputeShaderDerivativesFeaturesNV { computeDerivativeGroupLinear } ->-                          computeDerivativeGroupLinear-      , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV {..} ->-                          PhysicalDeviceComputeShaderDerivativesFeaturesNV { computeDerivativeGroupLinear = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "FragmentBarycentricNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "fragmentShaderBarycentric"-      , checkFeature  = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric } ->-                          fragmentShaderBarycentric-      , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric = True }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ImageFootprintNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "imageFootprint"-      , checkFeature  = \PhysicalDeviceShaderImageFootprintFeaturesNV { imageFootprint } -> imageFootprint-      , enableFeature = \_ -> PhysicalDeviceShaderImageFootprintFeaturesNV { imageFootprint = True }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ShadingRateNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shadingRateImage"-      , checkFeature  = \PhysicalDeviceShadingRateImageFeaturesNV { shadingRateImage } -> shadingRateImage-      , enableFeature = \PhysicalDeviceShadingRateImageFeaturesNV {..} ->-                          PhysicalDeviceShadingRateImageFeaturesNV { shadingRateImage = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADING_RATE_IMAGE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "MeshShadingNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_MESH_SHADER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RayTracingKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "rayTracingPipeline"-      , checkFeature  = \PhysicalDeviceRayTracingPipelineFeaturesKHR { rayTracingPipeline } -> rayTracingPipeline-      , enableFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR {..} ->-                          PhysicalDeviceRayTracingPipelineFeaturesKHR { rayTracingPipeline = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RayQueryKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature { featureName   = "rayQuery"-                           , checkFeature  = \PhysicalDeviceRayQueryFeaturesKHR { rayQuery } -> rayQuery-                           , enableFeature = \_ -> PhysicalDeviceRayQueryFeaturesKHR { rayQuery = True }-                           }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_QUERY_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RayTraversalPrimitiveCullingKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "rayTraversalPrimitiveCulling"-      , checkFeature  = \PhysicalDeviceRayTracingPipelineFeaturesKHR { rayTraversalPrimitiveCulling } ->-                          rayTraversalPrimitiveCulling-      , enableFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR {..} ->-                          PhysicalDeviceRayTracingPipelineFeaturesKHR { rayTraversalPrimitiveCulling = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RayCullMaskKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "rayTracingMaintenance1"-      , checkFeature  = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR { rayTracingMaintenance1 } ->-                          rayTracingMaintenance1-      , enableFeature = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR {..} ->-                          PhysicalDeviceRayTracingMaintenance1FeaturesKHR { rayTracingMaintenance1 = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RayTracingNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_RAY_TRACING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "RayTracingMotionBlurNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "rayTracingMotionBlur"-      , checkFeature  = \PhysicalDeviceRayTracingMotionBlurFeaturesNV { rayTracingMotionBlur } -> rayTracingMotionBlur-      , enableFeature = \PhysicalDeviceRayTracingMotionBlurFeaturesNV {..} ->-                          PhysicalDeviceRayTracingMotionBlurFeaturesNV { rayTracingMotionBlur = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_3_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "TransformFeedback" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "transformFeedback"-      , checkFeature  = \PhysicalDeviceTransformFeedbackFeaturesEXT { transformFeedback } -> transformFeedback-      , enableFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT {..} ->-                          PhysicalDeviceTransformFeedbackFeaturesEXT { transformFeedback = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "GeometryStreams" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "geometryStreams"-      , checkFeature  = \PhysicalDeviceTransformFeedbackFeaturesEXT { geometryStreams } -> geometryStreams-      , enableFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT {..} ->-                          PhysicalDeviceTransformFeedbackFeaturesEXT { geometryStreams = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "FragmentDensityEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "fragmentDensityMap"-      , checkFeature  = \PhysicalDeviceFragmentDensityMapFeaturesEXT { fragmentDensityMap } -> fragmentDensityMap-      , enableFeature = \PhysicalDeviceFragmentDensityMapFeaturesEXT {..} ->-                          PhysicalDeviceFragmentDensityMapFeaturesEXT { fragmentDensityMap = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "PhysicalStorageBufferAddresses" -> (,)-    [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0-    , RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "bufferDeviceAddress"-      , checkFeature  = \PhysicalDeviceVulkan12Features { bufferDeviceAddress } -> bufferDeviceAddress-      , enableFeature = \PhysicalDeviceVulkan12Features {..} ->-                          PhysicalDeviceVulkan12Features { bufferDeviceAddress = True, .. }-      }-    , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "CooperativeMatrixNV" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "cooperativeMatrix"-      , checkFeature  = \PhysicalDeviceCooperativeMatrixFeaturesNV { cooperativeMatrix } -> cooperativeMatrix-      , enableFeature = \PhysicalDeviceCooperativeMatrixFeaturesNV {..} ->-                          PhysicalDeviceCooperativeMatrixFeaturesNV { cooperativeMatrix = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_COOPERATIVE_MATRIX_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "IntegerFunctions2INTEL" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "shaderIntegerFunctions2"-      , checkFeature  = \PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { shaderIntegerFunctions2 } ->-                          shaderIntegerFunctions2-      , enableFeature = \_ -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { shaderIntegerFunctions2 = True }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "ShaderSMBuiltinsNV" -> (,)-    []-    [ RequireDeviceFeature-      { featureName   = "shaderSMBuiltins"-      , checkFeature  = \PhysicalDeviceShaderSMBuiltinsFeaturesNV { shaderSMBuiltins } -> shaderSMBuiltins-      , enableFeature = \_ -> PhysicalDeviceShaderSMBuiltinsFeaturesNV { shaderSMBuiltins = True }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = NV_SHADER_SM_BUILTINS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "FragmentShaderSampleInterlockEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "fragmentShaderSampleInterlock"-      , checkFeature  = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT { fragmentShaderSampleInterlock } ->-                          fragmentShaderSampleInterlock-      , enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT {..} ->-                          PhysicalDeviceFragmentShaderInterlockFeaturesEXT { fragmentShaderSampleInterlock = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "FragmentShaderPixelInterlockEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "fragmentShaderPixelInterlock"-      , checkFeature  = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT { fragmentShaderPixelInterlock } ->-                          fragmentShaderPixelInterlock-      , enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT {..} ->-                          PhysicalDeviceFragmentShaderInterlockFeaturesEXT { fragmentShaderPixelInterlock = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "FragmentShaderShadingRateInterlockEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "fragmentShaderShadingRateInterlock"-      , checkFeature  = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT { fragmentShaderShadingRateInterlock } ->-                          fragmentShaderShadingRateInterlock-      , enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT {..} ->-                          PhysicalDeviceFragmentShaderInterlockFeaturesEXT { fragmentShaderShadingRateInterlock = True-                                                                           , ..-                                                                           }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "DemoteToHelperInvocationEXT" -> (,)-    [ 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  = \PhysicalDeviceVulkan13Features { shaderDemoteToHelperInvocation } ->-                          shaderDemoteToHelperInvocation-      , 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-                             }-    ]-  "FragmentShadingRateKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "pipelineFragmentShadingRate"-      , checkFeature  = \PhysicalDeviceFragmentShadingRateFeaturesKHR { pipelineFragmentShadingRate } ->-                          pipelineFragmentShadingRate-      , enableFeature = \PhysicalDeviceFragmentShadingRateFeaturesKHR {..} ->-                          PhysicalDeviceFragmentShadingRateFeaturesKHR { pipelineFragmentShadingRate = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_CREATE_RENDERPASS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MULTIVIEW_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_MAINTENANCE_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "WorkgroupMemoryExplicitLayoutKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "workgroupMemoryExplicitLayout"-      , checkFeature  = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { workgroupMemoryExplicitLayout } ->-                          workgroupMemoryExplicitLayout-      , enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {..} ->-                          PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { workgroupMemoryExplicitLayout = True-                                                                                 , ..-                                                                                 }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "WorkgroupMemoryExplicitLayout8BitAccessKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "workgroupMemoryExplicitLayout8BitAccess"-      , checkFeature  =-        \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { workgroupMemoryExplicitLayout8BitAccess } ->-          workgroupMemoryExplicitLayout8BitAccess-      , enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {..} ->-                          PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-                            { workgroupMemoryExplicitLayout8BitAccess = True-                            , ..-                            }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "WorkgroupMemoryExplicitLayout16BitAccessKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "workgroupMemoryExplicitLayout16BitAccess"-      , checkFeature  =-        \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR { workgroupMemoryExplicitLayout16BitAccess } ->-          workgroupMemoryExplicitLayout16BitAccess-      , enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {..} ->-                          PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR-                            { workgroupMemoryExplicitLayout16BitAccess = True-                            , ..-                            }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "DotProductInputAllKHR" -> (,)-    [ 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  = \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" -> (,)-    [ 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  = \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" -> (,)-    [ 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  = \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" -> (,)-    [ 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  = \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-                             }-    ]-  "FragmentBarycentricKHR" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "fragmentShaderBarycentric"-      , checkFeature  = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric } ->-                          fragmentShaderBarycentric-      , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR { fragmentShaderBarycentric = True }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "TextureSampleWeightedQCOM" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "textureSampleWeighted"-      , checkFeature  = \PhysicalDeviceImageProcessingFeaturesQCOM { textureSampleWeighted } -> textureSampleWeighted-      , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {..} ->-                          PhysicalDeviceImageProcessingFeaturesQCOM { textureSampleWeighted = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = QCOM_IMAGE_PROCESSING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "TextureBoxFilterQCOM" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "textureBoxFilter"-      , checkFeature  = \PhysicalDeviceImageProcessingFeaturesQCOM { textureBoxFilter } -> textureBoxFilter-      , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {..} ->-                          PhysicalDeviceImageProcessingFeaturesQCOM { textureBoxFilter = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = QCOM_IMAGE_PROCESSING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "TextureBlockMatchQCOM" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceFeature-      { featureName   = "textureBlockMatch"-      , checkFeature  = \PhysicalDeviceImageProcessingFeaturesQCOM { textureBlockMatch } -> textureBlockMatch-      , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM {..} ->-                          PhysicalDeviceImageProcessingFeaturesQCOM { textureBlockMatch = True, .. }-      }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = QCOM_IMAGE_PROCESSING_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  "MeshShadingEXT" -> (,)-    [ RequireInstanceExtension { instanceExtensionLayerName  = Nothing-                               , instanceExtensionName       = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME-                               , instanceExtensionMinVersion = 0-                               }-    ]-    [ RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = EXT_MESH_SHADER_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SPIRV_1_4_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    , RequireDeviceExtension { deviceExtensionLayerName  = Nothing-                             , deviceExtensionName       = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME-                             , deviceExtensionMinVersion = 0-                             }-    ]-  _ -> ([], [])-+import Vulkan.Extensions.VK_EXT_opacity_micromap (pattern EXT_OPACITY_MICROMAP_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_post_depth_coverage (pattern EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_atomic_float2 (pattern EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_atomic_float (pattern EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_demote_to_helper_invocation (pattern EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_image_atomic_int64 (pattern EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_stencil_export (pattern EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_subgroup_ballot (pattern EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_subgroup_vote (pattern EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_shader_viewport_index_layer (pattern EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME)+import Vulkan.Extensions.VK_EXT_transform_feedback (pattern EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME)+import Vulkan.Extensions.VK_GOOGLE_decorate_string (pattern GOOGLE_DECORATE_STRING_EXTENSION_NAME)+import Vulkan.Extensions.VK_GOOGLE_hlsl_functionality1 (pattern GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME)+import Vulkan.Extensions.VK_GOOGLE_user_type (pattern GOOGLE_USER_TYPE_EXTENSION_NAME)+import Vulkan.Extensions.VK_INTEL_shader_integer_functions2 (pattern INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_16bit_storage (pattern KHR_16BIT_STORAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_8bit_storage (pattern KHR_8BIT_STORAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_acceleration_structure (pattern KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_buffer_device_address (pattern KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_create_renderpass2 (pattern KHR_CREATE_RENDERPASS_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_deferred_host_operations (pattern KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_device_group_creation (pattern KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_device_group (pattern KHR_DEVICE_GROUP_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_format_feature_flags2 (pattern KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_fragment_shader_barycentric (pattern KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_fragment_shading_rate (pattern KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_get_memory_requirements2 (pattern KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_get_physical_device_properties2 (pattern KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_maintenance2 (pattern KHR_MAINTENANCE_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_maintenance3 (pattern KHR_MAINTENANCE_3_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_multiview (pattern KHR_MULTIVIEW_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_ray_query (pattern KHR_RAY_QUERY_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_ray_tracing_maintenance1 (pattern KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (pattern KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_atomic_int64 (pattern KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_clock (pattern KHR_SHADER_CLOCK_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_draw_parameters (pattern KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_float16_int8 (pattern KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_float_controls (pattern KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_integer_dot_product (pattern KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_non_semantic_info (pattern KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_subgroup_uniform_control_flow (pattern KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_shader_terminate_invocation (pattern KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_spirv_1_4 (pattern KHR_SPIRV_1_4_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_storage_buffer_storage_class (pattern KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_synchronization2 (pattern KHR_SYNCHRONIZATION_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_variable_pointers (pattern KHR_VARIABLE_POINTERS_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_vulkan_memory_model (pattern KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME)+import Vulkan.Extensions.VK_KHR_workgroup_memory_explicit_layout (pattern KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME)+import Vulkan.Version (pattern MAKE_API_VERSION)+import Vulkan.Extensions.VK_NVX_multiview_per_view_attributes (pattern NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_compute_shader_derivatives (pattern NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_cooperative_matrix (pattern NV_COOPERATIVE_MATRIX_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (pattern NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_geometry_shader_passthrough (pattern NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_mesh_shader (pattern NV_MESH_SHADER_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_ray_tracing (pattern NV_RAY_TRACING_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_ray_tracing_motion_blur (pattern NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_sample_mask_override_coverage (pattern NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_shader_image_footprint (pattern NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_shader_sm_builtins (pattern NV_SHADER_SM_BUILTINS_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_shader_subgroup_partitioned (pattern NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_shading_rate_image (pattern NV_SHADING_RATE_IMAGE_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_viewport_array2 (pattern NV_VIEWPORT_ARRAY_2_EXTENSION_NAME)+import Vulkan.Extensions.VK_QCOM_image_processing (pattern QCOM_IMAGE_PROCESSING_EXTENSION_NAME)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_ARITHMETIC_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_BALLOT_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_BASIC_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_CLUSTERED_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_PARTITIONED_BIT_NV))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_QUAD_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_SHUFFLE_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT))+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlags)+import Vulkan.Core11.Enums.SubgroupFeatureFlagBits (SubgroupFeatureFlagBits(SUBGROUP_FEATURE_VOTE_BIT))+-- | Check if the intersection of bits is non-zero+(.&&.) :: Bits a => a -> a -> Bool+x .&&. y = (x .&. y) /= zeroBits++spirvExtensionRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])+spirvExtensionRequirements = \case+  "SPV_KHR_variable_pointers" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+  "SPV_AMD_shader_explicit_vertex_parameter" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_gcn_shader" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_GCN_SHADER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_gpu_shader_half_float" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_gpu_shader_int16" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_GPU_SHADER_INT16_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_shader_ballot" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_BALLOT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_shader_fragment_mask" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_shader_image_load_store_lod" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_shader_trinary_minmax" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_AMD_texture_gather_bias_lod" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_shader_draw_parameters" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+  "SPV_KHR_8bit_storage" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "SPV_KHR_16bit_storage" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+  "SPV_KHR_shader_clock" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_CLOCK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_float_controls" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "SPV_KHR_storage_buffer_storage_class" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+  "SPV_KHR_post_depth_coverage" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_shader_stencil_export" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_shader_ballot" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_subgroup_vote" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_sample_mask_override_coverage" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_geometry_shader_passthrough" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_mesh_shader" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_MESH_SHADER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_viewport_array2" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_shader_subgroup_partitioned" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_shader_viewport_index_layer" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "SPV_NVX_multiview_per_view_attributes" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MULTIVIEW_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_descriptor_indexing" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "SPV_KHR_vulkan_memory_model" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "SPV_NV_compute_shader_derivatives" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_fragment_shader_barycentric" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_shader_image_footprint" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_shading_rate" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADING_RATE_IMAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_ray_tracing" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_RAY_TRACING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_ray_tracing" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_ray_query" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_QUERY_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_ray_cull_mask" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_GOOGLE_hlsl_functionality1" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_GOOGLE_user_type" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = GOOGLE_USER_TYPE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_GOOGLE_decorate_string" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = GOOGLE_DECORATE_STRING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_fragment_invocation_density" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_physical_storage_buffer" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "SPV_EXT_physical_storage_buffer" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_cooperative_matrix" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_NV_shader_sm_builtins" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADER_SM_BUILTINS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_fragment_shader_interlock" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_FRAGMENT_SHADER_INTERLOCK_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+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_CREATE_RENDERPASS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MULTIVIEW_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_2_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+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_IMAGE_ATOMIC_INT64_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" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_shader_atomic_float_add" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_fragment_shader_barycentric" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FRAGMENT_SHADER_BARYCENTRIC_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+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_shader_atomic_float16_add" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_integer_dot_product" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 3 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 3 0]+  "SPV_INTEL_shader_integer_functions" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_KHR_device_group" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+  "SPV_QCOM_image_processing" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SPV_EXT_mesh_shader" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_MESH_SHADER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  _ -> ([], [])++spirvCapabilityRequirements :: ByteString -> ([InstanceRequirement], [DeviceRequirement])+spirvCapabilityRequirements = \case+  "Matrix" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Shader" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "InputAttachment" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Sampled1D" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Image1D" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "SampledBuffer" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "ImageBuffer" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "ImageQuery" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "DerivativeControl" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "Geometry" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "geometryShader"+          , checkFeature = \PhysicalDeviceFeatures{geometryShader} -> geometryShader+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{geometryShader = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "Tessellation" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "tessellationShader"+          , checkFeature = \PhysicalDeviceFeatures{tessellationShader} -> tessellationShader+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{tessellationShader = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "Float64" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderFloat64"+          , checkFeature = \PhysicalDeviceFeatures{shaderFloat64} -> shaderFloat64+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderFloat64 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "Int64" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderInt64"+          , checkFeature = \PhysicalDeviceFeatures{shaderInt64} -> shaderInt64+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderInt64 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "Int64Atomics" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferInt64Atomics"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderBufferInt64Atomics} -> shaderBufferInt64Atomics+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderBufferInt64Atomics = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "AtomicFloat16AddEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferFloat16AtomicAdd"+          , checkFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat16AtomicAdd} -> shaderBufferFloat16AtomicAdd+          , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{..} -> PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat16AtomicAdd = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "AtomicFloat32AddEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferFloat32AtomicAdd"+          , checkFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT{shaderBufferFloat32AtomicAdd} -> shaderBufferFloat32AtomicAdd+          , enableFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT{..} -> PhysicalDeviceShaderAtomicFloatFeaturesEXT{shaderBufferFloat32AtomicAdd = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "AtomicFloat64AddEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferFloat64AtomicAdd"+          , checkFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT{shaderBufferFloat64AtomicAdd} -> shaderBufferFloat64AtomicAdd+          , enableFeature = \PhysicalDeviceShaderAtomicFloatFeaturesEXT{..} -> PhysicalDeviceShaderAtomicFloatFeaturesEXT{shaderBufferFloat64AtomicAdd = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "AtomicFloat16MinMaxEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferFloat16AtomicMinMax"+          , checkFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat16AtomicMinMax} -> shaderBufferFloat16AtomicMinMax+          , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{..} -> PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat16AtomicMinMax = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "AtomicFloat32MinMaxEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferFloat32AtomicMinMax"+          , checkFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat32AtomicMinMax} -> shaderBufferFloat32AtomicMinMax+          , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{..} -> PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat32AtomicMinMax = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "AtomicFloat64MinMaxEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderBufferFloat64AtomicMinMax"+          , checkFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat64AtomicMinMax} -> shaderBufferFloat64AtomicMinMax+          , enableFeature = \PhysicalDeviceShaderAtomicFloat2FeaturesEXT{..} -> PhysicalDeviceShaderAtomicFloat2FeaturesEXT{shaderBufferFloat64AtomicMinMax = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "Int64ImageEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderImageInt64Atomics"+          , checkFeature = \PhysicalDeviceShaderImageAtomicInt64FeaturesEXT{shaderImageInt64Atomics} -> shaderImageInt64Atomics+          , enableFeature = \PhysicalDeviceShaderImageAtomicInt64FeaturesEXT{..} -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXT{shaderImageInt64Atomics = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "Int16" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderInt16"+          , checkFeature = \PhysicalDeviceFeatures{shaderInt16} -> shaderInt16+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderInt16 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "TessellationPointSize" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderTessellationAndGeometryPointSize"+          , checkFeature = \PhysicalDeviceFeatures{shaderTessellationAndGeometryPointSize} -> shaderTessellationAndGeometryPointSize+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderTessellationAndGeometryPointSize = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "GeometryPointSize" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderTessellationAndGeometryPointSize"+          , checkFeature = \PhysicalDeviceFeatures{shaderTessellationAndGeometryPointSize} -> shaderTessellationAndGeometryPointSize+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderTessellationAndGeometryPointSize = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "ImageGatherExtended" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderImageGatherExtended"+          , checkFeature = \PhysicalDeviceFeatures{shaderImageGatherExtended} -> shaderImageGatherExtended+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderImageGatherExtended = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "StorageImageMultisample" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderStorageImageMultisample"+          , checkFeature = \PhysicalDeviceFeatures{shaderStorageImageMultisample} -> shaderStorageImageMultisample+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderStorageImageMultisample = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "UniformBufferArrayDynamicIndexing" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderUniformBufferArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceFeatures{shaderUniformBufferArrayDynamicIndexing} -> shaderUniformBufferArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderUniformBufferArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "SampledImageArrayDynamicIndexing" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderSampledImageArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceFeatures{shaderSampledImageArrayDynamicIndexing} -> shaderSampledImageArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderSampledImageArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "StorageBufferArrayDynamicIndexing" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderStorageBufferArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceFeatures{shaderStorageBufferArrayDynamicIndexing} -> shaderStorageBufferArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderStorageBufferArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "StorageImageArrayDynamicIndexing" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderStorageImageArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceFeatures{shaderStorageImageArrayDynamicIndexing} -> shaderStorageImageArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderStorageImageArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "ClipDistance" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderClipDistance"+          , checkFeature = \PhysicalDeviceFeatures{shaderClipDistance} -> shaderClipDistance+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderClipDistance = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "CullDistance" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderCullDistance"+          , checkFeature = \PhysicalDeviceFeatures{shaderCullDistance} -> shaderCullDistance+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderCullDistance = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "ImageCubeArray" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "imageCubeArray"+          , checkFeature = \PhysicalDeviceFeatures{imageCubeArray} -> imageCubeArray+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{imageCubeArray = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "SampleRateShading" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "sampleRateShading"+          , checkFeature = \PhysicalDeviceFeatures{sampleRateShading} -> sampleRateShading+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{sampleRateShading = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "SparseResidency" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderResourceResidency"+          , checkFeature = \PhysicalDeviceFeatures{shaderResourceResidency} -> shaderResourceResidency+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderResourceResidency = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "MinLod" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderResourceMinLod"+          , checkFeature = \PhysicalDeviceFeatures{shaderResourceMinLod} -> shaderResourceMinLod+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderResourceMinLod = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "SampledCubeArray" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "imageCubeArray"+          , checkFeature = \PhysicalDeviceFeatures{imageCubeArray} -> imageCubeArray+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{imageCubeArray = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "ImageMSArray" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderStorageImageMultisample"+          , checkFeature = \PhysicalDeviceFeatures{shaderStorageImageMultisample} -> shaderStorageImageMultisample+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderStorageImageMultisample = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "StorageImageExtendedFormats" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0]+  "InterpolationFunction" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "sampleRateShading"+          , checkFeature = \PhysicalDeviceFeatures{sampleRateShading} -> sampleRateShading+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{sampleRateShading = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "StorageImageReadWithoutFormat" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderStorageImageReadWithoutFormat"+          , checkFeature = \PhysicalDeviceFeatures{shaderStorageImageReadWithoutFormat} -> shaderStorageImageReadWithoutFormat+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderStorageImageReadWithoutFormat = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "StorageImageWriteWithoutFormat" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "shaderStorageImageWriteWithoutFormat"+          , checkFeature = \PhysicalDeviceFeatures{shaderStorageImageWriteWithoutFormat} -> shaderStorageImageWriteWithoutFormat+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{shaderStorageImageWriteWithoutFormat = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "MultiViewport" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0]+      [ RequireDeviceFeature+          { featureName = "multiViewport"+          , checkFeature = \PhysicalDeviceFeatures{multiViewport} -> multiViewport+          , enableFeature = \PhysicalDeviceFeatures{..} -> PhysicalDeviceFeatures{multiViewport = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0+      ]+  "DrawParameters" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "shaderDrawParameters"+          , checkFeature = \PhysicalDeviceVulkan11Features{shaderDrawParameters} -> shaderDrawParameters+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{shaderDrawParameters = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "MultiView" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "multiview"+          , checkFeature = \PhysicalDeviceVulkan11Features{multiview} -> multiview+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{multiview = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "DeviceGroup" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 1 0]+  "VariablePointersStorageBuffer" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "variablePointersStorageBuffer"+          , checkFeature = \PhysicalDeviceVulkan11Features{variablePointersStorageBuffer} -> variablePointersStorageBuffer+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{variablePointersStorageBuffer = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "VariablePointers" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "variablePointers"+          , checkFeature = \PhysicalDeviceVulkan11Features{variablePointers} -> variablePointers+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{variablePointers = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "ShaderClockKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_CLOCK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StencilExportEXT" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SubgroupBallotKHR" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SubgroupVoteKHR" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ImageReadWriteLodAMD" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ImageGatherBiasLodAMD" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "FragmentMaskAMD" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SampleMaskOverrideCoverageNV" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "GeometryShaderPassthroughNV" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ShaderViewportIndex" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "shaderOutputViewportIndex"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderOutputViewportIndex} -> shaderOutputViewportIndex+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderOutputViewportIndex = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "ShaderLayer" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "shaderOutputLayer"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderOutputLayer} -> shaderOutputLayer+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderOutputLayer = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "ShaderViewportIndexLayerEXT" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ShaderViewportIndexLayerNV" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ShaderViewportMaskNV" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_VIEWPORT_ARRAY_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "PerViewAttributesNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MULTIVIEW_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StorageBuffer16BitAccess" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "storageBuffer16BitAccess"+          , checkFeature = \PhysicalDeviceVulkan11Features{storageBuffer16BitAccess} -> storageBuffer16BitAccess+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{storageBuffer16BitAccess = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "UniformAndStorageBuffer16BitAccess" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "uniformAndStorageBuffer16BitAccess"+          , checkFeature = \PhysicalDeviceVulkan11Features{uniformAndStorageBuffer16BitAccess} -> uniformAndStorageBuffer16BitAccess+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{uniformAndStorageBuffer16BitAccess = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "StoragePushConstant16" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "storagePushConstant16"+          , checkFeature = \PhysicalDeviceVulkan11Features{storagePushConstant16} -> storagePushConstant16+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{storagePushConstant16 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "StorageInputOutput16" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "storageInputOutput16"+          , checkFeature = \PhysicalDeviceVulkan11Features{storageInputOutput16} -> storageInputOutput16+          , enableFeature = \PhysicalDeviceVulkan11Features{..} -> PhysicalDeviceVulkan11Features{storageInputOutput16 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      ]+  "GroupNonUniform" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_BASIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformVote" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_VOTE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformArithmetic" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_ARITHMETIC_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformBallot" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_BALLOT_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformShuffle" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_SHUFFLE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformShuffleRelative" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformClustered" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_CLUSTERED_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformQuad" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 1 0]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_QUAD_BIT .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 1 0+      ]+  "GroupNonUniformPartitionedNV" ->+    (,)+      []+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan11Properties"+          , checkProperty = \p -> SUBGROUP_FEATURE_PARTITIONED_BIT_NV .&&. subgroupSupportedOperations (p :: PhysicalDeviceVulkan11Properties)+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SampleMaskPostDepthCoverage" ->+    (,)+      []+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ShaderNonUniform" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [RequireDeviceVersion $ MAKE_API_VERSION 1 2 0]+  "RuntimeDescriptorArray" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "runtimeDescriptorArray"+          , checkFeature = \PhysicalDeviceVulkan12Features{runtimeDescriptorArray} -> runtimeDescriptorArray+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{runtimeDescriptorArray = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "InputAttachmentArrayDynamicIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderInputAttachmentArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderInputAttachmentArrayDynamicIndexing} -> shaderInputAttachmentArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderInputAttachmentArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "UniformTexelBufferArrayDynamicIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderUniformTexelBufferArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderUniformTexelBufferArrayDynamicIndexing} -> shaderUniformTexelBufferArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderUniformTexelBufferArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StorageTexelBufferArrayDynamicIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderStorageTexelBufferArrayDynamicIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderStorageTexelBufferArrayDynamicIndexing} -> shaderStorageTexelBufferArrayDynamicIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderStorageTexelBufferArrayDynamicIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "UniformBufferArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderUniformBufferArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderUniformBufferArrayNonUniformIndexing} -> shaderUniformBufferArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderUniformBufferArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SampledImageArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderSampledImageArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderSampledImageArrayNonUniformIndexing} -> shaderSampledImageArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderSampledImageArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StorageBufferArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderStorageBufferArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderStorageBufferArrayNonUniformIndexing} -> shaderStorageBufferArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderStorageBufferArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StorageImageArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderStorageImageArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderStorageImageArrayNonUniformIndexing} -> shaderStorageImageArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderStorageImageArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "InputAttachmentArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderInputAttachmentArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderInputAttachmentArrayNonUniformIndexing} -> shaderInputAttachmentArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderInputAttachmentArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "UniformTexelBufferArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderUniformTexelBufferArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderUniformTexelBufferArrayNonUniformIndexing} -> shaderUniformTexelBufferArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderUniformTexelBufferArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StorageTexelBufferArrayNonUniformIndexing" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderStorageTexelBufferArrayNonUniformIndexing"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderStorageTexelBufferArrayNonUniformIndexing} -> shaderStorageTexelBufferArrayNonUniformIndexing+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderStorageTexelBufferArrayNonUniformIndexing = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "Float16" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderFloat16"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderFloat16} -> shaderFloat16+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderFloat16 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "Int8" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderInt8"+          , checkFeature = \PhysicalDeviceVulkan12Features{shaderInt8} -> shaderInt8+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{shaderInt8 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StorageBuffer8BitAccess" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "storageBuffer8BitAccess"+          , checkFeature = \PhysicalDeviceVulkan12Features{storageBuffer8BitAccess} -> storageBuffer8BitAccess+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{storageBuffer8BitAccess = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_8BIT_STORAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "UniformAndStorageBuffer8BitAccess" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "uniformAndStorageBuffer8BitAccess"+          , checkFeature = \PhysicalDeviceVulkan12Features{uniformAndStorageBuffer8BitAccess} -> uniformAndStorageBuffer8BitAccess+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{uniformAndStorageBuffer8BitAccess = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_8BIT_STORAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "StoragePushConstant8" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "storagePushConstant8"+          , checkFeature = \PhysicalDeviceVulkan12Features{storagePushConstant8} -> storagePushConstant8+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{storagePushConstant8 = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_8BIT_STORAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "VulkanMemoryModel" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "vulkanMemoryModel"+          , checkFeature = \PhysicalDeviceVulkan12Features{vulkanMemoryModel} -> vulkanMemoryModel+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{vulkanMemoryModel = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "VulkanMemoryModelDeviceScope" ->+    (,)+      [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]+      [ RequireDeviceFeature+          { featureName = "vulkanMemoryModelDeviceScope"+          , checkFeature = \PhysicalDeviceVulkan12Features{vulkanMemoryModelDeviceScope} -> vulkanMemoryModelDeviceScope+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{vulkanMemoryModelDeviceScope = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "DenormPreserve" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan12Properties"+          , checkProperty = \p -> shaderDenormPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "DenormFlushToZero" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan12Properties"+          , checkProperty = \p -> shaderDenormFlushToZeroFloat16 (p :: PhysicalDeviceVulkan12Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "SignedZeroInfNanPreserve" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan12Properties"+          , checkProperty = \p -> shaderSignedZeroInfNanPreserveFloat16 (p :: PhysicalDeviceVulkan12Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RoundingModeRTE" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan12Properties"+          , checkProperty = \p -> shaderRoundingModeRTEFloat16 (p :: PhysicalDeviceVulkan12Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RoundingModeRTZ" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceProperty+          { propertyName = "VkPhysicalDeviceVulkan12Properties"+          , checkProperty = \p -> shaderRoundingModeRTZFloat16 (p :: PhysicalDeviceVulkan12Properties)+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ComputeDerivativeGroupQuadsNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "computeDerivativeGroupQuads"+          , checkFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupQuads} -> computeDerivativeGroupQuads+          , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{..} -> PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupQuads = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ComputeDerivativeGroupLinearNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "computeDerivativeGroupLinear"+          , checkFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupLinear} -> computeDerivativeGroupLinear+          , enableFeature = \PhysicalDeviceComputeShaderDerivativesFeaturesNV{..} -> PhysicalDeviceComputeShaderDerivativesFeaturesNV{computeDerivativeGroupLinear = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "FragmentBarycentricNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "fragmentShaderBarycentric"+          , checkFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{fragmentShaderBarycentric} -> fragmentShaderBarycentric+          , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{fragmentShaderBarycentric = True}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ImageFootprintNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "imageFootprint"+          , checkFeature = \PhysicalDeviceShaderImageFootprintFeaturesNV{imageFootprint} -> imageFootprint+          , enableFeature = \_ -> PhysicalDeviceShaderImageFootprintFeaturesNV{imageFootprint = True}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ShadingRateNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shadingRateImage"+          , checkFeature = \PhysicalDeviceShadingRateImageFeaturesNV{shadingRateImage} -> shadingRateImage+          , enableFeature = \PhysicalDeviceShadingRateImageFeaturesNV{..} -> PhysicalDeviceShadingRateImageFeaturesNV{shadingRateImage = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADING_RATE_IMAGE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "MeshShadingNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_MESH_SHADER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayTracingKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "rayTracingPipeline"+          , checkFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR{rayTracingPipeline} -> rayTracingPipeline+          , enableFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR{..} -> PhysicalDeviceRayTracingPipelineFeaturesKHR{rayTracingPipeline = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayQueryKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "rayQuery"+          , checkFeature = \PhysicalDeviceRayQueryFeaturesKHR{rayQuery} -> rayQuery+          , enableFeature = \_ -> PhysicalDeviceRayQueryFeaturesKHR{rayQuery = True}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_QUERY_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayTraversalPrimitiveCullingKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "rayTraversalPrimitiveCulling"+          , checkFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR{rayTraversalPrimitiveCulling} -> rayTraversalPrimitiveCulling+          , enableFeature = \PhysicalDeviceRayTracingPipelineFeaturesKHR{..} -> PhysicalDeviceRayTracingPipelineFeaturesKHR{rayTraversalPrimitiveCulling = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayCullMaskKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "rayTracingMaintenance1"+          , checkFeature = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR{rayTracingMaintenance1} -> rayTracingMaintenance1+          , enableFeature = \PhysicalDeviceRayTracingMaintenance1FeaturesKHR{..} -> PhysicalDeviceRayTracingMaintenance1FeaturesKHR{rayTracingMaintenance1 = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayTracingNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_RAY_TRACING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayTracingMotionBlurNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "rayTracingMotionBlur"+          , checkFeature = \PhysicalDeviceRayTracingMotionBlurFeaturesNV{rayTracingMotionBlur} -> rayTracingMotionBlur+          , enableFeature = \PhysicalDeviceRayTracingMotionBlurFeaturesNV{..} -> PhysicalDeviceRayTracingMotionBlurFeaturesNV{rayTracingMotionBlur = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "TransformFeedback" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "transformFeedback"+          , checkFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT{transformFeedback} -> transformFeedback+          , enableFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT{..} -> PhysicalDeviceTransformFeedbackFeaturesEXT{transformFeedback = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "GeometryStreams" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "geometryStreams"+          , checkFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT{geometryStreams} -> geometryStreams+          , enableFeature = \PhysicalDeviceTransformFeedbackFeaturesEXT{..} -> PhysicalDeviceTransformFeedbackFeaturesEXT{geometryStreams = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "FragmentDensityEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "fragmentDensityMap"+          , checkFeature = \PhysicalDeviceFragmentDensityMapFeaturesEXT{fragmentDensityMap} -> fragmentDensityMap+          , enableFeature = \PhysicalDeviceFragmentDensityMapFeaturesEXT{..} -> PhysicalDeviceFragmentDensityMapFeaturesEXT{fragmentDensityMap = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "PhysicalStorageBufferAddresses" ->+    (,)+      [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0+      , RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "bufferDeviceAddress"+          , checkFeature = \PhysicalDeviceVulkan12Features{bufferDeviceAddress} -> bufferDeviceAddress+          , enableFeature = \PhysicalDeviceVulkan12Features{..} -> PhysicalDeviceVulkan12Features{bufferDeviceAddress = True, ..}+          }+      , RequireDeviceVersion $ MAKE_API_VERSION 1 2 0+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "CooperativeMatrixNV" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "cooperativeMatrix"+          , checkFeature = \PhysicalDeviceCooperativeMatrixFeaturesNV{cooperativeMatrix} -> cooperativeMatrix+          , enableFeature = \PhysicalDeviceCooperativeMatrixFeaturesNV{..} -> PhysicalDeviceCooperativeMatrixFeaturesNV{cooperativeMatrix = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_COOPERATIVE_MATRIX_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "IntegerFunctions2INTEL" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "shaderIntegerFunctions2"+          , checkFeature = \PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{shaderIntegerFunctions2} -> shaderIntegerFunctions2+          , enableFeature = \_ -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL{shaderIntegerFunctions2 = True}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "ShaderSMBuiltinsNV" ->+    (,)+      []+      [ RequireDeviceFeature+          { featureName = "shaderSMBuiltins"+          , checkFeature = \PhysicalDeviceShaderSMBuiltinsFeaturesNV{shaderSMBuiltins} -> shaderSMBuiltins+          , enableFeature = \_ -> PhysicalDeviceShaderSMBuiltinsFeaturesNV{shaderSMBuiltins = True}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = NV_SHADER_SM_BUILTINS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "FragmentShaderSampleInterlockEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "fragmentShaderSampleInterlock"+          , checkFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT{fragmentShaderSampleInterlock} -> fragmentShaderSampleInterlock+          , enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT{..} -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT{fragmentShaderSampleInterlock = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "FragmentShaderPixelInterlockEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "fragmentShaderPixelInterlock"+          , checkFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT{fragmentShaderPixelInterlock} -> fragmentShaderPixelInterlock+          , enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT{..} -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT{fragmentShaderPixelInterlock = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "FragmentShaderShadingRateInterlockEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "fragmentShaderShadingRateInterlock"+          , checkFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT{fragmentShaderShadingRateInterlock} -> fragmentShaderShadingRateInterlock+          , enableFeature = \PhysicalDeviceFragmentShaderInterlockFeaturesEXT{..} -> PhysicalDeviceFragmentShaderInterlockFeaturesEXT{fragmentShaderShadingRateInterlock = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "DemoteToHelperInvocationEXT" ->+    (,)+      [ 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 = \PhysicalDeviceVulkan13Features{shaderDemoteToHelperInvocation} -> shaderDemoteToHelperInvocation+          , 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+          }+      ]+  "FragmentShadingRateKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "pipelineFragmentShadingRate"+          , checkFeature = \PhysicalDeviceFragmentShadingRateFeaturesKHR{pipelineFragmentShadingRate} -> pipelineFragmentShadingRate+          , enableFeature = \PhysicalDeviceFragmentShadingRateFeaturesKHR{..} -> PhysicalDeviceFragmentShadingRateFeaturesKHR{pipelineFragmentShadingRate = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_CREATE_RENDERPASS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MULTIVIEW_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "WorkgroupMemoryExplicitLayoutKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "workgroupMemoryExplicitLayout"+          , checkFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{workgroupMemoryExplicitLayout} -> workgroupMemoryExplicitLayout+          , enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{..} -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{workgroupMemoryExplicitLayout = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "WorkgroupMemoryExplicitLayout8BitAccessKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "workgroupMemoryExplicitLayout8BitAccess"+          , checkFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{workgroupMemoryExplicitLayout8BitAccess} -> workgroupMemoryExplicitLayout8BitAccess+          , enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{..} -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{workgroupMemoryExplicitLayout8BitAccess = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "WorkgroupMemoryExplicitLayout16BitAccessKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "workgroupMemoryExplicitLayout16BitAccess"+          , checkFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{workgroupMemoryExplicitLayout16BitAccess} -> workgroupMemoryExplicitLayout16BitAccess+          , enableFeature = \PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{..} -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR{workgroupMemoryExplicitLayout16BitAccess = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "DotProductInputAllKHR" ->+    (,)+      [ 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 = \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" ->+    (,)+      [ 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 = \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" ->+    (,)+      [ 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 = \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" ->+    (,)+      [ 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 = \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+          }+      ]+  "FragmentBarycentricKHR" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "fragmentShaderBarycentric"+          , checkFeature = \PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{fragmentShaderBarycentric} -> fragmentShaderBarycentric+          , enableFeature = \_ -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHR{fragmentShaderBarycentric = True}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "TextureSampleWeightedQCOM" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "textureSampleWeighted"+          , checkFeature = \PhysicalDeviceImageProcessingFeaturesQCOM{textureSampleWeighted} -> textureSampleWeighted+          , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM{..} -> PhysicalDeviceImageProcessingFeaturesQCOM{textureSampleWeighted = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "TextureBoxFilterQCOM" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "textureBoxFilter"+          , checkFeature = \PhysicalDeviceImageProcessingFeaturesQCOM{textureBoxFilter} -> textureBoxFilter+          , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM{..} -> PhysicalDeviceImageProcessingFeaturesQCOM{textureBoxFilter = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "TextureBlockMatchQCOM" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceFeature+          { featureName = "textureBlockMatch"+          , checkFeature = \PhysicalDeviceImageProcessingFeaturesQCOM{textureBlockMatch} -> textureBlockMatch+          , enableFeature = \PhysicalDeviceImageProcessingFeaturesQCOM{..} -> PhysicalDeviceImageProcessingFeaturesQCOM{textureBlockMatch = True, ..}+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = QCOM_IMAGE_PROCESSING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "MeshShadingEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_MESH_SHADER_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SPIRV_1_4_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  "RayTracingOpacityMicromapEXT" ->+    (,)+      [ RequireInstanceExtension+          { instanceExtensionLayerName = Nothing+          , instanceExtensionName = KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+          , instanceExtensionMinVersion = 0+          }+      ]+      [ RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_OPACITY_MICROMAP_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_SYNCHRONIZATION_2_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      , RequireDeviceExtension+          { deviceExtensionLayerName = Nothing+          , deviceExtensionName = KHR_MAINTENANCE_3_EXTENSION_NAME+          , deviceExtensionMinVersion = 0+          }+      ]+  _ -> ([], [])
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 229+pattern HEADER_VERSION = 230   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 229+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 230   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -1,11 +1,11 @@ cabal-version: 2.2 --- This file has been generated from package.yaml by hpack version 0.34.6.+-- This file has been generated from package.yaml by hpack version 0.34.7. -- -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.22.1+version:        3.23 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -330,6 +330,8 @@       Vulkan.Extensions.VK_EXT_depth_clip_enable       Vulkan.Extensions.VK_EXT_depth_range_unrestricted       Vulkan.Extensions.VK_EXT_descriptor_indexing+      Vulkan.Extensions.VK_EXT_device_address_binding_report+      Vulkan.Extensions.VK_EXT_device_fault       Vulkan.Extensions.VK_EXT_device_memory_report       Vulkan.Extensions.VK_EXT_direct_mode_display       Vulkan.Extensions.VK_EXT_directfb_surface@@ -338,6 +340,7 @@       Vulkan.Extensions.VK_EXT_display_surface_counter       Vulkan.Extensions.VK_EXT_extended_dynamic_state       Vulkan.Extensions.VK_EXT_extended_dynamic_state2+      Vulkan.Extensions.VK_EXT_extended_dynamic_state3       Vulkan.Extensions.VK_EXT_external_memory_dma_buf       Vulkan.Extensions.VK_EXT_external_memory_host       Vulkan.Extensions.VK_EXT_filter_cubic@@ -371,12 +374,14 @@       Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled       Vulkan.Extensions.VK_EXT_mutable_descriptor_type       Vulkan.Extensions.VK_EXT_non_seamless_cube_map+      Vulkan.Extensions.VK_EXT_opacity_micromap       Vulkan.Extensions.VK_EXT_pageable_device_local_memory       Vulkan.Extensions.VK_EXT_pci_bus_info       Vulkan.Extensions.VK_EXT_physical_device_drm       Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control       Vulkan.Extensions.VK_EXT_pipeline_creation_feedback       Vulkan.Extensions.VK_EXT_pipeline_properties+      Vulkan.Extensions.VK_EXT_pipeline_protected_access       Vulkan.Extensions.VK_EXT_pipeline_robustness       Vulkan.Extensions.VK_EXT_post_depth_coverage       Vulkan.Extensions.VK_EXT_primitive_topology_list_restart@@ -550,6 +555,8 @@       Vulkan.Extensions.VK_NV_inherited_viewport_scissor       Vulkan.Extensions.VK_NV_linear_color_attachment       Vulkan.Extensions.VK_NV_mesh_shader+      Vulkan.Extensions.VK_NV_optical_flow+      Vulkan.Extensions.VK_NV_present_barrier       Vulkan.Extensions.VK_NV_ray_tracing       Vulkan.Extensions.VK_NV_ray_tracing_motion_blur       Vulkan.Extensions.VK_NV_representative_fragment_test