packages feed

vulkan 3.26.3 → 3.26.4

raw patch · 70 files changed

+5356/−2673 lines, 70 files

Files

changelog.md view
@@ -2,6 +2,10 @@  ## WIP +## [3.26.4] - 2025-05-31++- Bump API version to v1.3.273+ ## [3.26.3] - 2025-05-18  - Bump API version to v1.3.271
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.26.3"+version: "3.26.4" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -125,7 +125,7 @@ import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_maintenance5 (BufferUsageFlags2CreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)@@ -402,6 +402,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencySurfaceCapabilitiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_low_latency2 (LatencyTimingsFrameReportNV) import {-# SOURCE #-} Vulkan.Core10.LayerDiscovery (LayerProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_layer_settings (LayerSettingEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_layer_settings (LayerSettingsCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_macos_surface (MacOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.Memory (MappedMemoryRange) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_device_group (MemoryAllocateFlagsInfo)@@ -478,6 +480,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (PhysicalDeviceBufferDeviceAddressFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderPropertiesHUAWEI)+import {-# SOURCE #-} Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader (PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI) import {-# SOURCE #-} Vulkan.Extensions.VK_AMD_device_coherent_memory (PhysicalDeviceCoherentMemoryFeaturesAMD) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_color_write_enable (PhysicalDeviceColorWriteEnableFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_compute_shader_derivatives (PhysicalDeviceComputeShaderDerivativesFeaturesNV)@@ -660,6 +663,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedPropertiesARM) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2PropertiesEXT)@@ -725,8 +730,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)@@ -786,7 +792,7 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineTessellationStateCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineVertexInputStateCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)@@ -834,6 +840,9 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (RenderPassInputAttachmentAspectCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeInfoARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeSubmitInfoARM) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_subpass_merge_feedback (RenderPassSubpassFeedbackInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)@@ -946,7 +955,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (VertexInputBindingDescription) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputBindingDescription2EXT)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NN_vi_surface (ViSurfaceCreateInfoNN) import {-# SOURCE #-} Vulkan.Core10.Pipeline (Viewport) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_viewport_swizzle (ViewportSwizzleNV)@@ -1114,6 +1123,7 @@   Extends CommandBufferInheritanceInfo CommandBufferInheritanceRenderingInfo = ()   Extends CommandBufferInheritanceInfo AttachmentSampleCountInfoAMD = ()   Extends CommandBufferInheritanceInfo MultiviewPerViewAttributesInfoNVX = ()+  Extends CommandBufferSubmitInfo RenderPassStripeSubmitInfoARM = ()   Extends ComputePipelineCreateInfo PipelineCreateFlags2CreateInfoKHR = ()   Extends ComputePipelineCreateInfo PipelineCreationFeedbackCreateInfo = ()   Extends ComputePipelineCreateInfo SubpassShadingPipelineCreateInfoHUAWEI = ()@@ -1162,7 +1172,7 @@   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicInt64Features = ()   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()-  Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()+  Extends DeviceCreateInfo PhysicalDeviceVertexAttributeDivisorFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceASTCDecodeFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceTransformFeedbackFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()@@ -1231,7 +1241,7 @@   Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()-  Extends DeviceCreateInfo PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ()+  Extends DeviceCreateInfo (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = ()   Extends DeviceCreateInfo PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()   Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateFeaturesKHR = ()   Extends DeviceCreateInfo PhysicalDeviceShaderTerminateInvocationFeatures = ()@@ -1309,6 +1319,7 @@   Extends DeviceCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()   Extends DeviceCreateInfo PhysicalDeviceSchedulingControlsFeaturesARM = ()   Extends DeviceCreateInfo PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = ()+  Extends DeviceCreateInfo PhysicalDeviceRenderPassStripedFeaturesARM = ()   Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoKHR = ()   Extends DeviceQueueCreateInfo DeviceQueueShaderCoreControlCreateInfoARM = ()   Extends EventCreateInfo ExportMetalObjectCreateInfoEXT = ()@@ -1384,6 +1395,7 @@   Extends InstanceCreateInfo DebugReportCallbackCreateInfoEXT = ()   Extends InstanceCreateInfo ValidationFlagsEXT = ()   Extends InstanceCreateInfo ValidationFeaturesEXT = ()+  Extends InstanceCreateInfo LayerSettingsCreateInfoEXT = ()   Extends InstanceCreateInfo DebugUtilsMessengerCreateInfoEXT = ()   Extends InstanceCreateInfo ExportMetalObjectCreateInfoEXT = ()   Extends InstanceCreateInfo DirectDriverLoadingListLUNARG = ()@@ -1408,6 +1420,7 @@   Extends MemoryAllocateInfo ImportScreenBufferInfoQNX = ()   Extends MemoryRequirements2 MemoryDedicatedRequirements = ()   Extends OpticalFlowSessionCreateInfoNV OpticalFlowSessionCreatePrivateDataInfoNV = ()+  Extends PhysicalDeviceClusterCullingShaderFeaturesHUAWEI PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = ()   Extends PhysicalDeviceExternalBufferInfo BufferUsageFlags2CreateInfoKHR = ()   Extends PhysicalDeviceExternalSemaphoreInfo SemaphoreTypeCreateInfo = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceDeviceGeneratedCommandsFeaturesNV = ()@@ -1439,7 +1452,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicInt64Features = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloatFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderAtomicFloat2FeaturesEXT = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesEXT = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexAttributeDivisorFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceASTCDecodeFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceTransformFeedbackFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRepresentativeFragmentTestFeaturesNV = ()@@ -1506,7 +1519,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSubpassShadingFeaturesHUAWEI = ()-  Extends PhysicalDeviceFeatures2 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = ()+  Extends PhysicalDeviceFeatures2 (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateFeaturesKHR = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceShaderTerminateInvocationFeatures = ()@@ -1583,6 +1596,7 @@   Extends PhysicalDeviceFeatures2 PhysicalDeviceCudaKernelLaunchFeaturesNV = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceSchedulingControlsFeaturesARM = ()   Extends PhysicalDeviceFeatures2 PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = ()+  Extends PhysicalDeviceFeatures2 PhysicalDeviceRenderPassStripedFeaturesARM = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = ()   Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()   Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceImageDrmFormatModifierInfoEXT = ()@@ -1617,6 +1631,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceDescriptorIndexingProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceTimelineSemaphoreProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceVertexAttributeDivisorPropertiesEXT = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceVertexAttributeDivisorPropertiesKHR = ()   Extends PhysicalDeviceProperties2 PhysicalDevicePCIBusInfoPropertiesEXT = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceDepthStencilResolveProperties = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceTransformFeedbackPropertiesEXT = ()@@ -1676,6 +1691,7 @@   Extends PhysicalDeviceProperties2 PhysicalDeviceExternalFormatResolvePropertiesANDROID = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceCudaKernelLaunchPropertiesNV = ()   Extends PhysicalDeviceProperties2 PhysicalDeviceSchedulingControlsPropertiesARM = ()+  Extends PhysicalDeviceProperties2 PhysicalDeviceRenderPassStripedPropertiesARM = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = ()   Extends PhysicalDeviceSurfaceInfo2KHR SurfacePresentModeEXT = ()@@ -1700,7 +1716,7 @@   Extends PipelineShaderStageCreateInfo PipelineRobustnessCreateInfoEXT = ()   Extends PipelineShaderStageCreateInfo PipelineShaderStageNodeCreateInfoAMDX = ()   Extends PipelineTessellationStateCreateInfo PipelineTessellationDomainOriginStateCreateInfo = ()-  Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoEXT = ()+  Extends PipelineVertexInputStateCreateInfo PipelineVertexInputDivisorStateCreateInfoKHR = ()   Extends PipelineViewportStateCreateInfo PipelineViewportWScalingStateCreateInfoNV = ()   Extends PipelineViewportStateCreateInfo PipelineViewportSwizzleStateCreateInfoNV = ()   Extends PipelineViewportStateCreateInfo PipelineViewportExclusiveScissorStateCreateInfoNV = ()@@ -1731,6 +1747,7 @@   Extends RenderPassBeginInfo RenderPassAttachmentBeginInfo = ()   Extends RenderPassBeginInfo RenderPassTransformBeginInfoQCOM = ()   Extends RenderPassBeginInfo MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = ()+  Extends RenderPassBeginInfo RenderPassStripeBeginInfoARM = ()   Extends RenderPassCreateInfo RenderPassMultiviewCreateInfo = ()   Extends RenderPassCreateInfo RenderPassInputAttachmentAspectCreateInfo = ()   Extends RenderPassCreateInfo RenderPassFragmentDensityMapCreateInfoEXT = ()@@ -1743,6 +1760,7 @@   Extends RenderingInfo RenderingFragmentDensityMapAttachmentInfoEXT = ()   Extends RenderingInfo MultiviewPerViewAttributesInfoNVX = ()   Extends RenderingInfo MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = ()+  Extends RenderingInfo RenderPassStripeBeginInfoARM = ()   Extends SamplerCreateInfo SamplerYcbcrConversionInfo = ()   Extends SamplerCreateInfo SamplerReductionModeCreateInfo = ()   Extends SamplerCreateInfo SamplerCustomBorderColorCreateInfoEXT = ()@@ -1918,6 +1936,7 @@   STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT -> go @DebugReportCallbackCreateInfoEXT   STRUCTURE_TYPE_VALIDATION_FLAGS_EXT -> go @ValidationFlagsEXT   STRUCTURE_TYPE_VALIDATION_FEATURES_EXT -> go @ValidationFeaturesEXT+  STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT -> go @LayerSettingsCreateInfoEXT   STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD -> go @PipelineRasterizationStateRasterizationOrderAMD   STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV -> go @DedicatedAllocationImageCreateInfoNV   STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV -> go @DedicatedAllocationBufferCreateInfoNV@@ -2051,8 +2070,9 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES -> go @PhysicalDeviceTimelineSemaphoreProperties   STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO -> go @SemaphoreTypeCreateInfo   STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO -> go @TimelineSemaphoreSubmitInfo-  STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT -> go @PipelineVertexInputDivisorStateCreateInfoEXT+  STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR -> go @PipelineVertexInputDivisorStateCreateInfoKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT -> go @PhysicalDeviceVertexAttributeDivisorPropertiesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR -> go @PhysicalDeviceVertexAttributeDivisorPropertiesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT -> go @PhysicalDevicePCIBusInfoPropertiesEXT   STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID -> go @ImportAndroidHardwareBufferInfoANDROID   STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID -> go @AndroidHardwareBufferUsageANDROID@@ -2065,7 +2085,7 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES -> go @PhysicalDeviceShaderAtomicInt64Features   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloatFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT -> go @PhysicalDeviceShaderAtomicFloat2FeaturesEXT-  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT -> go @PhysicalDeviceVertexAttributeDivisorFeaturesEXT+  STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR -> go @PhysicalDeviceVertexAttributeDivisorFeaturesKHR   STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV -> go @QueueFamilyCheckpointPropertiesNV   STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES -> go @PhysicalDeviceDepthStencilResolveProperties   STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE -> go @SubpassDescriptionDepthStencilResolve@@ -2213,7 +2233,8 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR   STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT   STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI -> go @PhysicalDeviceSubpassShadingFeaturesHUAWEI-  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI -> go @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI -> go @(PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[])+  STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI -> go @PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI   STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT -> go @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT   STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR -> go @FragmentShadingRateAttachmentInfoKHR   STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR -> go @PipelineFragmentShadingRateStateCreateInfoKHR@@ -2403,6 +2424,10 @@   STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM -> go @PhysicalDeviceSchedulingControlsFeaturesARM   STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM -> go @PhysicalDeviceSchedulingControlsPropertiesARM   STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG -> go @PhysicalDeviceRelaxedLineRasterizationFeaturesIMG+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM -> go @PhysicalDeviceRenderPassStripedFeaturesARM+  STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM -> go @PhysicalDeviceRenderPassStripedPropertiesARM+  STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM -> go @RenderPassStripeBeginInfoARM+  STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM -> go @RenderPassStripeSubmitInfoARM   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@@ -2463,6 +2488,7 @@ {-# complete (::&) :: DebugReportCallbackCreateInfoEXT #-} {-# complete (::&) :: ValidationFlagsEXT #-} {-# complete (::&) :: ValidationFeaturesEXT #-}+{-# complete (::&) :: LayerSettingsCreateInfoEXT #-} {-# complete (::&) :: PipelineRasterizationStateRasterizationOrderAMD #-} {-# complete (::&) :: DedicatedAllocationImageCreateInfoNV #-} {-# complete (::&) :: DedicatedAllocationBufferCreateInfoNV #-}@@ -2596,8 +2622,9 @@ {-# complete (::&) :: PhysicalDeviceTimelineSemaphoreProperties #-} {-# complete (::&) :: SemaphoreTypeCreateInfo #-} {-# complete (::&) :: TimelineSemaphoreSubmitInfo #-}-{-# complete (::&) :: PipelineVertexInputDivisorStateCreateInfoEXT #-}+{-# complete (::&) :: PipelineVertexInputDivisorStateCreateInfoKHR #-} {-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorPropertiesEXT #-}+{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorPropertiesKHR #-} {-# complete (::&) :: PhysicalDevicePCIBusInfoPropertiesEXT #-} {-# complete (::&) :: ImportAndroidHardwareBufferInfoANDROID #-} {-# complete (::&) :: AndroidHardwareBufferUsageANDROID #-}@@ -2610,7 +2637,7 @@ {-# complete (::&) :: PhysicalDeviceShaderAtomicInt64Features #-} {-# complete (::&) :: PhysicalDeviceShaderAtomicFloatFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceShaderAtomicFloat2FeaturesEXT #-}-{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceVertexAttributeDivisorFeaturesKHR #-} {-# complete (::&) :: QueueFamilyCheckpointPropertiesNV #-} {-# complete (::&) :: PhysicalDeviceDepthStencilResolveProperties #-} {-# complete (::&) :: SubpassDescriptionDepthStencilResolve #-}@@ -2759,6 +2786,7 @@ {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceSubpassShadingFeaturesHUAWEI #-} {-# complete (::&) :: PhysicalDeviceClusterCullingShaderFeaturesHUAWEI #-}+{-# complete (::&) :: PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI #-} {-# complete (::&) :: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT #-} {-# complete (::&) :: FragmentShadingRateAttachmentInfoKHR #-} {-# complete (::&) :: PipelineFragmentShadingRateStateCreateInfoKHR #-}@@ -2948,6 +2976,10 @@ {-# complete (::&) :: PhysicalDeviceSchedulingControlsFeaturesARM #-} {-# complete (::&) :: PhysicalDeviceSchedulingControlsPropertiesARM #-} {-# complete (::&) :: PhysicalDeviceRelaxedLineRasterizationFeaturesIMG #-}+{-# complete (::&) :: PhysicalDeviceRenderPassStripedFeaturesARM #-}+{-# complete (::&) :: PhysicalDeviceRenderPassStripedPropertiesARM #-}+{-# complete (::&) :: RenderPassStripeBeginInfoARM #-}+{-# complete (::&) :: RenderPassStripeSubmitInfoARM #-}  -- | View the head and tail of a 'Chain', see '::&' --
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -215,6 +215,7 @@ import Vulkan.Core10.Handles (RenderPass) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer (RenderPassAttachmentBeginInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM) import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlagBits(..)) import Vulkan.Core10.Enums.ShaderStageFlagBits (ShaderStageFlags)@@ -2098,10 +2099,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDraw-None-08601# For each push constant that is@@ -2110,11 +2111,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDraw-maintenance4-08602# If the@@ -2125,17 +2125,20 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDraw-None-08114# Descriptors in each bound descriptor---     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to---     the pipeline bind point used by this command and the bound+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid as+--     described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound --     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --@@ -2185,14 +2188,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDraw-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDraw-None-08608# If a pipeline is bound to the pipeline --     bind point used by this command, there /must/ not have been any --     calls to dynamic state setting commands for any state not specified@@ -2233,6 +2228,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDraw-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -2805,16 +2808,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDraw-sampleLocationsPerPixel-07934# If the bound graphics---     pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDraw-None-07840# If the bound graphics pipeline state was --     created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -3293,22 +3286,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDraw-None-08644# If a shader object is bound to any --     graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -3409,40 +3416,40 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912# If the+-- -   #VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDraw-colorAttachmentCount-09362# If the current render@@ -3849,9 +3856,7 @@ --     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+--     currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -3865,9 +3870,7 @@ --     '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+--     currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -5567,6 +5570,32 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --     stages --+-- -   #VUID-vkCmdDraw-pNext-09461# If the bound graphics pipeline state+--     was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-vkCmdDraw-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-vkCmdDraw-commandBuffer-parameter# @commandBuffer@ /must/ be a@@ -5836,10 +5865,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexed-None-08601# For each push constant that is@@ -5848,11 +5877,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexed-maintenance4-08602# If the@@ -5863,19 +5891,21 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexed-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawIndexed-None-08115# If the descriptors used by the@@ -5924,14 +5954,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawIndexed-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawIndexed-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -5975,6 +5997,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawIndexed-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -6553,16 +6583,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexed-sampleLocationsPerPixel-07934# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawIndexed-None-07840# If the bound graphics pipeline --     state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -7043,22 +7063,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndexed-None-08644# If a shader object is bound to --     any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -7160,42 +7194,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08912# If+-- -   #VUID-vkCmdDrawIndexed-dynamicRenderingUnusedAttachments-08911# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawIndexed-colorAttachmentCount-09362# If the current@@ -7603,8 +7637,6 @@ --     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@@ -7619,8 +7651,6 @@ --     '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@@ -9345,6 +9375,32 @@ --     @indexType@, where the index buffer, @indexType@, and @offset@ are --     specified via 'cmdBindIndexBuffer' --+-- -   #VUID-vkCmdDrawIndexed-pNext-09461# If the bound graphics pipeline+--     state was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-vkCmdDrawIndexed-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+-- -- -   #VUID-vkCmdDrawIndexed-robustBufferAccess2-08798# If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2> --     is not enabled, (@indexSize@ × (@firstIndex@ + @indexCount@) +@@ -9614,10 +9670,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirect-None-08601# For each push constant that is@@ -9626,11 +9682,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirect-maintenance4-08602# If the@@ -9641,19 +9696,21 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirect-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawIndirect-None-08115# If the descriptors used by the@@ -9702,14 +9759,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawIndirect-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawIndirect-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -9753,6 +9802,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawIndirect-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -10332,16 +10389,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirect-sampleLocationsPerPixel-07934# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawIndirect-None-07840# If the bound graphics pipeline --     state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -10822,22 +10869,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndirect-None-08644# If a shader object is bound to --     any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -10939,42 +11000,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08912# If+-- -   #VUID-vkCmdDrawIndirect-dynamicRenderingUnusedAttachments-08911# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawIndirect-colorAttachmentCount-09362# If the current@@ -11382,8 +11443,6 @@ --     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@@ -11398,8 +11457,6 @@ --     '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@@ -13388,10 +13445,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexedIndirect-None-08601# For each push constant@@ -13400,11 +13457,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexedIndirect-maintenance4-08602# If the@@ -13415,19 +13471,21 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexedIndirect-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawIndexedIndirect-None-08115# If the descriptors used@@ -13478,14 +13536,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawIndexedIndirect-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -13529,6 +13579,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawIndexedIndirect-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -14108,16 +14166,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirect-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawIndexedIndirect-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -14598,22 +14646,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndexedIndirect-None-08644# If a shader object is --     bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -14715,42 +14777,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawIndexedIndirect-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-09362# If the@@ -15158,9 +15220,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -15174,9 +15234,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -17182,10 +17240,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatch-None-08601# For each push constant that is@@ -17194,11 +17252,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatch-maintenance4-08602# If the@@ -17209,17 +17266,20 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatch-None-08114# Descriptors in each bound descriptor---     set, specified via 'cmdBindDescriptorSets', /must/ be valid if they---     are statically used by the 'Vulkan.Core10.Handles.Pipeline' bound to---     the pipeline bind point used by this command and the bound+--     set, specified via 'cmdBindDescriptorSets', /must/ be valid as+--     described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound --     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' --@@ -17269,14 +17329,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDispatch-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDispatch-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -17320,6 +17372,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDispatch-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -17834,10 +17894,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchIndirect-None-08601# For each push constant that@@ -17846,11 +17906,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchIndirect-maintenance4-08602# If the@@ -17861,19 +17920,21 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchIndirect-None-08114# Descriptors in each bound --     descriptor set, specified via 'cmdBindDescriptorSets', /must/ be---     valid if they are statically used by the---     'Vulkan.Core10.Handles.Pipeline' bound to the pipeline bind point---     used by this command and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDispatchIndirect-None-08115# If the descriptors used by@@ -17924,14 +17985,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDispatchIndirect-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDispatchIndirect-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -17975,6 +18028,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDispatchIndirect-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -18547,6 +18608,14 @@ --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' --+-- -   #VUID-vkCmdCopyImage-srcImage-09460# If @srcImage@ and @dstImage@+--     are the same, and any elements of @pRegions@ contains the+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and+--     overlapping array layers, then the @srcImageLayout@ and+--     @dstImageLayout@ /must/ be+--     '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@@ -19225,6 +19294,14 @@ --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL' --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' --+-- -   #VUID-vkCmdBlitImage-srcImage-09459# If @srcImage@ and @dstImage@+--     are the same, and an elements of @pRegions@ contains the+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and+--     overlapping array layers, then the @srcImageLayout@ and+--     @dstImageLayout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+-- -- -   #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@@ -23430,11 +23507,12 @@ -- -- == Valid Usage ----- -   @firstQuery@ /must/ be less than the number of queries in---     @queryPool@+-- -   #VUID-vkCmdResetQueryPool-firstQuery-09436# @firstQuery@ /must/ be+--     less than the number of queries in @queryPool@ ----- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or---     equal to the number of queries in @queryPool@+-- -   #VUID-vkCmdResetQueryPool-firstQuery-09437# 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@@ -23561,15 +23639,16 @@ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after> -- another timestamp write in the same submission /must/ not have a lower -- value unless its value overflows the maximum supported integer bit width--- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends--- to timestamp writes across all submissions on the same logical device:--- any timestamp write that+-- of the query. If @VK_KHR_calibrated_timestamps@ or+-- @VK_EXT_calibrated_timestamps@ is enabled, this extends to timestamp+-- writes across all submissions on the same logical device: any timestamp+-- write that -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after> -- another /must/ not have a lower value unless its value overflows the -- maximum supported integer bit width of the query. Timestamps written by -- this command /must/ be in the--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'--- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.TIME_DOMAIN_DEVICE_KHR'+-- <VkTimeDomainKHR.html time domain>. If an overflow occurs, the timestamp -- value /must/ wrap back to zero. -- -- Note@@ -23579,8 +23658,8 @@ -- timestamp from a newer one to determine the execution time of a sequence -- of commands is only a reliable measurement if the two timestamp writes -- were performed in the same submission, or if the writes were performed--- on the same logical device and @VK_EXT_calibrated_timestamps@ is--- enabled.+-- on the same logical device and @VK_KHR_calibrated_timestamps@ or+-- @VK_EXT_calibrated_timestamps@ is enabled. -- -- If 'cmdWriteTimestamp' is called while executing a render pass instance -- that has multiview enabled, the timestamp uses N consecutive query@@ -23859,20 +23938,24 @@ -- -- == Valid Usage ----- -   @firstQuery@ /must/ be less than the number of queries in---     @queryPool@+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-09436# @firstQuery@+--     /must/ be less than the number of queries in @queryPool@ ----- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or---     equal to the number of queries in @queryPool@+-- -   #VUID-vkCmdCopyQueryPoolResults-firstQuery-09437# The sum of+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the+--     number of queries in @queryPool@ ----- -   If @queryCount@ is greater than 1, @stride@ /must/ not be zero+-- -   #VUID-vkCmdCopyQueryPoolResults-queryCount-09438# If @queryCount@ is+--     greater than 1, @stride@ /must/ not be zero ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09439# 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' ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09440# 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',@@ -23880,18 +23963,20 @@ --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT', --     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09441# If the @queryType@+--     used to create @queryPool@ was --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', --     the @queryPool@ /must/ have been recorded once for each pass as --     retrieved via a call to --     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkCmdCopyQueryPoolResults-queryType-09442# If the @queryType@+--     used to create @queryPool@ was --     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include --     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ ----- -   If @flags@ includes @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it---     /must/ not include+-- -   #VUID-vkCmdCopyQueryPoolResults-flags-09443# If @flags@ includes+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT' -- -- -   #VUID-vkCmdCopyQueryPoolResults-None-09402# All queries used by the@@ -26333,7 +26418,11 @@ --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM' --     structure included in the @pNext@ chain is not @0@, then --     @renderArea@ /must/ specify a render area that includes the union of---     all per view render areas.+--     all per view render areas. If the @pNext@ chain contains a+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'+--     structure, the union of stripe areas defined by the elements of+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM'::@pStripeInfos@+--     /must/ cover the @renderArea@ -- -- == Valid Usage (Implicit) --@@ -26347,6 +26436,7 @@ --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM', --     'Vulkan.Core12.Promoted_From_VK_KHR_imageless_framebuffer.RenderPassAttachmentBeginInfo', --     'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT',+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM', --     or --     'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM' --@@ -26407,6 +26497,7 @@   getNext RenderPassBeginInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderPassBeginInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @RenderPassStripeBeginInfoARM = Just f     | Just Refl <- eqT @e @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = Just f     | Just Refl <- eqT @e @RenderPassTransformBeginInfoQCOM = Just f     | Just Refl <- eqT @e @RenderPassAttachmentBeginInfo = Just f
src/Vulkan/Core10/Device.hs view
@@ -213,6 +213,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_pipeline (PhysicalDeviceRayTracingPipelineFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (PhysicalDeviceSamplerYcbcrConversionFeatures)@@ -253,7 +254,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan12Features)@@ -1020,6 +1021,7 @@ --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', --     'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR', --     'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM', --     'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV', --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', --     'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.PhysicalDeviceSamplerYcbcrConversionFeatures',@@ -1060,7 +1062,7 @@ --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackFeaturesEXT', --     '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_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR', --     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', --     'Vulkan.Core12.PhysicalDeviceVulkan11Features', --     'Vulkan.Core12.PhysicalDeviceVulkan12Features',@@ -1152,6 +1154,7 @@   getNext DeviceCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = Just f     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsFeaturesARM = Just f     | Just Refl <- eqT @e @DeviceQueueShaderCoreControlCreateInfoARM = Just f@@ -1229,7 +1232,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = Just f+    | Just Refl <- eqT @e @(PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f@@ -1298,7 +1301,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -175,6 +175,7 @@ import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceQueueFamilyProperties)) import Vulkan.Core10.Enums.InstanceCreateFlagBits (InstanceCreateFlags) import Vulkan.Core10.Handles (Instance_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_layer_settings (LayerSettingsCreateInfoEXT) import Vulkan.Core10.APIConstants (MAX_MEMORY_HEAPS) import Vulkan.Core10.APIConstants (MAX_MEMORY_TYPES) import Vulkan.Core10.APIConstants (MAX_PHYSICAL_DEVICE_NAME_SIZE)@@ -1564,15 +1565,17 @@ --     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT', --     'Vulkan.Extensions.VK_LUNARG_direct_driver_loading.DirectDriverLoadingListLUNARG', --     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT',+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT', --     'Vulkan.Extensions.VK_EXT_validation_features.ValidationFeaturesEXT', --     or 'Vulkan.Extensions.VK_EXT_validation_flags.ValidationFlagsEXT' -- -- -   #VUID-VkInstanceCreateInfo-sType-unique# The @sType@ value of each --     struct in the @pNext@ chain /must/ be unique, with the exception of --     structures of type---     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT'+--     'Vulkan.Extensions.VK_EXT_debug_utils.DebugUtilsMessengerCreateInfoEXT',+--     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT', --     or---     'Vulkan.Extensions.VK_EXT_metal_objects.ExportMetalObjectCreateInfoEXT'+--     'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT' -- -- -   #VUID-VkInstanceCreateInfo-flags-parameter# @flags@ /must/ be a --     valid combination of@@ -1640,6 +1643,7 @@     | Just Refl <- eqT @e @DirectDriverLoadingListLUNARG = Just f     | Just Refl <- eqT @e @ExportMetalObjectCreateInfoEXT = Just f     | Just Refl <- eqT @e @DebugUtilsMessengerCreateInfoEXT = Just f+    | Just Refl <- eqT @e @LayerSettingsCreateInfoEXT = Just f     | Just Refl <- eqT @e @ValidationFeaturesEXT = Just f     | Just Refl <- eqT @e @ValidationFlagsEXT = Just f     | Just Refl <- eqT @e @DebugReportCallbackCreateInfoEXT = Just f
src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs view
@@ -135,10 +135,13 @@ -- -- -   'PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies that --     triangle primitives will be skipped during traversal using---     @OpTraceRayKHR@.+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>+--     instructions. -- -- -   'PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that AABB---     primitives will be skipped during traversal using @OpTraceRayKHR@.+--     primitives will be skipped during traversal using+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>+--     instructions. -- -- -   'PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' --     specifies that the shader group handles /can/ be saved and reused on
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -50,12 +50,16 @@                                                         , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO                                                         , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV+                                                        , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX                                                         , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX                                                         , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX                                                         , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX                                                         , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR+                                                        , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM                                                         , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM@@ -84,6 +88,7 @@                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM+                                                        , STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV@@ -152,6 +157,11 @@                                                         , 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_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM+                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM+                                                        , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM+                                                        , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM                                                         , 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@@ -166,6 +176,7 @@                                                         , 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_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI                                                         , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI                                                         , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV@@ -414,15 +425,12 @@                                                         , 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@@ -874,7 +882,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo', -- 'Vulkan.Extensions.VK_KHR_maintenance5.BufferUsageFlags2CreateInfoKHR', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo',--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.CalibratedTimestampInfoKHR', -- 'Vulkan.Extensions.VK_KHR_synchronization2.CheckpointData2NV', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.CheckpointDataNV', -- 'Vulkan.Core10.CommandBuffer.CommandBufferAllocateInfo',@@ -1100,6 +1108,7 @@ -- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySubmissionPresentIdNV', -- 'Vulkan.Extensions.VK_NV_low_latency2.LatencySurfaceCapabilitiesNV', -- 'Vulkan.Extensions.VK_NV_low_latency2.LatencyTimingsFrameReportNV',+-- 'Vulkan.Extensions.VK_EXT_layer_settings.LayerSettingsCreateInfoEXT', -- 'Vulkan.Extensions.VK_MVK_macos_surface.MacOSSurfaceCreateInfoMVK', -- 'Vulkan.Core10.Memory.MappedMemoryRange', -- 'Vulkan.Core11.Promoted_From_VK_KHR_device_group.MemoryAllocateFlagsInfo',@@ -1164,6 +1173,7 @@ -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',@@ -1342,6 +1352,8 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV', -- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT',@@ -1406,8 +1418,9 @@ -- '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_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkPhysicalDeviceVideoFormatInfoKHR VkPhysicalDeviceVideoFormatInfoKHR>,@@ -1466,7 +1479,7 @@ -- '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.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR', -- 'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PipelineViewportCoarseSampleOrderStateCreateInfoNV', -- 'Vulkan.Extensions.VK_EXT_depth_clip_control.PipelineViewportDepthClipControlCreateInfoEXT',@@ -1509,6 +1522,9 @@ -- '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_ARM_render_pass_striped.RenderPassStripeBeginInfoARM',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM', -- 'Vulkan.Extensions.VK_EXT_subpass_merge_feedback.RenderPassSubpassFeedbackCreateInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM', -- 'Vulkan.Extensions.VK_KHR_maintenance5.RenderingAreaInfoKHR',@@ -1819,6 +1835,9 @@ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = StructureType 1000546000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR"+pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = StructureType 1000184000+ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = StructureType 1000530000 @@ -1837,6 +1856,15 @@ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX" pattern STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = StructureType 1000529000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = StructureType 1000190002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = StructureType 1000190001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = StructureType 1000525000+ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = StructureType 1000524000 @@ -1921,6 +1949,9 @@ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = StructureType 1000497000 +-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = StructureType 1000496000+ -- 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 @@ -2125,6 +2156,21 @@ -- 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_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = StructureType 1000424004++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM"+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = StructureType 1000424003++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM"+pattern STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = StructureType 1000424002++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = StructureType 1000424001++-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = StructureType 1000424000+ -- 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 @@ -2167,6 +2213,9 @@ -- 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_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = StructureType 1000404002+ -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = StructureType 1000404001 @@ -2911,12 +2960,6 @@ -- 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 @@ -2935,9 +2978,6 @@ -- 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 @@ -4102,12 +4142,16 @@   , STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO   , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO   , STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV+  , STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR   , STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX   , STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX   , STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX   , STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX   , STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR+  , STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR   , STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM   , STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM@@ -4136,6 +4180,7 @@   , STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM   , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM+  , STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT   , STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT   , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV@@ -4204,6 +4249,11 @@   , 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_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM+  , STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM+  , STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM   , 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@@ -4218,6 +4268,7 @@   , 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_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI   , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI   , STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI   , STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV@@ -4466,15 +4517,12 @@   , 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@@ -5046,6 +5094,10 @@     , "PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV"     )   ,+    ( STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR+    , "CALIBRATED_TIMESTAMP_INFO_KHR"+    )+  ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT     , "PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT"     )@@ -5070,6 +5122,18 @@     , "SCREEN_BUFFER_PROPERTIES_QNX"     )   ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR+    , "PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR+    , "PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR"+    )+  ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT     , "PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT"     )@@ -5182,6 +5246,10 @@     , "PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM"     )   ,+    ( STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT+    , "LAYER_SETTINGS_CREATE_INFO_EXT"+    )+  ,     ( STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT     , "MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT"     )@@ -5454,6 +5522,26 @@     , "PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM"     )   ,+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM+    , "RENDER_PASS_STRIPE_SUBMIT_INFO_ARM"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM+    , "RENDER_PASS_STRIPE_INFO_ARM"+    )+  ,+    ( STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM+    , "RENDER_PASS_STRIPE_BEGIN_INFO_ARM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM+    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM"+    )+  ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM+    , "PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM"+    )+  ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT     , "PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT"     )@@ -5510,6 +5598,10 @@     , "PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT"     )   ,+    ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI+    , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI"+    )+  ,     ( STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI     , "PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI"     )@@ -6499,14 +6591,6 @@     , "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"     )@@ -6529,10 +6613,6 @@   ,     ( 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
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -197,6 +197,7 @@ -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PhysicalDeviceFragmentShadingRatePropertiesKHR', -- 'Vulkan.Extensions.VK_QCOM_image_processing2.PhysicalDeviceImageProcessing2PropertiesQCOM', -- 'Vulkan.Extensions.VK_QCOM_image_processing.PhysicalDeviceImageProcessingPropertiesQCOM',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.PhysicalDeviceShadingRateImagePropertiesNV', -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.PipelineFragmentShadingRateStateCreateInfoKHR',@@ -350,6 +351,7 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PipelineViewportExclusiveScissorStateCreateInfoNV', -- 'Vulkan.Core10.Pipeline.PipelineViewportStateCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM', -- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo', -- 'Vulkan.Extensions.VK_EXT_discard_rectangles.cmdSetDiscardRectangleEXT', -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.cmdSetExclusiveScissorNV',@@ -457,6 +459,7 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeatures', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.PhysicalDeviceBufferDeviceAddressFeaturesEXT', -- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderFeaturesHUAWEI',+-- 'Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader.PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI', -- 'Vulkan.Extensions.VK_AMD_device_coherent_memory.PhysicalDeviceCoherentMemoryFeaturesAMD', -- 'Vulkan.Extensions.VK_EXT_color_write_enable.PhysicalDeviceColorWriteEnableFeaturesEXT', -- 'Vulkan.Extensions.VK_NV_compute_shader_derivatives.PhysicalDeviceComputeShaderDerivativesFeaturesNV',@@ -590,6 +593,7 @@ -- 'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelineFeaturesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch.PhysicalDeviceRayTracingPositionFetchFeaturesKHR', -- 'Vulkan.Extensions.VK_IMG_relaxed_line_rasterization.PhysicalDeviceRelaxedLineRasterizationFeaturesIMG',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedFeaturesARM', -- 'Vulkan.Extensions.VK_NV_representative_fragment_test.PhysicalDeviceRepresentativeFragmentTestFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT',@@ -638,7 +642,8 @@ -- '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_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.PhysicalDeviceVertexInputDynamicStateFeaturesEXT', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Features', -- 'Vulkan.Core12.PhysicalDeviceVulkan11Properties',
src/Vulkan/Core10/Handles.hs view
@@ -143,6 +143,7 @@ -- 'Vulkan.Extensions.VK_KHR_display.getDisplayPlaneSupportedDisplaysKHR', -- 'Vulkan.Extensions.VK_EXT_acquire_drm_display.getDrmDisplayEXT', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsKHR', -- 'Vulkan.Extensions.VK_KHR_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesKHR', -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.getPhysicalDeviceCooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_EXT_directfb_surface.getPhysicalDeviceDirectFBPresentationSupportEXT',@@ -368,6 +369,7 @@ -- 'Vulkan.Extensions.VK_KHR_buffer_device_address.getBufferOpaqueCaptureAddressKHR', -- 'Vulkan.Extensions.VK_EXT_descriptor_buffer.getBufferOpaqueCaptureDescriptorDataEXT', -- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT',+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.getCalibratedTimestampsKHR', -- 'Vulkan.Extensions.VK_NV_cuda_kernel_launch.getCudaModuleCacheNV', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationMaxConcurrencyKHR', -- 'Vulkan.Extensions.VK_KHR_deferred_host_operations.getDeferredOperationResultKHR',
src/Vulkan/Core10/Image.hs view
@@ -386,12 +386,12 @@ --     specified in @image@ -- -- -   #VUID-vkGetImageSubresourceLayout-format-08886# If @format@ of the---     @image@ is a color format, @tiling@ of the @image@ is---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not---     have a+--     @image@ is a color format that is not a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     the @aspectMask@ member of @pSubresource@ /must/ be+--     and @tiling@ of the @image@ is+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', the+--     @aspectMask@ member of @pSubresource@ /must/ be --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- -   #VUID-vkGetImageSubresourceLayout-format-04462# If @format@ of the@@ -1339,7 +1339,18 @@ --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID' --     structure whose @externalFormat@ member is not @0@, @usage@ /must/ --     not include any usages except---     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT',+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT',+--     or 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_SAMPLED_BIT'+--+-- -   #VUID-VkImageCreateInfo-pNext-09457# If the @pNext@ chain includes a+--     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'+--     structure whose @externalFormat@ member is not @0@, and+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-externalFormatResolve externalFormatResolve>+--     feature is not enabled, @usage@ /must/ not include+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_INPUT_ATTACHMENT_BIT'+--     or+--     'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_COLOR_ATTACHMENT_BIT' -- -- -   #VUID-VkImageCreateInfo-pNext-02398# If the @pNext@ chain includes a --     'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.ExternalFormatANDROID'
src/Vulkan/Core10/OtherTypes.hs view
@@ -1183,6 +1183,32 @@ -- -- == Valid Usage --+-- -   #VUID-VkDrawIndirectCommand-pNext-09461# If the bound graphics+--     pipeline state was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-VkDrawIndirectCommand-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+-- -- -   #VUID-VkDrawIndirectCommand-None-00500# For a given vertex buffer --     binding, any attribute data fetched /must/ be entirely contained --     within the corresponding vertex buffer binding, as described in@@ -1262,6 +1288,32 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdDrawIndexed'. -- -- == Valid Usage+--+-- -   #VUID-VkDrawIndexedIndirectCommand-pNext-09461# If the bound+--     graphics pipeline state was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-VkDrawIndexedIndirectCommand-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@ -- -- -   #VUID-VkDrawIndexedIndirectCommand-robustBufferAccess2-08798# If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
src/Vulkan/Core10/Pipeline.hs view
@@ -199,7 +199,7 @@ import {-# SOURCE #-} Vulkan.Core13.Promoted_From_VK_EXT_subgroup_size_control (PipelineShaderStageRequiredSubgroupSizeCreateInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PipelineTessellationDomainOriginStateCreateInfo) import Vulkan.Core10.Enums.PipelineTessellationStateCreateFlags (PipelineTessellationStateCreateFlags)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR) import Vulkan.Core10.Enums.PipelineVertexInputStateCreateFlags (PipelineVertexInputStateCreateFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_shading_rate_image (PipelineViewportCoarseSampleOrderStateCreateInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_depth_clip_control (PipelineViewportDepthClipControlCreateInfoEXT)@@ -294,6 +294,9 @@ -- active shader stages, as well as creation information for all relevant -- fixed-function stages, and a pipeline layout. --+-- Pipelines are created and returned as described for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.+-- -- == Valid Usage -- -- -   #VUID-vkCreateGraphicsPipelines-flags-00720# If the @flags@ member@@ -444,6 +447,11 @@  -- | vkCreateComputePipelines - Creates a new compute pipeline object --+-- = Description+--+-- Pipelines are created and returned as described for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.+-- -- == Valid Usage -- -- -   #VUID-vkCreateComputePipelines-flags-00695# If the @flags@ member of@@ -1512,11 +1520,10 @@ --     include --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' ----- -   #VUID-VkComputePipelineCreateInfo-flags-09007# If @flags@ includes---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',---     then the+-- -   #VUID-VkComputePipelineCreateInfo-flags-09007# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>---     feature /must/ be enabled+--     is not enabled, @flags@ /must/ not include+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' -- -- -   #VUID-VkComputePipelineCreateInfo-flags-09008# If @flags@ includes --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',@@ -1916,7 +1923,7 @@ -- -- -   #VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext# @pNext@ --     /must/ be @NULL@ or a pointer to a valid instance of---     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoEXT'+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR' -- -- -   #VUID-VkPipelineVertexInputStateCreateInfo-sType-unique# The @sType@ --     value of each struct in the @pNext@ chain /must/ be unique@@ -1968,7 +1975,7 @@   getNext PipelineVertexInputStateCreateInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PipelineVertexInputStateCreateInfo e => b) -> Maybe b   extends _ f-    | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoEXT = Just f+    | Just Refl <- eqT @e @PipelineVertexInputDivisorStateCreateInfoKHR = Just f     | otherwise = Nothing  instance ( Extendss PipelineVertexInputStateCreateInfo es@@ -2306,14 +2313,14 @@ -- -   #VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135# If the --     graphics pipeline is being created with --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VIEWPORT_WITH_COUNT'---     set then @viewportCount@ /must/ be @0@, otherwise it /must/ be---     greater than @0@+--     set then @viewportCount@ /must/ be @0@, otherwise @viewportCount@+--     /must/ be greater than @0@ -- -- -   #VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136# If the --     graphics pipeline is being created with --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SCISSOR_WITH_COUNT'---     set then @scissorCount@ /must/ be @0@, otherwise it /must/ be---     greater than @0@+--     set then @scissorCount@ /must/ be @0@, otherwise @scissorCount@+--     /must/ be greater than @0@ -- -- -   #VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726# --     If the @viewportWScalingEnable@ member of a@@ -2567,7 +2574,7 @@     -- If the pipeline is not created with     -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'     -- present then enabling depth clamp will also disable clipping primitives-    -- to the z planes of the frustrum as described in+    -- to the z planes of the frustum as described in     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#vertexpostproc-clipping Primitive Clipping>.     -- Otherwise depth clipping is controlled by the state set in     -- 'Vulkan.Extensions.VK_EXT_depth_clip_enable.PipelineRasterizationDepthClipStateCreateInfoEXT'.
src/Vulkan/Core10/Query.hs view
@@ -395,20 +395,24 @@ -- -- == Valid Usage ----- -   @firstQuery@ /must/ be less than the number of queries in---     @queryPool@+-- -   #VUID-vkGetQueryPoolResults-firstQuery-09436# @firstQuery@ /must/ be+--     less than the number of queries in @queryPool@ ----- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or---     equal to the number of queries in @queryPool@+-- -   #VUID-vkGetQueryPoolResults-firstQuery-09437# The sum of+--     @firstQuery@ and @queryCount@ /must/ be less than or equal to the+--     number of queries in @queryPool@ ----- -   If @queryCount@ is greater than 1, @stride@ /must/ not be zero+-- -   #VUID-vkGetQueryPoolResults-queryCount-09438# If @queryCount@ is+--     greater than 1, @stride@ /must/ not be zero ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkGetQueryPoolResults-queryType-09439# 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' ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkGetQueryPoolResults-queryType-09440# 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',@@ -416,18 +420,19 @@ --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_PARTIAL_BIT', --     or 'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_64_BIT' ----- -   If the @queryType@ used to create @queryPool@ was+-- -   #VUID-vkGetQueryPoolResults-queryType-09441# If the @queryType@ used+--     to create @queryPool@ was --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_PERFORMANCE_QUERY_KHR', --     the @queryPool@ /must/ have been recorded once for each pass as --     retrieved via a call to --     'Vulkan.Extensions.VK_KHR_performance_query.getPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR' ----- -   If the @queryType@ used to create @queryPool@ was---     @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@, then @flags@ /must/ include---     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@+-- -   #VUID-vkGetQueryPoolResults-queryType-09442# If the @queryType@ used+--     to create @queryPool@ was @VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR@,+--     then @flags@ /must/ include @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@ ----- -   If @flags@ includes @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it---     /must/ not include+-- -   #VUID-vkGetQueryPoolResults-flags-09443# If @flags@ includes+--     @VK_QUERY_RESULT_WITH_STATUS_BIT_KHR@, then it /must/ not include --     'Vulkan.Core10.Enums.QueryResultFlagBits.QUERY_RESULT_WITH_AVAILABILITY_BIT' -- -- -   #VUID-vkGetQueryPoolResults-None-09401# All queries used by the
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -429,14 +429,14 @@ --     semaphore -- -- -   #VUID-vkQueueBindSparse-pWaitSemaphores-03245# All elements of the---     @pWaitSemaphores@ member of all elements of @pBindInfo@ created with---     a 'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of+--     @pWaitSemaphores@ member of all elements of @pBindInfo@ referring to+--     a semaphore created with a+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of --     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY' /must/ --     reference a semaphore signal operation that has been submitted for --     execution and any --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>---     on which it depends (if any) /must/ have also been submitted for---     execution+--     on which it depends /must/ have also been submitted for execution -- -- == Valid Usage (Implicit) --
src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs view
@@ -428,10 +428,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchBase-None-08601# For each push constant that is@@ -440,11 +440,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchBase-maintenance4-08602# If the@@ -455,20 +454,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchBase-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDispatchBase-None-08115# If the descriptors used by the@@ -519,14 +520,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDispatchBase-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDispatchBase-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -569,6 +562,14 @@ --     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-vkCmdDispatchBase-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command -- -- -   #VUID-vkCmdDispatchBase-uniformBuffers-06935# If any stage of the --     'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline bind
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -285,6 +285,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing_position_fetch (PhysicalDeviceRayTracingPositionFetchFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (PhysicalDeviceRayTracingPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_IMG_relaxed_line_rasterization (PhysicalDeviceRelaxedLineRasterizationFeaturesIMG)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedFeaturesARM)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (PhysicalDeviceRenderPassStripedPropertiesARM) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_representative_fragment_test (PhysicalDeviceRepresentativeFragmentTestFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_robustness2 (PhysicalDeviceRobustness2PropertiesEXT)@@ -346,8 +348,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_transform_feedback (PhysicalDeviceTransformFeedbackPropertiesEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_uniform_buffer_standard_layout (PhysicalDeviceUniformBufferStandardLayoutFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_variable_pointers (PhysicalDeviceVariablePointersFeatures)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (PhysicalDeviceVertexInputDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Features) import {-# SOURCE #-} Vulkan.Core12 (PhysicalDeviceVulkan11Properties)@@ -901,6 +904,7 @@   getNext PhysicalDeviceFeatures2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceRelaxedLineRasterizationFeaturesIMG = Just f     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsFeaturesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchFeaturesNV = Just f@@ -977,7 +981,7 @@     | Just Refl <- eqT @e @PhysicalDeviceShaderTerminateInvocationFeatures = Just f     | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderImageAtomicInt64FeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = Just f+    | Just Refl <- eqT @e @(PhysicalDeviceClusterCullingShaderFeaturesHUAWEI '[]) = Just f     | Just Refl <- eqT @e @PhysicalDeviceSubpassShadingFeaturesHUAWEI = Just f     | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f@@ -1044,7 +1048,7 @@     | Just Refl <- eqT @e @PhysicalDeviceRepresentativeFragmentTestFeaturesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceASTCDecodeFeaturesEXT = Just f-    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorFeaturesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloat2FeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicFloatFeaturesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceShaderAtomicInt64Features = Just f@@ -1185,6 +1189,7 @@ --     'Vulkan.Extensions.VK_NV_ray_tracing_invocation_reorder.PhysicalDeviceRayTracingInvocationReorderPropertiesNV', --     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.PhysicalDeviceRayTracingPipelinePropertiesKHR', --     'Vulkan.Extensions.VK_NV_ray_tracing.PhysicalDeviceRayTracingPropertiesNV',+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.PhysicalDeviceRenderPassStripedPropertiesARM', --     'Vulkan.Extensions.VK_EXT_robustness2.PhysicalDeviceRobustness2PropertiesEXT', --     'Vulkan.Extensions.VK_EXT_sample_locations.PhysicalDeviceSampleLocationsPropertiesEXT', --     'Vulkan.Core12.Promoted_From_VK_EXT_sampler_filter_minmax.PhysicalDeviceSamplerFilterMinmaxProperties',@@ -1207,6 +1212,7 @@ --     'Vulkan.Core12.Promoted_From_VK_KHR_timeline_semaphore.PhysicalDeviceTimelineSemaphoreProperties', --     'Vulkan.Extensions.VK_EXT_transform_feedback.PhysicalDeviceTransformFeedbackPropertiesEXT', --     'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesEXT',+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR', --     'Vulkan.Core12.PhysicalDeviceVulkan11Properties', --     'Vulkan.Core12.PhysicalDeviceVulkan12Properties', or --     'Vulkan.Core13.PhysicalDeviceVulkan13Properties'@@ -1243,6 +1249,7 @@   getNext PhysicalDeviceProperties2{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceRenderPassStripedPropertiesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceSchedulingControlsPropertiesARM = Just f     | Just Refl <- eqT @e @PhysicalDeviceCudaKernelLaunchPropertiesNV = Just f     | Just Refl <- eqT @e @PhysicalDeviceExternalFormatResolvePropertiesANDROID = Just f@@ -1302,6 +1309,7 @@     | Just Refl <- eqT @e @PhysicalDeviceTransformFeedbackPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceDepthStencilResolveProperties = Just f     | Just Refl <- eqT @e @PhysicalDevicePCIBusInfoPropertiesEXT = Just f+    | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorPropertiesKHR = Just f     | Just Refl <- eqT @e @PhysicalDeviceVertexAttributeDivisorPropertiesEXT = Just f     | Just Refl <- eqT @e @PhysicalDeviceTimelineSemaphoreProperties = Just f     | Just Refl <- eqT @e @PhysicalDeviceDescriptorIndexingProperties = Just f
src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs view
@@ -66,11 +66,12 @@ -- -- == Valid Usage ----- -   @firstQuery@ /must/ be less than the number of queries in---     @queryPool@+-- -   #VUID-vkResetQueryPool-firstQuery-09436# @firstQuery@ /must/ be less+--     than the number of queries in @queryPool@ ----- -   The sum of @firstQuery@ and @queryCount@ /must/ be less than or---     equal to the number of queries in @queryPool@+-- -   #VUID-vkResetQueryPool-firstQuery-09437# The sum of @firstQuery@ and+--     @queryCount@ /must/ be less than or equal to the number of queries+--     in @queryPool@ -- -- -   #VUID-vkResetQueryPool-None-02665# The --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-hostQueryReset hostQueryReset>
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -1651,9 +1651,14 @@ --     /must/ contain --     'Vulkan.Core13.Enums.FormatFeatureFlags2.FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV' ----- -   #VUID-VkSubpassDescription2-pColorAttachments-03070# If the---     @VK_AMD_mixed_attachment_samples@ extension is enabled, all---     attachments in @pColorAttachments@ that are not+-- -   #VUID-VkSubpassDescription2-None-09456# If either of the following+--     is enabled:+--+--     -   The @VK_AMD_mixed_attachment_samples@ extension+--+--     -   The @VK_NV_framebuffer_mixed_samples@ extension+--+--     all attachments in @pColorAttachments@ that are not --     'Vulkan.Core10.APIConstants.ATTACHMENT_UNUSED' /must/ have a sample --     count that is smaller than or equal to the sample count of --     @pDepthStencilAttachment@ if it is not
src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs view
@@ -203,10 +203,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirectCount-None-08601# For each push constant that@@ -215,11 +215,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirectCount-maintenance4-08602# If the@@ -230,20 +229,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirectCount-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawIndirectCount-None-08115# If the descriptors used by@@ -296,14 +297,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawIndirectCount-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawIndirectCount-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -347,6 +340,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawIndirectCount-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawIndirectCount-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@@ -947,16 +948,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectCount-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawIndirectCount-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -1437,22 +1428,36 @@ -- -- -   #VUID-vkCmdDrawIndirectCount-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndirectCount-None-08644# If a shader object is bound --     to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -1554,42 +1559,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawIndirectCount-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawIndirectCount-colorAttachmentCount-09362# If the@@ -1997,9 +2002,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawIndirectCount-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -2013,9 +2016,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawIndirectCount-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -4051,10 +4052,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08601# For each push@@ -4063,11 +4064,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-maintenance4-08602# If the@@ -4078,20 +4078,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08115# If the descriptors@@ -4144,14 +4146,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -4195,6 +4189,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawIndexedIndirectCount-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,@@ -4801,16 +4803,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -5292,22 +5284,36 @@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndexedIndirectCount-None-08644# If a shader object --     is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -5410,42 +5416,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawIndexedIndirectCount-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-09362# If@@ -5854,9 +5860,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -5870,9 +5874,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawIndexedIndirectCount-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs view
@@ -1537,6 +1537,14 @@ --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL', --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' --+-- -   #VUID-VkCopyImageInfo2-srcImage-09460# If @srcImage@ and @dstImage@+--     are the same, and any elements of @pRegions@ contains the+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and+--     overlapping array layers, then the @srcImageLayout@ and+--     @dstImageLayout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+-- -- -   #VUID-VkCopyImageInfo2-dstImage-01996# The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features> --     of @dstImage@ /must/ contain@@ -2071,6 +2079,14 @@ --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR', --     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL' --     or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- -   #VUID-VkBlitImageInfo2-srcImage-09459# If @srcImage@ and @dstImage@+--     are the same, and an elements of @pRegions@ contains the+--     @srcSubresource@ and @dstSubresource@ with matching @mipLevel@ and+--     overlapping array layers, then the @srcImageLayout@ and+--     @dstImageLayout@ /must/ be+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL' or+--     'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR' -- -- -   #VUID-VkBlitImageInfo2-dstImage-02000# The --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>
src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs view
@@ -78,6 +78,7 @@ import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..)) import Vulkan.Core10.FundamentalTypes (Rect2D)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeBeginInfoARM) import Vulkan.Core13.Enums.RenderingFlagBits (RenderingFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentDensityMapAttachmentInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_dynamic_rendering (RenderingFragmentShadingRateAttachmentInfoKHR)@@ -989,7 +990,12 @@ --     element of @pColorAttachments@ is --     'Vulkan.Core12.Enums.ResolveModeFlagBits.RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID', --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'::@imageView@---     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE'+--     /must/ be 'Vulkan.Core10.APIConstants.NULL_HANDLE' If the @pNext@+--     chain contains a+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'+--     structure, the union of stripe areas defined by the elements of+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeInfoARM'::@pStripeInfos@+--     /must/ cover the @renderArea@ -- -- == Valid Usage (Implicit) --@@ -1003,6 +1009,7 @@ --     'Vulkan.Extensions.VK_EXT_multisampled_render_to_single_sampled.MultisampledRenderToSingleSampledInfoEXT', --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.MultiviewPerViewAttributesInfoNVX', --     'Vulkan.Extensions.VK_QCOM_multiview_per_view_render_areas.MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM',+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM', --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentDensityMapAttachmentInfoEXT', --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.RenderingFragmentShadingRateAttachmentInfoKHR'@@ -1075,6 +1082,7 @@   getNext RenderingInfo{..} = next   extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingInfo e => b) -> Maybe b   extends _ f+    | Just Refl <- eqT @e @RenderPassStripeBeginInfoARM = Just f     | Just Refl <- eqT @e @MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM = Just f     | Just Refl <- eqT @e @MultiviewPerViewAttributesInfoNVX = Just f     | Just Refl <- eqT @e @RenderingFragmentDensityMapAttachmentInfoEXT = Just f
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs view
@@ -118,6 +118,7 @@ import Vulkan.Core10.Handles (Queue(..)) import Vulkan.Core10.Handles (Queue(Queue)) import Vulkan.Core10.Handles (Queue_T)+import {-# SOURCE #-} Vulkan.Extensions.VK_ARM_render_pass_striped (RenderPassStripeSubmitInfoARM) import Vulkan.Core10.Enums.Result (Result) import Vulkan.Core10.Enums.Result (Result(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)@@ -1280,15 +1281,16 @@ -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after> -- another timestamp write in the same submission /must/ not have a lower -- value unless its value overflows the maximum supported integer bit width--- of the query. If @VK_EXT_calibrated_timestamps@ is enabled, this extends--- to timestamp writes across all submissions on the same logical device:--- any timestamp write that+-- of the query. If @VK_KHR_calibrated_timestamps@ or+-- @VK_EXT_calibrated_timestamps@ is enabled, this extends to timestamp+-- writes across all submissions on the same logical device: any timestamp+-- write that -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-execution happens-after> -- another /must/ not have a lower value unless its value overflows the -- maximum supported integer bit width of the query. Timestamps written by -- this command /must/ be in the--- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.TIME_DOMAIN_DEVICE_EXT'--- <VkTimeDomainEXT.html time domain>. If an overflow occurs, the timestamp+-- 'Vulkan.Extensions.VK_KHR_calibrated_timestamps.TIME_DOMAIN_DEVICE_KHR'+-- <VkTimeDomainKHR.html time domain>. If an overflow occurs, the timestamp -- value /must/ wrap back to zero. -- -- Note@@ -1298,8 +1300,8 @@ -- timestamp from a newer one to determine the execution time of a sequence -- of commands is only a reliable measurement if the two timestamp writes -- were performed in the same submission, or if the writes were performed--- on the same logical device and @VK_EXT_calibrated_timestamps@ is--- enabled.+-- on the same logical device and @VK_KHR_calibrated_timestamps@ or+-- @VK_EXT_calibrated_timestamps@ is enabled. -- -- If 'cmdWriteTimestamp2' is called while executing a render pass instance -- that has multiview enabled, the timestamp uses N consecutive query@@ -5197,6 +5199,7 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>, -- 'Vulkan.Core13.Enums.PipelineStageFlags2.PipelineStageFlags2',+-- 'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM', -- 'Vulkan.Core10.Handles.Semaphore', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2' data SemaphoreSubmitInfo = SemaphoreSubmitInfo@@ -5283,14 +5286,34 @@ -- -   #VUID-VkCommandBufferSubmitInfo-deviceMask-03891# If @deviceMask@ is --     not @0@, it /must/ be a valid device mask --+-- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-09445# If any render+--     pass instance in @commandBuffer@ was recorded with a+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'+--     structure in its pNext chain, a+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'+--     /must/ be included in the @pNext@ chain+--+-- -   #VUID-VkCommandBufferSubmitInfo-pNext-09446# If a+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'+--     is included in the @pNext@ chain, the value of+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM'::@stripeSemaphoreInfoCount@+--     /must/ be equal to the sum of the+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeBeginInfoARM'::@stripeInfoCount@+--     parameters provided to render pass instances recorded in+--     @commandBuffer@+-- -- == Valid Usage (Implicit) -- -- -   #VUID-VkCommandBufferSubmitInfo-sType-sType# @sType@ /must/ be --     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO' -- -- -   #VUID-VkCommandBufferSubmitInfo-pNext-pNext# @pNext@ /must/ be---     @NULL@+--     @NULL@ or a pointer to a valid instance of+--     'Vulkan.Extensions.VK_ARM_render_pass_striped.RenderPassStripeSubmitInfoARM' --+-- -   #VUID-VkCommandBufferSubmitInfo-sType-unique# The @sType@ value of+--     each struct in the @pNext@ chain /must/ be unique+-- -- -   #VUID-VkCommandBufferSubmitInfo-commandBuffer-parameter# --     @commandBuffer@ /must/ be a valid --     'Vulkan.Core10.Handles.CommandBuffer' handle@@ -5301,8 +5324,10 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_VERSION_1_3 VK_VERSION_1_3>, -- 'Vulkan.Core10.Handles.CommandBuffer', -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'SubmitInfo2'-data CommandBufferSubmitInfo = CommandBufferSubmitInfo-  { -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be+data CommandBufferSubmitInfo (es :: [Type]) = CommandBufferSubmitInfo+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | @commandBuffer@ is a 'Vulkan.Core10.Handles.CommandBuffer' to be     -- submitted for execution.     commandBuffer :: Ptr CommandBuffer_T   , -- | @deviceMask@ is a bitmask indicating which devices in a device group@@ -5310,44 +5335,54 @@     -- setting all bits corresponding to valid devices in the group to @1@.     deviceMask :: Word32   }-  deriving (Typeable, Eq)+  deriving (Typeable) #if defined(GENERIC_INSTANCES)-deriving instance Generic (CommandBufferSubmitInfo)+deriving instance Generic (CommandBufferSubmitInfo (es :: [Type])) #endif-deriving instance Show CommandBufferSubmitInfo+deriving instance Show (Chain es) => Show (CommandBufferSubmitInfo es) -instance ToCStruct CommandBufferSubmitInfo where+instance Extensible CommandBufferSubmitInfo where+  extensibleTypeName = "CommandBufferSubmitInfo"+  setNext CommandBufferSubmitInfo{..} next' = CommandBufferSubmitInfo{next = next', ..}+  getNext CommandBufferSubmitInfo{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends CommandBufferSubmitInfo e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @RenderPassStripeSubmitInfoARM = Just f+    | otherwise = Nothing++instance ( Extendss CommandBufferSubmitInfo es+         , PokeChain es ) => ToCStruct (CommandBufferSubmitInfo es) where   withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CommandBufferSubmitInfo{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)-    f+  pokeCStruct p CommandBufferSubmitInfo{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (commandBuffer)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (deviceMask)+    lift $ f   cStructSize = 32   cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)-    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)-    f+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T))) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    lift $ f -instance FromCStruct CommandBufferSubmitInfo where+instance ( Extendss CommandBufferSubmitInfo es+         , PeekChain es ) => FromCStruct (CommandBufferSubmitInfo es) where   peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)     commandBuffer <- peek @(Ptr CommandBuffer_T) ((p `plusPtr` 16 :: Ptr (Ptr CommandBuffer_T)))     deviceMask <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))     pure $ CommandBufferSubmitInfo-             commandBuffer deviceMask--instance Storable CommandBufferSubmitInfo where-  sizeOf ~_ = 32-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())+             next commandBuffer deviceMask -instance Zero CommandBufferSubmitInfo where+instance es ~ '[] => Zero (CommandBufferSubmitInfo es) where   zero = CommandBufferSubmitInfo+           ()            zero            zero @@ -5487,7 +5522,7 @@   , -- | @pCommandBufferInfos@ is a pointer to an array of     -- 'CommandBufferSubmitInfo' structures describing command buffers to     -- execute in the batch.-    commandBufferInfos :: Vector CommandBufferSubmitInfo+    commandBufferInfos :: Vector (SomeStruct CommandBufferSubmitInfo)   , -- | @pSignalSemaphoreInfos@ is a pointer to an array of     -- 'SemaphoreSubmitInfo' describing     -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>.@@ -5525,9 +5560,9 @@     lift $ Data.Vector.imapM_ (\i e -> poke (pPWaitSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (waitSemaphoreInfos)     lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPWaitSemaphoreInfos')     lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (commandBufferInfos)) :: Word32))-    pPCommandBufferInfos' <- ContT $ allocaBytes @CommandBufferSubmitInfo ((Data.Vector.length (commandBufferInfos)) * 32)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr CommandBufferSubmitInfo) (e)) (commandBufferInfos)-    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo))) (pPCommandBufferInfos')+    pPCommandBufferInfos' <- ContT $ allocaBytes @(CommandBufferSubmitInfo _) ((Data.Vector.length (commandBufferInfos)) * 32)+    Data.Vector.imapM_ (\i e -> ContT $ pokeSomeCStruct (forgetExtensions (pPCommandBufferInfos' `plusPtr` (32 * (i)) :: Ptr (CommandBufferSubmitInfo _))) (e) . ($ ())) (commandBufferInfos)+    lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr (CommandBufferSubmitInfo _)))) (pPCommandBufferInfos')     lift $ poke ((p `plusPtr` 48 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (signalSemaphoreInfos)) :: Word32))     pPSignalSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (signalSemaphoreInfos)) * 48)     lift $ Data.Vector.imapM_ (\i e -> poke (pPSignalSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (signalSemaphoreInfos)@@ -5551,8 +5586,8 @@     pWaitSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))     pWaitSemaphoreInfos' <- generateM (fromIntegral waitSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pWaitSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))     commandBufferInfoCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))-    pCommandBufferInfos <- peek @(Ptr CommandBufferSubmitInfo) ((p `plusPtr` 40 :: Ptr (Ptr CommandBufferSubmitInfo)))-    pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekCStruct @CommandBufferSubmitInfo ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr CommandBufferSubmitInfo)))+    pCommandBufferInfos <- peek @(Ptr (CommandBufferSubmitInfo _)) ((p `plusPtr` 40 :: Ptr (Ptr (CommandBufferSubmitInfo _))))+    pCommandBufferInfos' <- generateM (fromIntegral commandBufferInfoCount) (\i -> peekSomeCStruct (forgetExtensions ((pCommandBufferInfos `advancePtrBytes` (32 * (i)) :: Ptr (CommandBufferSubmitInfo _)))))     signalSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 48 :: Ptr Word32))     pSignalSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 56 :: Ptr (Ptr SemaphoreSubmitInfo)))     pSignalSemaphoreInfos' <- generateM (fromIntegral signalSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pSignalSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))
src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot view
@@ -28,12 +28,15 @@          , PeekChain es ) => FromCStruct (BufferMemoryBarrier2 es)  -data CommandBufferSubmitInfo+type role CommandBufferSubmitInfo nominal+data CommandBufferSubmitInfo (es :: [Type]) -instance ToCStruct CommandBufferSubmitInfo-instance Show CommandBufferSubmitInfo+instance ( Extendss CommandBufferSubmitInfo es+         , PokeChain es ) => ToCStruct (CommandBufferSubmitInfo es)+instance Show (Chain es) => Show (CommandBufferSubmitInfo es) -instance FromCStruct CommandBufferSubmitInfo+instance ( Extendss CommandBufferSubmitInfo es+         , PeekChain es ) => FromCStruct (CommandBufferSubmitInfo es)   data DependencyInfo
src/Vulkan/Dynamic.hs view
@@ -66,7 +66,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core10.Handles (BufferView) import {-# SOURCE #-} Vulkan.Core10.BufferView (BufferViewCreateInfo)-import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_calibrated_timestamps (CalibratedTimestampInfoEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_synchronization2 (CheckpointData2NV) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints (CheckpointDataNV) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ClearAttachment)@@ -438,7 +438,7 @@ 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_KHR_calibrated_timestamps (TimeDomainKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_validation_cache (ValidationCacheCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.Handles (ValidationCacheEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state (VertexInputAttributeDescription2EXT)@@ -532,7 +532,7 @@   , pVkGetPhysicalDeviceDisplayPlaneProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result)   , pVkGetDisplayModeProperties2KHR :: FunPtr (Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result)   , pVkGetDisplayPlaneCapabilities2KHR :: FunPtr (Ptr PhysicalDevice_T -> ("pDisplayPlaneInfo" ::: Ptr DisplayPlaneInfo2KHR) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilities2KHR) -> IO Result)-  , pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT :: FunPtr (Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainEXT) -> IO Result)+  , pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR :: FunPtr (Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainKHR) -> 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 (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> IO ())@@ -745,7 +745,8 @@   vkGetPhysicalDeviceDisplayPlaneProperties2KHR <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"#)   vkGetDisplayModeProperties2KHR <- getInstanceProcAddr' handle (Ptr "vkGetDisplayModeProperties2KHR"#)   vkGetDisplayPlaneCapabilities2KHR <- getInstanceProcAddr' handle (Ptr "vkGetDisplayPlaneCapabilities2KHR"#)-  vkGetPhysicalDeviceCalibrateableTimeDomainsEXT <- getInstanceProcAddr' handle (Ptr "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"#)+  vkGetPhysicalDeviceCalibrateableTimeDomainsKHR <- getFirstInstanceProcAddr [ (Ptr "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"#)+                                                                             , (Ptr "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR"#) ]   vkCreateDebugUtilsMessengerEXT <- getInstanceProcAddr' handle (Ptr "vkCreateDebugUtilsMessengerEXT"#)   vkDestroyDebugUtilsMessengerEXT <- getInstanceProcAddr' handle (Ptr "vkDestroyDebugUtilsMessengerEXT"#)   vkSubmitDebugUtilsMessageEXT <- getInstanceProcAddr' handle (Ptr "vkSubmitDebugUtilsMessageEXT"#)@@ -836,7 +837,7 @@     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayPlaneProperties2KHR) -> IO Result) vkGetPhysicalDeviceDisplayPlaneProperties2KHR)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> DisplayKHR -> ("pPropertyCount" ::: Ptr Word32) -> ("pProperties" ::: Ptr DisplayModeProperties2KHR) -> IO Result) vkGetDisplayModeProperties2KHR)     (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pDisplayPlaneInfo" ::: Ptr DisplayPlaneInfo2KHR) -> ("pCapabilities" ::: Ptr DisplayPlaneCapabilities2KHR) -> IO Result) vkGetDisplayPlaneCapabilities2KHR)-    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainEXT) -> IO Result) vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)+    (castFunPtr @_ @(Ptr PhysicalDevice_T -> ("pTimeDomainCount" ::: Ptr Word32) -> ("pTimeDomains" ::: Ptr TimeDomainKHR) -> IO Result) vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)     (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 (SomeStruct DebugUtilsMessengerCallbackDataEXT)) -> IO ()) vkSubmitDebugUtilsMessageEXT)@@ -1068,7 +1069,7 @@   , pVkGetDescriptorSetLayoutSupport :: FunPtr (Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct DescriptorSetLayoutCreateInfo)) -> ("pSupport" ::: Ptr (SomeStruct DescriptorSetLayoutSupport)) -> IO ())   , pVkGetShaderInfoAMD :: FunPtr (Ptr Device_T -> Pipeline -> ShaderStageFlagBits -> ShaderInfoTypeAMD -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO Result)   , pVkSetLocalDimmingAMD :: FunPtr (Ptr Device_T -> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ())-  , pVkGetCalibratedTimestampsEXT :: FunPtr (Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoEXT) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result)+  , pVkGetCalibratedTimestampsKHR :: FunPtr (Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoKHR) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result)   , pVkSetDebugUtilsObjectNameEXT :: FunPtr (Ptr Device_T -> ("pNameInfo" ::: Ptr DebugUtilsObjectNameInfoEXT) -> IO Result)   , pVkSetDebugUtilsObjectTagEXT :: FunPtr (Ptr Device_T -> ("pTagInfo" ::: Ptr DebugUtilsObjectTagInfoEXT) -> IO Result)   , pVkQueueBeginDebugUtilsLabelEXT :: FunPtr (Ptr Queue_T -> ("pLabelInfo" ::: Ptr DebugUtilsLabelEXT) -> IO ())@@ -2072,7 +2073,8 @@                                                             , (Ptr "vkGetDescriptorSetLayoutSupport"#) ]   vkGetShaderInfoAMD <- getDeviceProcAddr' handle (Ptr "vkGetShaderInfoAMD"#)   vkSetLocalDimmingAMD <- getDeviceProcAddr' handle (Ptr "vkSetLocalDimmingAMD"#)-  vkGetCalibratedTimestampsEXT <- getDeviceProcAddr' handle (Ptr "vkGetCalibratedTimestampsEXT"#)+  vkGetCalibratedTimestampsKHR <- getFirstDeviceProcAddr [ (Ptr "vkGetCalibratedTimestampsEXT"#)+                                                         , (Ptr "vkGetCalibratedTimestampsKHR"#) ]   vkSetDebugUtilsObjectNameEXT <- getDeviceProcAddr' handle (Ptr "vkSetDebugUtilsObjectNameEXT"#)   vkSetDebugUtilsObjectTagEXT <- getDeviceProcAddr' handle (Ptr "vkSetDebugUtilsObjectTagEXT"#)   vkQueueBeginDebugUtilsLabelEXT <- getDeviceProcAddr' handle (Ptr "vkQueueBeginDebugUtilsLabelEXT"#)@@ -2602,7 +2604,7 @@     (castFunPtr @_ @(Ptr Device_T -> ("pCreateInfo" ::: Ptr (SomeStruct DescriptorSetLayoutCreateInfo)) -> ("pSupport" ::: Ptr (SomeStruct DescriptorSetLayoutSupport)) -> IO ()) vkGetDescriptorSetLayoutSupport)     (castFunPtr @_ @(Ptr Device_T -> Pipeline -> ShaderStageFlagBits -> ShaderInfoTypeAMD -> ("pInfoSize" ::: Ptr CSize) -> ("pInfo" ::: Ptr ()) -> IO Result) vkGetShaderInfoAMD)     (castFunPtr @_ @(Ptr Device_T -> SwapchainKHR -> ("localDimmingEnable" ::: Bool32) -> IO ()) vkSetLocalDimmingAMD)-    (castFunPtr @_ @(Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoEXT) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result) vkGetCalibratedTimestampsEXT)+    (castFunPtr @_ @(Ptr Device_T -> ("timestampCount" ::: Word32) -> ("pTimestampInfos" ::: Ptr CalibratedTimestampInfoKHR) -> ("pTimestamps" ::: Ptr Word64) -> ("pMaxDeviation" ::: Ptr Word64) -> IO Result) vkGetCalibratedTimestampsKHR)     (castFunPtr @_ @(Ptr Device_T -> ("pNameInfo" ::: Ptr DebugUtilsObjectNameInfoEXT) -> IO Result) vkSetDebugUtilsObjectNameEXT)     (castFunPtr @_ @(Ptr Device_T -> ("pTagInfo" ::: Ptr DebugUtilsObjectTagInfoEXT) -> IO Result) vkSetDebugUtilsObjectTagEXT)     (castFunPtr @_ @(Ptr Queue_T -> ("pLabelInfo" ::: Ptr DebugUtilsLabelEXT) -> IO ()) vkQueueBeginDebugUtilsLabelEXT)
src/Vulkan/Extensions.hs view
@@ -28,6 +28,7 @@                           , module Vulkan.Extensions.VK_ANDROID_external_format_resolve                           , module Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer                           , module Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access+                          , module Vulkan.Extensions.VK_ARM_render_pass_striped                           , module Vulkan.Extensions.VK_ARM_scheduling_controls                           , module Vulkan.Extensions.VK_ARM_shader_core_builtins                           , module Vulkan.Extensions.VK_ARM_shader_core_properties@@ -92,6 +93,7 @@                           , module Vulkan.Extensions.VK_EXT_image_view_min_lod                           , module Vulkan.Extensions.VK_EXT_index_type_uint8                           , module Vulkan.Extensions.VK_EXT_inline_uniform_block+                          , module Vulkan.Extensions.VK_EXT_layer_settings                           , module Vulkan.Extensions.VK_EXT_legacy_dithering                           , module Vulkan.Extensions.VK_EXT_line_rasterization                           , module Vulkan.Extensions.VK_EXT_load_store_op_none@@ -180,6 +182,7 @@                           , module Vulkan.Extensions.VK_KHR_android_surface                           , module Vulkan.Extensions.VK_KHR_bind_memory2                           , module Vulkan.Extensions.VK_KHR_buffer_device_address+                          , module Vulkan.Extensions.VK_KHR_calibrated_timestamps                           , module Vulkan.Extensions.VK_KHR_cooperative_matrix                           , module Vulkan.Extensions.VK_KHR_copy_commands2                           , module Vulkan.Extensions.VK_KHR_create_renderpass2@@ -261,6 +264,7 @@                           , module Vulkan.Extensions.VK_KHR_timeline_semaphore                           , module Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layout                           , module Vulkan.Extensions.VK_KHR_variable_pointers+                          , module Vulkan.Extensions.VK_KHR_vertex_attribute_divisor                           , module Vulkan.Extensions.VK_KHR_vulkan_memory_model                           , module Vulkan.Extensions.VK_KHR_wayland_surface                           , module Vulkan.Extensions.VK_KHR_win32_keyed_mutex@@ -373,6 +377,7 @@ import Vulkan.Extensions.VK_ANDROID_external_format_resolve import Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer import Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access+import Vulkan.Extensions.VK_ARM_render_pass_striped import Vulkan.Extensions.VK_ARM_scheduling_controls import Vulkan.Extensions.VK_ARM_shader_core_builtins import Vulkan.Extensions.VK_ARM_shader_core_properties@@ -437,6 +442,7 @@ import Vulkan.Extensions.VK_EXT_image_view_min_lod import Vulkan.Extensions.VK_EXT_index_type_uint8 import Vulkan.Extensions.VK_EXT_inline_uniform_block+import Vulkan.Extensions.VK_EXT_layer_settings import Vulkan.Extensions.VK_EXT_legacy_dithering import Vulkan.Extensions.VK_EXT_line_rasterization import Vulkan.Extensions.VK_EXT_load_store_op_none@@ -525,6 +531,7 @@ import Vulkan.Extensions.VK_KHR_android_surface import Vulkan.Extensions.VK_KHR_bind_memory2 import Vulkan.Extensions.VK_KHR_buffer_device_address+import Vulkan.Extensions.VK_KHR_calibrated_timestamps import Vulkan.Extensions.VK_KHR_cooperative_matrix import Vulkan.Extensions.VK_KHR_copy_commands2 import Vulkan.Extensions.VK_KHR_create_renderpass2@@ -606,6 +613,7 @@ import Vulkan.Extensions.VK_KHR_timeline_semaphore import Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layout import Vulkan.Extensions.VK_KHR_variable_pointers+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor import Vulkan.Extensions.VK_KHR_vulkan_memory_model import Vulkan.Extensions.VK_KHR_wayland_surface import Vulkan.Extensions.VK_KHR_win32_keyed_mutex
src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs view
@@ -540,15 +540,8 @@ -- -- = Description ----- The implementation will create a pipeline in each element of--- @pPipelines@ from the corresponding element of @pCreateInfos@. If--- creation of any pipeline fails, that pipeline will be set to--- 'Vulkan.Core10.APIConstants.NULL_HANDLE'.------ If creation fails for a pipeline create info with a--- 'ExecutionGraphPipelineCreateInfoAMDX'::@flags@ value that included--- 'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT',--- all pipelines at a greater index all automatically fail.+-- Pipelines are created and returned as described for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>. -- -- == Valid Usage --@@ -974,10 +967,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphAMDX-None-08601# For each push constant that@@ -986,11 +979,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphAMDX-maintenance4-08602# If the@@ -1001,20 +993,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphAMDX-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDispatchGraphAMDX-None-08115# If the descriptors used by@@ -1067,14 +1061,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDispatchGraphAMDX-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDispatchGraphAMDX-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -1118,6 +1104,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDispatchGraphAMDX-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDispatchGraphAMDX-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@@ -1694,10 +1688,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08601# For each push@@ -1706,11 +1700,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-maintenance4-08602# If the@@ -1721,20 +1714,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08115# If the descriptors@@ -1787,14 +1782,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -1838,6 +1825,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDispatchGraphIndirectAMDX-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDispatchGraphIndirectAMDX-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,@@ -2447,10 +2442,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08601# For each push@@ -2459,11 +2454,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-maintenance4-08602# If the@@ -2474,20 +2468,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08115# If the@@ -2540,14 +2536,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08608# If a pipeline --     is bound to the pipeline bind point used by this command, there --     /must/ not have been any calls to dynamic state setting commands for@@ -2591,6 +2579,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDispatchGraphIndirectCountAMDX-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@@ -3282,12 +3278,10 @@ --     /must/ not include --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV' ----- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007# If @flags@---     includes---     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV',---     then the+-- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09007# If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-deviceGeneratedComputePipelines ::deviceGeneratedComputePipelines>---     feature /must/ be enabled+--     is not enabled, @flags@ /must/ not include+--     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV' -- -- -   #VUID-VkExecutionGraphPipelineCreateInfoAMDX-flags-09008# If @flags@ --     includes
+ src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs view
@@ -0,0 +1,569 @@+{-# language CPP #-}+-- | = Name+--+-- VK_ARM_render_pass_striped - device extension+--+-- == VK_ARM_render_pass_striped+--+-- [__Name String__]+--     @VK_ARM_render_pass_striped@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     425+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Not ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>+--+-- [__Contact__]+--+--     -   Jan-Harald Fredriksen+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_render_pass_striped] @janharaldfredriksen-arm%0A*Here describe the issue or question you have about the VK_ARM_render_pass_striped extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_ARM_render_pass_striped.adoc VK_ARM_render_pass_striped>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-11-21+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Lisa Wu, Arm+--+--     -   Torbjorn Nilsson, Arm+--+--     -   Ying-Chieh Chen, Mediatek+--+--     -   Jim Chiu, Mediatek+--+-- == Description+--+-- This extension adds the ability to split a render pass instance into+-- stripes, and to get a notification when rendering has completed for each+-- stripe.+--+-- == New Structures+--+-- -   'RenderPassStripeInfoARM'+--+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo':+--+--     -   'RenderPassStripeSubmitInfoARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceRenderPassStripedFeaturesARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceRenderPassStripedPropertiesARM'+--+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',+--     'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo':+--+--     -   'RenderPassStripeBeginInfoARM'+--+-- == New Enum Constants+--+-- -   'ARM_RENDER_PASS_STRIPED_EXTENSION_NAME'+--+-- -   'ARM_RENDER_PASS_STRIPED_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM'+--+-- == Examples+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2023-11-21+--+--     -   Initial revision+--+-- == See Also+--+-- 'PhysicalDeviceRenderPassStripedFeaturesARM',+-- 'PhysicalDeviceRenderPassStripedPropertiesARM',+-- 'RenderPassStripeBeginInfoARM', 'RenderPassStripeInfoARM',+-- 'RenderPassStripeSubmitInfoARM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_render_pass_striped Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_ARM_render_pass_striped  ( PhysicalDeviceRenderPassStripedFeaturesARM(..)+                                                     , PhysicalDeviceRenderPassStripedPropertiesARM(..)+                                                     , RenderPassStripeInfoARM(..)+                                                     , RenderPassStripeBeginInfoARM(..)+                                                     , RenderPassStripeSubmitInfoARM(..)+                                                     , ARM_RENDER_PASS_STRIPED_SPEC_VERSION+                                                     , pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION+                                                     , ARM_RENDER_PASS_STRIPED_EXTENSION_NAME+                                                     , pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME+                                                     ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.FundamentalTypes (Extent2D)+import Vulkan.Core10.FundamentalTypes (Rect2D)+import Vulkan.Core13.Promoted_From_VK_KHR_synchronization2 (SemaphoreSubmitInfo)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM))+-- | VkPhysicalDeviceRenderPassStripedFeaturesARM - Structure describing+-- whether striped rendering can be supported by an implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceRenderPassStripedFeaturesARM'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceRenderPassStripedFeaturesARM' 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. 'PhysicalDeviceRenderPassStripedFeaturesARM' /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_ARM_render_pass_striped VK_ARM_render_pass_striped>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceRenderPassStripedFeaturesARM = PhysicalDeviceRenderPassStripedFeaturesARM+  { -- | #features-renderPassStriped# @renderPassStriped@ indicates that striped+    -- rendering is supported by the implementation.+    renderPassStriped :: Bool }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceRenderPassStripedFeaturesARM)+#endif+deriving instance Show PhysicalDeviceRenderPassStripedFeaturesARM++instance ToCStruct PhysicalDeviceRenderPassStripedFeaturesARM where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceRenderPassStripedFeaturesARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (renderPassStriped))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceRenderPassStripedFeaturesARM where+  peekCStruct p = do+    renderPassStriped <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceRenderPassStripedFeaturesARM+             (bool32ToBool renderPassStriped)++instance Storable PhysicalDeviceRenderPassStripedFeaturesARM where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceRenderPassStripedFeaturesARM where+  zero = PhysicalDeviceRenderPassStripedFeaturesARM+           zero+++-- | VkPhysicalDeviceRenderPassStripedPropertiesARM - Structure describing+-- striped rendering limits of an implementation+--+-- = Members+--+-- The members of the 'PhysicalDeviceRenderPassStripedPropertiesARM'+-- structure describe the following limits:+--+-- = Description+--+-- If the 'PhysicalDeviceRenderPassStripedPropertiesARM' 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_ARM_render_pass_striped VK_ARM_render_pass_striped>,+-- 'Vulkan.Core10.FundamentalTypes.Extent2D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceRenderPassStripedPropertiesARM = PhysicalDeviceRenderPassStripedPropertiesARM+  { -- | #limits-renderPassStripeGranularity# @renderPassStripeGranularity@+    -- indicates the minimum supported granularity of striped render pass+    -- regions.+    renderPassStripeGranularity :: Extent2D+  , -- | #limits-maxRenderPassStripes# @maxRenderPassStripes@ indicates the+    -- maximum number of stripes supported in striped rendering.+    maxRenderPassStripes :: Word32+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceRenderPassStripedPropertiesARM)+#endif+deriving instance Show PhysicalDeviceRenderPassStripedPropertiesARM++instance ToCStruct PhysicalDeviceRenderPassStripedPropertiesARM where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceRenderPassStripedPropertiesARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (renderPassStripeGranularity)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (maxRenderPassStripes)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Extent2D)) (zero)+    poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+    f++instance FromCStruct PhysicalDeviceRenderPassStripedPropertiesARM where+  peekCStruct p = do+    renderPassStripeGranularity <- peekCStruct @Extent2D ((p `plusPtr` 16 :: Ptr Extent2D))+    maxRenderPassStripes <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+    pure $ PhysicalDeviceRenderPassStripedPropertiesARM+             renderPassStripeGranularity maxRenderPassStripes++instance Storable PhysicalDeviceRenderPassStripedPropertiesARM where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceRenderPassStripedPropertiesARM where+  zero = PhysicalDeviceRenderPassStripedPropertiesARM+           zero+           zero+++-- | VkRenderPassStripeInfoARM - Structure specifying per rendering stripe+-- information+--+-- = Description+--+-- @stripeArea@ is the render area that is affected by this stripe of the+-- render pass instance. It /must/ be a subregion of the @renderArea@ of+-- the render pass instance.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,+-- 'Vulkan.Core10.FundamentalTypes.Rect2D', 'RenderPassStripeBeginInfoARM',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderPassStripeInfoARM = RenderPassStripeInfoARM+  { -- | @stripeArea@ is the stripe area, and is described in more detail below.+    stripeArea :: Rect2D }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassStripeInfoARM)+#endif+deriving instance Show RenderPassStripeInfoARM++instance ToCStruct RenderPassStripeInfoARM where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderPassStripeInfoARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Rect2D)) (stripeArea)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Rect2D)) (zero)+    f++instance FromCStruct RenderPassStripeInfoARM where+  peekCStruct p = do+    stripeArea <- peekCStruct @Rect2D ((p `plusPtr` 16 :: Ptr Rect2D))+    pure $ RenderPassStripeInfoARM+             stripeArea++instance Storable RenderPassStripeInfoARM where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassStripeInfoARM where+  zero = RenderPassStripeInfoARM+           zero+++-- | VkRenderPassStripeBeginInfoARM - Structure specifying striped rendering+-- information+--+-- = Description+--+-- This structure can be included in the @pNext@ chain of+-- 'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo' or+-- 'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo' to+-- define how the render pass instance is split into stripes.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-09450#+--     @stripeInfoCount@ /must/ be less than or equal to+--     'PhysicalDeviceRenderPassStripedPropertiesARM'::@maxRenderPassStripes@+--+-- -   #VUID-VkRenderPassStripeBeginInfoARM-stripeArea-09451# The+--     @stripeArea@ defined by each element of @pStripeInfos@ /must/ not+--     overlap the @stripeArea@ of any other element+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderPassStripeBeginInfoARM-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM'+--+-- -   #VUID-VkRenderPassStripeBeginInfoARM-pStripeInfos-parameter#+--     @pStripeInfos@ /must/ be a valid pointer to an array of+--     @stripeInfoCount@ 'RenderPassStripeInfoARM' structures+--+-- -   #VUID-VkRenderPassStripeBeginInfoARM-stripeInfoCount-arraylength#+--     @stripeInfoCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,+-- 'RenderPassStripeInfoARM',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderPassStripeBeginInfoARM = RenderPassStripeBeginInfoARM+  { -- | @stripeInfoCount@ is the number of stripes in this render pass instance+    stripeInfoCount :: Word32+  , -- | @pStripeInfos@ is a pointer to an array of @stripeInfoCount@+    -- 'RenderPassStripeInfoARM' structures describing the stripes used by the+    -- render pass instance.+    stripeInfos :: Ptr RenderPassStripeInfoARM+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassStripeBeginInfoARM)+#endif+deriving instance Show RenderPassStripeBeginInfoARM++instance ToCStruct RenderPassStripeBeginInfoARM where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderPassStripeBeginInfoARM{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (stripeInfoCount)+    poke ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM))) (stripeInfos)+    f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM))) (zero)+    f++instance FromCStruct RenderPassStripeBeginInfoARM where+  peekCStruct p = do+    stripeInfoCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pStripeInfos <- peek @(Ptr RenderPassStripeInfoARM) ((p `plusPtr` 24 :: Ptr (Ptr RenderPassStripeInfoARM)))+    pure $ RenderPassStripeBeginInfoARM+             stripeInfoCount pStripeInfos++instance Storable RenderPassStripeBeginInfoARM where+  sizeOf ~_ = 32+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero RenderPassStripeBeginInfoARM where+  zero = RenderPassStripeBeginInfoARM+           zero+           zero+++-- | VkRenderPassStripeSubmitInfoARM - Structure specifying striped rendering+-- submit information+--+-- = Description+--+-- This structure can be included in the @pNext@ chain of+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo'+-- to provide a set of semaphores to be signaled for each striped render+-- pass instance.+--+-- The elements of @pStripeSemaphoreInfos@ are mapped to render pass+-- instances in+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo'::@commandBuffer@+-- in submission order and in stripe order within each render pass+-- instance. Each semaphore in @pStripeSemaphoreInfos@ is signaled when the+-- implementation has completed execution of the associated stripe. In a+-- render pass instance that has multiview enabled, the stripe includes all+-- views in the view mask. In a render pass instance with @layerCount@+-- greater than 1, the stripe includes all layers.+--+-- == Valid Usage+--+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-semaphore-09447# The+--     @semaphore@ member of each element of @pStripeSemaphoreInfos@ /must/+--     have been created with a+--     'Vulkan.Core12.Enums.SemaphoreType.SemaphoreType' of+--     'Vulkan.Core12.Enums.SemaphoreType.SEMAPHORE_TYPE_BINARY'+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM'+--+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-pStripeSemaphoreInfos-parameter#+--     @pStripeSemaphoreInfos@ /must/ be a valid pointer to an array of+--     @stripeSemaphoreInfoCount@ valid+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo'+--     structures+--+-- -   #VUID-VkRenderPassStripeSubmitInfoARM-stripeSemaphoreInfoCount-arraylength#+--     @stripeSemaphoreInfoCount@ /must/ be greater than @0@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_ARM_render_pass_striped VK_ARM_render_pass_striped>,+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data RenderPassStripeSubmitInfoARM = RenderPassStripeSubmitInfoARM+  { -- | @pStripeSemaphoreInfos@ is a pointer to an array of+    -- @stripeSemaphoreInfoCount@+    -- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.SemaphoreSubmitInfo'+    -- structures describing the semaphores used to signal stripe completion.+    stripeSemaphoreInfos :: Vector SemaphoreSubmitInfo }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (RenderPassStripeSubmitInfoARM)+#endif+deriving instance Show RenderPassStripeSubmitInfoARM++instance ToCStruct RenderPassStripeSubmitInfoARM where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p RenderPassStripeSubmitInfoARM{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (stripeSemaphoreInfos)) :: Word32))+    pPStripeSemaphoreInfos' <- ContT $ allocaBytes @SemaphoreSubmitInfo ((Data.Vector.length (stripeSemaphoreInfos)) * 48)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPStripeSemaphoreInfos' `plusPtr` (48 * (i)) :: Ptr SemaphoreSubmitInfo) (e)) (stripeSemaphoreInfos)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo))) (pPStripeSemaphoreInfos')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct RenderPassStripeSubmitInfoARM where+  peekCStruct p = do+    stripeSemaphoreInfoCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pStripeSemaphoreInfos <- peek @(Ptr SemaphoreSubmitInfo) ((p `plusPtr` 24 :: Ptr (Ptr SemaphoreSubmitInfo)))+    pStripeSemaphoreInfos' <- generateM (fromIntegral stripeSemaphoreInfoCount) (\i -> peekCStruct @SemaphoreSubmitInfo ((pStripeSemaphoreInfos `advancePtrBytes` (48 * (i)) :: Ptr SemaphoreSubmitInfo)))+    pure $ RenderPassStripeSubmitInfoARM+             pStripeSemaphoreInfos'++instance Zero RenderPassStripeSubmitInfoARM where+  zero = RenderPassStripeSubmitInfoARM+           mempty+++type ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION"+pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION :: forall a . Integral a => a+pattern ARM_RENDER_PASS_STRIPED_SPEC_VERSION = 1+++type ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"++-- No documentation found for TopLevel "VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME"+pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern ARM_RENDER_PASS_STRIPED_EXTENSION_NAME = "VK_ARM_render_pass_striped"+
+ src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot view
@@ -0,0 +1,179 @@+{-# language CPP #-}+-- | = Name+--+-- VK_ARM_render_pass_striped - device extension+--+-- == VK_ARM_render_pass_striped+--+-- [__Name String__]+--     @VK_ARM_render_pass_striped@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     425+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Not ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_synchronization2 VK_KHR_synchronization2>+--+-- [__Contact__]+--+--     -   Jan-Harald Fredriksen+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_ARM_render_pass_striped] @janharaldfredriksen-arm%0A*Here describe the issue or question you have about the VK_ARM_render_pass_striped extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_ARM_render_pass_striped.adoc VK_ARM_render_pass_striped>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-11-21+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Jan-Harald Fredriksen, Arm+--+--     -   Lisa Wu, Arm+--+--     -   Torbjorn Nilsson, Arm+--+--     -   Ying-Chieh Chen, Mediatek+--+--     -   Jim Chiu, Mediatek+--+-- == Description+--+-- This extension adds the ability to split a render pass instance into+-- stripes, and to get a notification when rendering has completed for each+-- stripe.+--+-- == New Structures+--+-- -   'RenderPassStripeInfoARM'+--+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.CommandBufferSubmitInfo':+--+--     -   'RenderPassStripeSubmitInfoARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceRenderPassStripedFeaturesARM'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceRenderPassStripedPropertiesARM'+--+-- -   Extending+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo',+--     'Vulkan.Core10.CommandBufferBuilding.RenderPassBeginInfo':+--+--     -   'RenderPassStripeBeginInfoARM'+--+-- == New Enum Constants+--+-- -   'ARM_RENDER_PASS_STRIPED_EXTENSION_NAME'+--+-- -   'ARM_RENDER_PASS_STRIPED_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM'+--+-- == Examples+--+-- None.+--+-- == Version History+--+-- -   Revision 1, 2023-11-21+--+--     -   Initial revision+--+-- == See Also+--+-- 'PhysicalDeviceRenderPassStripedFeaturesARM',+-- 'PhysicalDeviceRenderPassStripedPropertiesARM',+-- 'RenderPassStripeBeginInfoARM', 'RenderPassStripeInfoARM',+-- 'RenderPassStripeSubmitInfoARM'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_ARM_render_pass_striped Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_ARM_render_pass_striped  ( PhysicalDeviceRenderPassStripedFeaturesARM+                                                     , PhysicalDeviceRenderPassStripedPropertiesARM+                                                     , RenderPassStripeBeginInfoARM+                                                     , RenderPassStripeInfoARM+                                                     , RenderPassStripeSubmitInfoARM+                                                     ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceRenderPassStripedFeaturesARM++instance ToCStruct PhysicalDeviceRenderPassStripedFeaturesARM+instance Show PhysicalDeviceRenderPassStripedFeaturesARM++instance FromCStruct PhysicalDeviceRenderPassStripedFeaturesARM+++data PhysicalDeviceRenderPassStripedPropertiesARM++instance ToCStruct PhysicalDeviceRenderPassStripedPropertiesARM+instance Show PhysicalDeviceRenderPassStripedPropertiesARM++instance FromCStruct PhysicalDeviceRenderPassStripedPropertiesARM+++data RenderPassStripeBeginInfoARM++instance ToCStruct RenderPassStripeBeginInfoARM+instance Show RenderPassStripeBeginInfoARM++instance FromCStruct RenderPassStripeBeginInfoARM+++data RenderPassStripeInfoARM++instance ToCStruct RenderPassStripeInfoARM+instance Show RenderPassStripeInfoARM++instance FromCStruct RenderPassStripeInfoARM+++data RenderPassStripeSubmitInfoARM++instance ToCStruct RenderPassStripeSubmitInfoARM+instance Show RenderPassStripeSubmitInfoARM++instance FromCStruct RenderPassStripeSubmitInfoARM+
src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs view
@@ -25,6 +25,12 @@ --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1> --+-- [__Deprecation State__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>+--         extension+-- -- [__Contact__] -- --     -   Daniel Rakos@@ -60,6 +66,13 @@ -- This extension provides an interface to query calibrated timestamps -- obtained quasi simultaneously from two time domains. --+-- == Promotion to @VK_KHR_calibrated_timestamps@+--+-- All functionality in this extension is included in+-- @VK_KHR_calibrated_timestamps@, with the suffix changed to KHR. The+-- original enum names are still available as aliases of the KHR+-- functionality.+-- -- == New Commands -- -- -   'getCalibratedTimestampsEXT'@@ -82,8 +95,19 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'+--     -   'STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT' --+-- -   Extending+--     'Vulkan.Extensions.VK_KHR_calibrated_timestamps.TimeDomainKHR':+--+--     -   'TIME_DOMAIN_CLOCK_MONOTONIC_EXT'+--+--     -   'TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT'+--+--     -   'TIME_DOMAIN_DEVICE_EXT'+--+--     -   'TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT'+-- -- == Version History -- -- -   Revision 2, 2021-03-16 (Lionel Landwerlin)@@ -107,441 +131,74 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_calibrated_timestamps  ( getPhysicalDeviceCalibrateableTimeDomainsEXT+module Vulkan.Extensions.VK_EXT_calibrated_timestamps  ( pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT+                                                       , pattern TIME_DOMAIN_DEVICE_EXT+                                                       , pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT+                                                       , pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT+                                                       , pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT+                                                       , getPhysicalDeviceCalibrateableTimeDomainsEXT                                                        , getCalibratedTimestampsEXT-                                                       , CalibratedTimestampInfoEXT(..)-                                                       , TimeDomainEXT( TIME_DOMAIN_DEVICE_EXT-                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_EXT-                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT-                                                                      , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT-                                                                      , ..-                                                                      )+                                                       , TimeDomainEXT+                                                       , CalibratedTimestampInfoEXT                                                        , EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION                                                        , pattern EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION                                                        , EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME                                                        , pattern EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME+                                                       , CalibratedTimestampInfoKHR(..)+                                                       , getPhysicalDeviceCalibrateableTimeDomainsKHR+                                                       , getCalibratedTimestampsKHR+                                                       , TimeDomainKHR(..)                                                        ) where -import Vulkan.Internal.Utils (enumReadPrec)-import Vulkan.Internal.Utils (enumShowsPrec)-import Vulkan.Internal.Utils (traceAroundEvent)-import Control.Exception.Base (bracket)-import Control.Monad (unless)-import Control.Monad.IO.Class (liftIO)-import Foreign.Marshal.Alloc (allocaBytes)-import Foreign.Marshal.Alloc (callocBytes)-import Foreign.Marshal.Alloc (free)-import GHC.Base (when)-import GHC.IO (throwIO)-import GHC.Ptr (nullFunPtr)-import Foreign.Ptr (nullPtr)-import Foreign.Ptr (plusPtr)-import GHC.Show (showsPrec)-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.String (IsString)-import Data.Typeable (Typeable)-import Foreign.Storable (Storable)-import Foreign.Storable (Storable(peek))-import Foreign.Storable (Storable(poke))-import qualified Foreign.Storable (Storable(..))-import GHC.Generics (Generic)-import GHC.IO.Exception (IOErrorType(..))-import GHC.IO.Exception (IOException(..))-import Data.Int (Int32)-import Foreign.Ptr (FunPtr)-import Foreign.Ptr (Ptr)-import GHC.Read (Read(readPrec))-import GHC.Show (Show(showsPrec))-import Data.Word (Word32)-import Data.Word (Word64)-import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.NamedType ((:::))-import Vulkan.Core10.Handles (Device)-import Vulkan.Core10.Handles (Device(..))-import Vulkan.Core10.Handles (Device(Device))-import Vulkan.Dynamic (DeviceCmds(pVkGetCalibratedTimestampsEXT))-import Vulkan.Core10.Handles (Device_T)-import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT))-import Vulkan.Core10.Handles (PhysicalDevice)-import Vulkan.Core10.Handles (PhysicalDevice(..))-import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))-import Vulkan.Core10.Handles (PhysicalDevice_T)-import Vulkan.Core10.Enums.Result (Result)-import Vulkan.Core10.Enums.Result (Result(..))-import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Exception (VulkanException(..))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT))-import Vulkan.Core10.Enums.Result (Result(SUCCESS))-foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetPhysicalDeviceCalibrateableTimeDomainsEXT-  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainEXT -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainEXT -> IO Result+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getCalibratedTimestampsKHR)+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getPhysicalDeviceCalibrateableTimeDomainsKHR)+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR)+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR))+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_CLOCK_MONOTONIC_KHR))+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR))+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_DEVICE_KHR))+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR))+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getCalibratedTimestampsKHR)+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (getPhysicalDeviceCalibrateableTimeDomainsKHR)+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (CalibratedTimestampInfoKHR(..))+import Vulkan.Extensions.VK_KHR_calibrated_timestamps (TimeDomainKHR(..))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT"+pattern STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR --- | vkGetPhysicalDeviceCalibrateableTimeDomainsEXT - Query calibrateable--- time domains------ = Description------ If @pTimeDomains@ is @NULL@, then the number of calibrateable time--- domains supported for the given @physicalDevice@ is returned in--- @pTimeDomainCount@. Otherwise, @pTimeDomainCount@ /must/ point to a--- variable set by the user to the number of elements in the @pTimeDomains@--- array, and on return the variable is overwritten with the number of--- values actually written to @pTimeDomains@. If the value of--- @pTimeDomainCount@ is less than the number of calibrateable time domains--- supported, at most @pTimeDomainCount@ values will be written to--- @pTimeDomains@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be--- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate--- that not all the available time domains were returned.------ == Valid Usage (Implicit)------ -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter#---     @physicalDevice@ /must/ be a valid---     'Vulkan.Core10.Handles.PhysicalDevice' handle------ -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter#---     @pTimeDomainCount@ /must/ be a valid pointer to a @uint32_t@ value------ -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter#---     If the value referenced by @pTimeDomainCount@ is not @0@, and---     @pTimeDomains@ is not @NULL@, @pTimeDomains@ /must/ be a valid---     pointer to an array of @pTimeDomainCount@ 'TimeDomainEXT' values------ == 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'------     -   '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_calibrated_timestamps VK_EXT_calibrated_timestamps>,--- 'Vulkan.Core10.Handles.PhysicalDevice', 'TimeDomainEXT'-getPhysicalDeviceCalibrateableTimeDomainsEXT :: forall io-                                              . (MonadIO io)-                                             => -- | @physicalDevice@ is the physical device from which to query the set of-                                                -- calibrateable time domains.-                                                PhysicalDevice-                                             -> io (Result, ("timeDomains" ::: Vector TimeDomainEXT))-getPhysicalDeviceCalibrateableTimeDomainsEXT physicalDevice = liftIO . evalContT $ do-  let vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr = pVkGetPhysicalDeviceCalibrateableTimeDomainsEXT (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)-  lift $ unless (vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCalibrateableTimeDomainsEXT is null" Nothing Nothing-  let vkGetPhysicalDeviceCalibrateableTimeDomainsEXT' = mkVkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXTPtr-  let physicalDevice' = physicalDeviceHandle (physicalDevice)-  pPTimeDomainCount <- ContT $ bracket (callocBytes @Word32 4) free-  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))-  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)))-  pure $ ((r'), pTimeDomains') +-- No documentation found for TopLevel "VK_TIME_DOMAIN_DEVICE_EXT"+pattern TIME_DOMAIN_DEVICE_EXT = TIME_DOMAIN_DEVICE_KHR -foreign import ccall-#if !defined(SAFE_FOREIGN_CALLS)-  unsafe-#endif-  "dynamic" mkVkGetCalibratedTimestampsEXT-  :: FunPtr (Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoEXT -> Ptr Word64 -> Ptr Word64 -> IO Result) -> Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoEXT -> Ptr Word64 -> Ptr Word64 -> IO Result --- | vkGetCalibratedTimestampsEXT - Query calibrated timestamps------ = Description------ Note------ The maximum deviation /may/ vary between calls to--- 'getCalibratedTimestampsEXT' even for the same set of time domains due--- to implementation and platform specific reasons. It is the application’s--- responsibility to assess whether the returned maximum deviation makes--- the timestamp values suitable for any particular purpose and /can/--- choose to re-issue the timestamp calibration call pursuing a lower--- deviation value.------ Calibrated timestamp values /can/ be extrapolated to estimate future--- coinciding timestamp values, however, depending on the nature of the--- time domains and other properties of the platform extrapolating values--- over a sufficiently long period of time /may/ no longer be accurate--- enough to fit any particular purpose, so applications are expected to--- re-calibrate the timestamps on a regular basis.------ == Valid Usage------ -   #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The---     @timeDomain@ value of each 'CalibratedTimestampInfoEXT' in---     @pTimestampInfos@ /must/ be unique------ == Valid Usage (Implicit)------ -   #VUID-vkGetCalibratedTimestampsEXT-device-parameter# @device@ /must/---     be a valid 'Vulkan.Core10.Handles.Device' handle------ -   #VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter#---     @pTimestampInfos@ /must/ be a valid pointer to an array of---     @timestampCount@ valid 'CalibratedTimestampInfoEXT' structures------ -   #VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter#---     @pTimestamps@ /must/ be a valid pointer to an array of---     @timestampCount@ @uint64_t@ values------ -   #VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter#---     @pMaxDeviation@ /must/ be a valid pointer to a @uint64_t@ value------ -   #VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength#---     @timestampCount@ /must/ be greater than @0@------ == 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_calibrated_timestamps VK_EXT_calibrated_timestamps>,--- 'CalibratedTimestampInfoEXT', 'Vulkan.Core10.Handles.Device'-getCalibratedTimestampsEXT :: forall io-                            . (MonadIO io)-                           => -- | @device@ is the logical device used to perform the query.-                              Device-                           -> -- | @pTimestampInfos@ is a pointer to an array of @timestampCount@-                              -- 'CalibratedTimestampInfoEXT' structures, describing the time domains the-                              -- calibrated timestamps should be captured from.-                              ("timestampInfos" ::: Vector CalibratedTimestampInfoEXT)-                           -> io (("timestamps" ::: Vector Word64), ("maxDeviation" ::: Word64))-getCalibratedTimestampsEXT device timestampInfos = liftIO . evalContT $ do-  let vkGetCalibratedTimestampsEXTPtr = pVkGetCalibratedTimestampsEXT (case device of Device{deviceCmds} -> deviceCmds)-  lift $ unless (vkGetCalibratedTimestampsEXTPtr /= nullFunPtr) $-    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetCalibratedTimestampsEXT is null" Nothing Nothing-  let vkGetCalibratedTimestampsEXT' = mkVkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXTPtr-  pPTimestampInfos <- ContT $ allocaBytes @CalibratedTimestampInfoEXT ((Data.Vector.length (timestampInfos)) * 24)-  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))-  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-  pure $ (pTimestamps, pMaxDeviation)+-- No documentation found for TopLevel "VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT"+pattern TIME_DOMAIN_CLOCK_MONOTONIC_EXT = TIME_DOMAIN_CLOCK_MONOTONIC_KHR  --- | VkCalibratedTimestampInfoEXT - Structure specifying the input parameters--- of a calibrated timestamp query------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,--- 'Vulkan.Core10.Enums.StructureType.StructureType', 'TimeDomainEXT',--- 'getCalibratedTimestampsEXT'-data CalibratedTimestampInfoEXT = CalibratedTimestampInfoEXT-  { -- | @timeDomain@ is a 'TimeDomainEXT' value specifying the time domain from-    -- which the calibrated timestamp value should be returned.-    ---    -- #VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354# @timeDomain@ /must/-    -- be one of the 'TimeDomainEXT' values returned by-    -- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'-    ---    -- #VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter# @timeDomain@-    -- /must/ be a valid 'TimeDomainEXT' value-    timeDomain :: TimeDomainEXT }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (CalibratedTimestampInfoEXT)-#endif-deriving instance Show CalibratedTimestampInfoEXT+-- No documentation found for TopLevel "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT"+pattern TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR -instance ToCStruct CalibratedTimestampInfoEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p CalibratedTimestampInfoEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr TimeDomainEXT)) (timeDomain)-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr TimeDomainEXT)) (zero)-    f -instance FromCStruct CalibratedTimestampInfoEXT where-  peekCStruct p = do-    timeDomain <- peek @TimeDomainEXT ((p `plusPtr` 16 :: Ptr TimeDomainEXT))-    pure $ CalibratedTimestampInfoEXT-             timeDomain+-- No documentation found for TopLevel "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT"+pattern TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR -instance Storable CalibratedTimestampInfoEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero CalibratedTimestampInfoEXT where-  zero = CalibratedTimestampInfoEXT-           zero+-- No documentation found for TopLevel "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"+getPhysicalDeviceCalibrateableTimeDomainsEXT = getPhysicalDeviceCalibrateableTimeDomainsKHR  --- | VkTimeDomainEXT - Supported time domains------ = Description------ Note------ An implementation supporting @VK_EXT_calibrated_timestamps@ will use the--- same time domain for all its 'Vulkan.Core10.Handles.Queue' so that--- timestamp values reported for 'TIME_DOMAIN_DEVICE_EXT' can be matched to--- any timestamp captured through--- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'--- .------ > struct timespec tv;--- > clock_gettime(CLOCK_MONOTONIC, &tv);--- > return tv.tv_nsec + tv.tv_sec*1000000000ull;------ > struct timespec tv;--- > clock_gettime(CLOCK_MONOTONIC_RAW, &tv);--- > return tv.tv_nsec + tv.tv_sec*1000000000ull;------ > LARGE_INTEGER counter;--- > QueryPerformanceCounter(&counter);--- > return counter.QuadPart;------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,--- 'CalibratedTimestampInfoEXT',--- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'-newtype TimeDomainEXT = TimeDomainEXT Int32-  deriving newtype (Eq, Ord, Storable, Zero)+-- No documentation found for TopLevel "vkGetCalibratedTimestampsEXT"+getCalibratedTimestampsEXT = getCalibratedTimestampsKHR --- | 'TIME_DOMAIN_DEVICE_EXT' specifies the device time domain. Timestamp--- values in this time domain use the same units and are comparable with--- device timestamp values captured using--- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or--- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'--- 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 --- | '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+-- No documentation found for TopLevel "VkTimeDomainEXT"+type TimeDomainEXT = TimeDomainKHR --- | '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 --- | '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-  #-}--conNameTimeDomainEXT :: String-conNameTimeDomainEXT = "TimeDomainEXT"--enumPrefixTimeDomainEXT :: String-enumPrefixTimeDomainEXT = "TIME_DOMAIN_"--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"-    )-  ]--instance Show TimeDomainEXT where-  showsPrec =-    enumShowsPrec-      enumPrefixTimeDomainEXT-      showTableTimeDomainEXT-      conNameTimeDomainEXT-      (\(TimeDomainEXT x) -> x)-      (showsPrec 11)+-- No documentation found for TopLevel "VkCalibratedTimestampInfoEXT"+type CalibratedTimestampInfoEXT = CalibratedTimestampInfoKHR -instance Read TimeDomainEXT where-  readPrec =-    enumReadPrec-      enumPrefixTimeDomainEXT-      showTableTimeDomainEXT-      conNameTimeDomainEXT-      TimeDomainEXT  type EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 2 
− src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot
@@ -1,127 +0,0 @@-{-# language CPP #-}--- | = Name------ VK_EXT_calibrated_timestamps - device extension------ == VK_EXT_calibrated_timestamps------ [__Name String__]---     @VK_EXT_calibrated_timestamps@------ [__Extension Type__]---     Device extension------ [__Registered Extension Number__]---     185------ [__Revision__]---     2------ [__Ratification Status__]---     Not ratified------ [__Extension and Version Dependencies__]---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>---     or---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>------ [__Contact__]------     -   Daniel Rakos---         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_calibrated_timestamps] @drakos-amd%0A*Here describe the issue or question you have about the VK_EXT_calibrated_timestamps extension* >------ [__Extension Proposal__]---     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>------ == Other Extension Metadata------ [__Last Modified Date__]---     2018-10-04------ [__IP Status__]---     No known IP claims.------ [__Contributors__]------     -   Matthaeus G. Chajdas, AMD------     -   Alan Harrison, AMD------     -   Derrick Owens, AMD------     -   Daniel Rakos, AMD------     -   Faith Ekstrand, Intel------     -   Keith Packard, Valve------ == Description------ This extension provides an interface to query calibrated timestamps--- obtained quasi simultaneously from two time domains.------ == New Commands------ -   'getCalibratedTimestampsEXT'------ -   'getPhysicalDeviceCalibrateableTimeDomainsEXT'------ == New Structures------ -   'CalibratedTimestampInfoEXT'------ == New Enums------ -   'TimeDomainEXT'------ == New Enum Constants------ -   'EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME'------ -   'EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION'------ -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':------     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT'------ == Version History------ -   Revision 2, 2021-03-16 (Lionel Landwerlin)------     -   Specify requirement on device timestamps------ -   Revision 1, 2018-10-04 (Daniel Rakos)------     -   Internal revisions.------ == See Also------ 'CalibratedTimestampInfoEXT', 'TimeDomainEXT',--- 'getCalibratedTimestampsEXT',--- 'getPhysicalDeviceCalibrateableTimeDomainsEXT'------ == Document Notes------ For more information, see the--- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps Vulkan Specification>------ This page is a generated document. Fixes and changes should be made to--- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_calibrated_timestamps  ( CalibratedTimestampInfoEXT-                                                       , TimeDomainEXT-                                                       ) where--import Vulkan.CStruct (FromCStruct)-import Vulkan.CStruct (ToCStruct)-import Data.Kind (Type)--data CalibratedTimestampInfoEXT--instance ToCStruct CalibratedTimestampInfoEXT-instance Show CalibratedTimestampInfoEXT--instance FromCStruct CalibratedTimestampInfoEXT---data TimeDomainEXT-
src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs view
@@ -400,8 +400,8 @@ -- -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-06522# --     If @pSurfaceInfo->surface@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by---     @physicalDevice@, as reported by+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pSurfaceInfo->surface@+--     /must/ be supported by @physicalDevice@, as reported by --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR' --     or an equivalent platform-specific mechanism --
+ src/Vulkan/Extensions/VK_EXT_layer_settings.hs view
@@ -0,0 +1,485 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_layer_settings - instance extension+--+-- == VK_EXT_layer_settings+--+-- [__Name String__]+--     @VK_EXT_layer_settings@+--+-- [__Extension Type__]+--     Instance extension+--+-- [__Registered Extension Number__]+--     497+--+-- [__Revision__]+--     2+--+-- [__Ratification Status__]+--     Ratified+--+-- [__Extension and Version Dependencies__]+--     None+--+-- [__Contact__]+--+--     -   Christophe Riccio+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_layer_settings] @christophe%0A*Here describe the issue or question you have about the VK_EXT_layer_settings extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_layer_settings.adoc VK_EXT_layer_settings>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-09-23+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Christophe Riccio, LunarG+--+--     -   Mark Lobodzinski, LunarG+--+--     -   Charles Giessen, LunarG+--+--     -   Spencer Fricke, LunarG+--+--     -   Juan Ramos, LunarG+--+--     -   Daniel Rakos, RasterGrid+--+--     -   Shahbaz Youssefi, Google+--+--     -   Lina Versace, Google+--+--     -   Bill Hollings, The Brenwill Workshop+--+--     -   Jon Leech, Khronos+--+--     -   Tom Olson, Arm+--+-- == Description+--+-- This extension provides a mechanism for configuring programmatically+-- through the Vulkan API the behavior of layers.+--+-- This extension provides the 'LayerSettingsCreateInfoEXT' struct that can+-- be included in the @pNext@ chain of the+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo' structure passed+-- as the @pCreateInfo@ parameter of+-- 'Vulkan.Core10.DeviceInitialization.createInstance'.+--+-- The structure contains an array of 'LayerSettingEXT' structure values+-- that configure specific features of layers.+--+-- == Example+--+-- @VK_EXT_layer_settings@ is implemented by the Vulkan Profiles layer.+--+-- It allows the profiles layer tests used by the profiles layer C.I. to+-- programmatically configure the layer for each test without affecting the+-- C.I. environment, allowing to run multiple tests concurrently.+--+-- > const char* profile_file_data = JSON_TEST_FILES_PATH "VP_KHR_roadmap_2022.json";+-- > const char* profile_name_data = "VP_KHR_roadmap_2022";+-- > VkBool32 emulate_portability_data = VK_TRUE;+-- > const char* simulate_capabilities[] = {+-- >     "SIMULATE_API_VERSION_BIT",+-- >     "SIMULATE_FEATURES_BIT",+-- >     "SIMULATE_PROPERTIES_BIT",+-- >     "SIMULATE_EXTENSIONS_BIT",+-- >     "SIMULATE_FORMATS_BIT",+-- >     "SIMULATE_QUEUE_FAMILY_PROPERTIES_BIT"+-- > };+-- > const char* debug_reports[] = {+-- >     "DEBUG_REPORT_ERROR_BIT",+-- >     "DEBUG_REPORT_WARNING_BIT",+-- >     "DEBUG_REPORT_NOTIFICATION_BIT",+-- >     "DEBUG_REPORT_DEBUG_BIT"+-- > };+-- >+-- > const VkLayerSettingEXT settings[] = {+-- >      {kLayerName, kLayerSettingsProfileFile, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_file_data},+-- >      {kLayerName, kLayerSettingsProfileName, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_name_data},+-- >      {kLayerName, kLayerSettingsEmulatePortability, VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &emulate_portability_data},+-- >      {kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,+-- >         static_cast<uint32_t>(std::size(simulate_capabilities)), simulate_capabilities},+-- >      {kLayerName, kLayerSettingsDebugReports, VK_LAYER_SETTING_TYPE_STRING_EXT,+-- >         static_cast<uint32_t>(std::size(debug_reports)), debug_reports}+-- > };+-- >+-- > const VkLayerSettingsCreateInfoEXT layer_settings_create_info{+-- >     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, nullptr,+-- >     static_cast<uint32_t>(std::size(settings)), settings};+-- >+-- > VkInstanceCreateInfo inst_create_info = {};+-- > ...+-- > inst_create_info.pNext = &layer_settings_create_info;+-- > vkCreateInstance(&inst_create_info, nullptr, &_instances);+--+-- Note+--+-- The @VK_EXT_layer_settings@ extension subsumes all the functionality+-- provided in the @VK_EXT_validation_flags@ extension and the+-- @VK_EXT_validation_features@ extension.+--+-- == New Structures+--+-- -   'LayerSettingEXT'+--+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':+--+--     -   'LayerSettingsCreateInfoEXT'+--+-- == New Enums+--+-- -   'LayerSettingTypeEXT'+--+-- == New Enum Constants+--+-- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'+--+-- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'+--+-- == Issues+--+-- -   How should application developers figure out the list of available+--     settings?+--+-- This extension does not provide a reflection API for layer settings.+-- Layer settings are described in each layer JSON manifest and the+-- documentation of each layer which implements this extension.+--+-- == Version History+--+-- -   Revision 1, 2020-06-17 (Mark Lobodzinski)+--+--     -   Initial revision for Validation layer internal usages+--+-- -   Revision 2, 2023-09-26 (Christophe Riccio)+--+--     -   Refactor APIs for any layer usages and public release+--+-- == See Also+--+-- 'LayerSettingEXT', 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_layer_settings 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_layer_settings  ( LayerSettingsCreateInfoEXT(..)+                                                , LayerSettingEXT(..)+                                                , LayerSettingTypeEXT( LAYER_SETTING_TYPE_BOOL32_EXT+                                                                     , LAYER_SETTING_TYPE_INT32_EXT+                                                                     , LAYER_SETTING_TYPE_INT64_EXT+                                                                     , LAYER_SETTING_TYPE_UINT32_EXT+                                                                     , LAYER_SETTING_TYPE_UINT64_EXT+                                                                     , LAYER_SETTING_TYPE_FLOAT32_EXT+                                                                     , LAYER_SETTING_TYPE_FLOAT64_EXT+                                                                     , LAYER_SETTING_TYPE_STRING_EXT+                                                                     , ..+                                                                     )+                                                , EXT_LAYER_SETTINGS_SPEC_VERSION+                                                , pattern EXT_LAYER_SETTINGS_SPEC_VERSION+                                                , EXT_LAYER_SETTINGS_EXTENSION_NAME+                                                , pattern EXT_LAYER_SETTINGS_EXTENSION_NAME+                                                ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+import Data.ByteString (packCString)+import Data.ByteString (useAsCString)+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 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 GHC.Generics (Generic)+import Data.Int (Int32)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.ByteString (ByteString)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT))+-- | VkLayerSettingsCreateInfoEXT - Specify layer capabilities for a Vulkan+-- instance+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkLayerSettingsCreateInfoEXT-sType-sType# @sType@ /must/ be+--     'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'+--+-- -   #VUID-VkLayerSettingsCreateInfoEXT-pSettings-parameter# If+--     @settingCount@ is not @0@, @pSettings@ /must/ be a valid pointer to+--     an array of @settingCount@ valid 'LayerSettingEXT' structures+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,+-- 'LayerSettingEXT', 'Vulkan.Core10.Enums.StructureType.StructureType'+data LayerSettingsCreateInfoEXT = LayerSettingsCreateInfoEXT+  { -- | @pSettings@ is a pointer to an array of @settingCount@ 'LayerSettingEXT'+    -- values specifying the setting to be configured.+    settings :: Vector LayerSettingEXT }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (LayerSettingsCreateInfoEXT)+#endif+deriving instance Show LayerSettingsCreateInfoEXT++instance ToCStruct LayerSettingsCreateInfoEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p LayerSettingsCreateInfoEXT{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (settings)) :: Word32))+    pPSettings' <- ContT $ allocaBytes @LayerSettingEXT ((Data.Vector.length (settings)) * 32)+    Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPSettings' `plusPtr` (32 * (i)) :: Ptr LayerSettingEXT) (e) . ($ ())) (settings)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr LayerSettingEXT))) (pPSettings')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct LayerSettingsCreateInfoEXT where+  peekCStruct p = do+    settingCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pSettings <- peek @(Ptr LayerSettingEXT) ((p `plusPtr` 24 :: Ptr (Ptr LayerSettingEXT)))+    pSettings' <- generateM (fromIntegral settingCount) (\i -> peekCStruct @LayerSettingEXT ((pSettings `advancePtrBytes` (32 * (i)) :: Ptr LayerSettingEXT)))+    pure $ LayerSettingsCreateInfoEXT+             pSettings'++instance Zero LayerSettingsCreateInfoEXT where+  zero = LayerSettingsCreateInfoEXT+           mempty+++-- | VkLayerSettingEXT - Specify a layer capability to configure+--+-- = Description+--+-- When multiple 'LayerSettingsCreateInfoEXT' structures are chained and+-- the same @pSettingName@ is referenced for the same @pLayerName@, the+-- value of the first reference of the layer setting is used.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-VkLayerSettingEXT-pLayerName-parameter# @pLayerName@ /must/ be+--     a null-terminated UTF-8 string+--+-- -   #VUID-VkLayerSettingEXT-pSettingName-parameter# @pSettingName@+--     /must/ be a null-terminated UTF-8 string+--+-- -   #VUID-VkLayerSettingEXT-type-parameter# @type@ /must/ be a valid+--     'LayerSettingTypeEXT' value+--+-- -   #VUID-VkLayerSettingEXT-pValues-parameter# If @valueCount@ is not+--     @0@, @pValues@ /must/ be a valid pointer to an array of @valueCount@+--     bytes+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,+-- 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'+data LayerSettingEXT = LayerSettingEXT+  { -- | @pLayerName@ is a pointer to a null-terminated UTF-8 string naming the+    -- layer to configure the setting from.+    layerName :: ByteString+  , -- | @pSettingName@ is a pointer to a null-terminated UTF-8 string naming the+    -- setting to configure. Unknown @pSettingName@ by the layer are ignored.+    settingName :: ByteString+  , -- | @type@ is a 'LayerSettingTypeEXT' value specifying the type of the+    -- @pValues@ values.+    type' :: LayerSettingTypeEXT+  , -- No documentation found for Nested "VkLayerSettingEXT" "valueCount"+    valueCount :: Word32+  , -- | @pValues@ is a pointer to an array of @count@ values of the type+    -- indicated by @type@ to configure the layer setting.+    values :: Ptr ()+  }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (LayerSettingEXT)+#endif+deriving instance Show LayerSettingEXT++instance ToCStruct LayerSettingEXT where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p LayerSettingEXT{..} f = evalContT $ do+    pLayerName'' <- ContT $ useAsCString (layerName)+    lift $ poke ((p `plusPtr` 0 :: Ptr (Ptr CChar))) pLayerName''+    pSettingName'' <- ContT $ useAsCString (settingName)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr CChar))) pSettingName''+    lift $ poke ((p `plusPtr` 16 :: Ptr LayerSettingTypeEXT)) (type')+    lift $ poke ((p `plusPtr` 20 :: Ptr Word32)) (valueCount)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (values)+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    pLayerName'' <- ContT $ useAsCString (mempty)+    lift $ poke ((p `plusPtr` 0 :: Ptr (Ptr CChar))) pLayerName''+    pSettingName'' <- ContT $ useAsCString (mempty)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr CChar))) pSettingName''+    lift $ poke ((p `plusPtr` 16 :: Ptr LayerSettingTypeEXT)) (zero)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr ()))) (zero)+    lift $ f++instance FromCStruct LayerSettingEXT where+  peekCStruct p = do+    pLayerName <- packCString =<< peek ((p `plusPtr` 0 :: Ptr (Ptr CChar)))+    pSettingName <- packCString =<< peek ((p `plusPtr` 8 :: Ptr (Ptr CChar)))+    type' <- peek @LayerSettingTypeEXT ((p `plusPtr` 16 :: Ptr LayerSettingTypeEXT))+    valueCount <- peek @Word32 ((p `plusPtr` 20 :: Ptr Word32))+    pValues <- peek @(Ptr ()) ((p `plusPtr` 24 :: Ptr (Ptr ())))+    pure $ LayerSettingEXT+             pLayerName pSettingName type' valueCount pValues++instance Zero LayerSettingEXT where+  zero = LayerSettingEXT+           mempty+           mempty+           zero+           zero+           zero+++-- | VkLayerSettingTypeEXT - Type of the values that can be passed to a layer+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>,+-- 'LayerSettingEXT'+newtype LayerSettingTypeEXT = LayerSettingTypeEXT Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'LAYER_SETTING_TYPE_BOOL32_EXT' specifies that the layer setting’s type+-- is 'Vulkan.Core10.FundamentalTypes.Bool32'.+pattern LAYER_SETTING_TYPE_BOOL32_EXT = LayerSettingTypeEXT 0++-- | 'LAYER_SETTING_TYPE_INT32_EXT' specifies that the layer setting’s type+-- is signed 32-bit integer.+pattern LAYER_SETTING_TYPE_INT32_EXT = LayerSettingTypeEXT 1++-- | 'LAYER_SETTING_TYPE_INT64_EXT' specifies that the layer setting’s type+-- is signed 64-bit integer.+pattern LAYER_SETTING_TYPE_INT64_EXT = LayerSettingTypeEXT 2++-- | 'LAYER_SETTING_TYPE_UINT32_EXT' specifies that the layer setting’s type+-- is unsigned 32-bit integer.+pattern LAYER_SETTING_TYPE_UINT32_EXT = LayerSettingTypeEXT 3++-- | 'LAYER_SETTING_TYPE_UINT64_EXT' specifies that the layer setting’s type+-- is unsigned 64-bit integer.+pattern LAYER_SETTING_TYPE_UINT64_EXT = LayerSettingTypeEXT 4++-- | 'LAYER_SETTING_TYPE_FLOAT32_EXT' specifies that the layer setting’s type+-- is 32-bit floating-point.+pattern LAYER_SETTING_TYPE_FLOAT32_EXT = LayerSettingTypeEXT 5++-- | 'LAYER_SETTING_TYPE_FLOAT64_EXT' specifies that the layer setting’s type+-- is 64-bit floating-point.+pattern LAYER_SETTING_TYPE_FLOAT64_EXT = LayerSettingTypeEXT 6++-- | 'LAYER_SETTING_TYPE_STRING_EXT' specifies that the layer setting’s type+-- is a pointer to a null-terminated UTF-8 string.+pattern LAYER_SETTING_TYPE_STRING_EXT = LayerSettingTypeEXT 7++{-# COMPLETE+  LAYER_SETTING_TYPE_BOOL32_EXT+  , LAYER_SETTING_TYPE_INT32_EXT+  , LAYER_SETTING_TYPE_INT64_EXT+  , LAYER_SETTING_TYPE_UINT32_EXT+  , LAYER_SETTING_TYPE_UINT64_EXT+  , LAYER_SETTING_TYPE_FLOAT32_EXT+  , LAYER_SETTING_TYPE_FLOAT64_EXT+  , LAYER_SETTING_TYPE_STRING_EXT ::+    LayerSettingTypeEXT+  #-}++conNameLayerSettingTypeEXT :: String+conNameLayerSettingTypeEXT = "LayerSettingTypeEXT"++enumPrefixLayerSettingTypeEXT :: String+enumPrefixLayerSettingTypeEXT = "LAYER_SETTING_TYPE_"++showTableLayerSettingTypeEXT :: [(LayerSettingTypeEXT, String)]+showTableLayerSettingTypeEXT =+  [ (LAYER_SETTING_TYPE_BOOL32_EXT, "BOOL32_EXT")+  , (LAYER_SETTING_TYPE_INT32_EXT, "INT32_EXT")+  , (LAYER_SETTING_TYPE_INT64_EXT, "INT64_EXT")+  , (LAYER_SETTING_TYPE_UINT32_EXT, "UINT32_EXT")+  , (LAYER_SETTING_TYPE_UINT64_EXT, "UINT64_EXT")+  , (LAYER_SETTING_TYPE_FLOAT32_EXT, "FLOAT32_EXT")+  , (LAYER_SETTING_TYPE_FLOAT64_EXT, "FLOAT64_EXT")+  , (LAYER_SETTING_TYPE_STRING_EXT, "STRING_EXT")+  ]++instance Show LayerSettingTypeEXT where+  showsPrec =+    enumShowsPrec+      enumPrefixLayerSettingTypeEXT+      showTableLayerSettingTypeEXT+      conNameLayerSettingTypeEXT+      (\(LayerSettingTypeEXT x) -> x)+      (showsPrec 11)++instance Read LayerSettingTypeEXT where+  readPrec =+    enumReadPrec+      enumPrefixLayerSettingTypeEXT+      showTableLayerSettingTypeEXT+      conNameLayerSettingTypeEXT+      LayerSettingTypeEXT++type EXT_LAYER_SETTINGS_SPEC_VERSION = 2++-- No documentation found for TopLevel "VK_EXT_LAYER_SETTINGS_SPEC_VERSION"+pattern EXT_LAYER_SETTINGS_SPEC_VERSION :: forall a . Integral a => a+pattern EXT_LAYER_SETTINGS_SPEC_VERSION = 2+++type EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings"++-- No documentation found for TopLevel "VK_EXT_LAYER_SETTINGS_EXTENSION_NAME"+pattern EXT_LAYER_SETTINGS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern EXT_LAYER_SETTINGS_EXTENSION_NAME = "VK_EXT_layer_settings"+
+ src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot view
@@ -0,0 +1,205 @@+{-# language CPP #-}+-- | = Name+--+-- VK_EXT_layer_settings - instance extension+--+-- == VK_EXT_layer_settings+--+-- [__Name String__]+--     @VK_EXT_layer_settings@+--+-- [__Extension Type__]+--     Instance extension+--+-- [__Registered Extension Number__]+--     497+--+-- [__Revision__]+--     2+--+-- [__Ratification Status__]+--     Ratified+--+-- [__Extension and Version Dependencies__]+--     None+--+-- [__Contact__]+--+--     -   Christophe Riccio+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_EXT_layer_settings] @christophe%0A*Here describe the issue or question you have about the VK_EXT_layer_settings extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_layer_settings.adoc VK_EXT_layer_settings>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-09-23+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Christophe Riccio, LunarG+--+--     -   Mark Lobodzinski, LunarG+--+--     -   Charles Giessen, LunarG+--+--     -   Spencer Fricke, LunarG+--+--     -   Juan Ramos, LunarG+--+--     -   Daniel Rakos, RasterGrid+--+--     -   Shahbaz Youssefi, Google+--+--     -   Lina Versace, Google+--+--     -   Bill Hollings, The Brenwill Workshop+--+--     -   Jon Leech, Khronos+--+--     -   Tom Olson, Arm+--+-- == Description+--+-- This extension provides a mechanism for configuring programmatically+-- through the Vulkan API the behavior of layers.+--+-- This extension provides the 'LayerSettingsCreateInfoEXT' struct that can+-- be included in the @pNext@ chain of the+-- 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo' structure passed+-- as the @pCreateInfo@ parameter of+-- 'Vulkan.Core10.DeviceInitialization.createInstance'.+--+-- The structure contains an array of 'LayerSettingEXT' structure values+-- that configure specific features of layers.+--+-- == Example+--+-- @VK_EXT_layer_settings@ is implemented by the Vulkan Profiles layer.+--+-- It allows the profiles layer tests used by the profiles layer C.I. to+-- programmatically configure the layer for each test without affecting the+-- C.I. environment, allowing to run multiple tests concurrently.+--+-- > const char* profile_file_data = JSON_TEST_FILES_PATH "VP_KHR_roadmap_2022.json";+-- > const char* profile_name_data = "VP_KHR_roadmap_2022";+-- > VkBool32 emulate_portability_data = VK_TRUE;+-- > const char* simulate_capabilities[] = {+-- >     "SIMULATE_API_VERSION_BIT",+-- >     "SIMULATE_FEATURES_BIT",+-- >     "SIMULATE_PROPERTIES_BIT",+-- >     "SIMULATE_EXTENSIONS_BIT",+-- >     "SIMULATE_FORMATS_BIT",+-- >     "SIMULATE_QUEUE_FAMILY_PROPERTIES_BIT"+-- > };+-- > const char* debug_reports[] = {+-- >     "DEBUG_REPORT_ERROR_BIT",+-- >     "DEBUG_REPORT_WARNING_BIT",+-- >     "DEBUG_REPORT_NOTIFICATION_BIT",+-- >     "DEBUG_REPORT_DEBUG_BIT"+-- > };+-- >+-- > const VkLayerSettingEXT settings[] = {+-- >      {kLayerName, kLayerSettingsProfileFile, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_file_data},+-- >      {kLayerName, kLayerSettingsProfileName, VK_LAYER_SETTING_TYPE_STRING_EXT, 1, &profile_name_data},+-- >      {kLayerName, kLayerSettingsEmulatePortability, VK_LAYER_SETTING_TYPE_BOOL32_EXT, 1, &emulate_portability_data},+-- >      {kLayerName, kLayerSettingsSimulateCapabilities, VK_LAYER_SETTING_TYPE_STRING_EXT,+-- >         static_cast<uint32_t>(std::size(simulate_capabilities)), simulate_capabilities},+-- >      {kLayerName, kLayerSettingsDebugReports, VK_LAYER_SETTING_TYPE_STRING_EXT,+-- >         static_cast<uint32_t>(std::size(debug_reports)), debug_reports}+-- > };+-- >+-- > const VkLayerSettingsCreateInfoEXT layer_settings_create_info{+-- >     VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT, nullptr,+-- >     static_cast<uint32_t>(std::size(settings)), settings};+-- >+-- > VkInstanceCreateInfo inst_create_info = {};+-- > ...+-- > inst_create_info.pNext = &layer_settings_create_info;+-- > vkCreateInstance(&inst_create_info, nullptr, &_instances);+--+-- Note+--+-- The @VK_EXT_layer_settings@ extension subsumes all the functionality+-- provided in the @VK_EXT_validation_flags@ extension and the+-- @VK_EXT_validation_features@ extension.+--+-- == New Structures+--+-- -   'LayerSettingEXT'+--+-- -   Extending 'Vulkan.Core10.DeviceInitialization.InstanceCreateInfo':+--+--     -   'LayerSettingsCreateInfoEXT'+--+-- == New Enums+--+-- -   'LayerSettingTypeEXT'+--+-- == New Enum Constants+--+-- -   'EXT_LAYER_SETTINGS_EXTENSION_NAME'+--+-- -   'EXT_LAYER_SETTINGS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT'+--+-- == Issues+--+-- -   How should application developers figure out the list of available+--     settings?+--+-- This extension does not provide a reflection API for layer settings.+-- Layer settings are described in each layer JSON manifest and the+-- documentation of each layer which implements this extension.+--+-- == Version History+--+-- -   Revision 1, 2020-06-17 (Mark Lobodzinski)+--+--     -   Initial revision for Validation layer internal usages+--+-- -   Revision 2, 2023-09-26 (Christophe Riccio)+--+--     -   Refactor APIs for any layer usages and public release+--+-- == See Also+--+-- 'LayerSettingEXT', 'LayerSettingTypeEXT', 'LayerSettingsCreateInfoEXT'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_EXT_layer_settings 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_layer_settings  ( LayerSettingEXT+                                                , LayerSettingsCreateInfoEXT+                                                ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data LayerSettingEXT++instance ToCStruct LayerSettingEXT+instance Show LayerSettingEXT++instance FromCStruct LayerSettingEXT+++data LayerSettingsCreateInfoEXT++instance ToCStruct LayerSettingsCreateInfoEXT+instance Show LayerSettingsCreateInfoEXT++instance FromCStruct LayerSettingsCreateInfoEXT+
src/Vulkan/Extensions/VK_EXT_mesh_shader.hs view
@@ -492,10 +492,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08601# For each push constant that@@ -504,11 +504,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksEXT-maintenance4-08602# If the@@ -519,20 +518,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08115# If the descriptors used by@@ -585,14 +586,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMeshTasksEXT-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -636,6 +629,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMeshTasksEXT-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawMeshTasksEXT-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@@ -1236,16 +1237,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksEXT-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -1726,22 +1717,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksEXT-None-08644# If a shader object is bound --     to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -1843,42 +1848,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMeshTasksEXT-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMeshTasksEXT-colorAttachmentCount-09362# If the@@ -2286,9 +2291,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -2302,9 +2305,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -4189,10 +4190,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08601# For each push@@ -4201,11 +4202,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-maintenance4-08602# If the@@ -4216,20 +4216,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08115# If the descriptors@@ -4282,14 +4284,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -4333,6 +4327,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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,@@ -4939,16 +4941,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -5430,22 +5422,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-None-08644# If a shader object --     is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -5548,42 +5554,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectEXT-colorAttachmentCount-09362# If@@ -5992,9 +5998,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -6008,9 +6012,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -7886,10 +7888,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08601# For each push@@ -7898,11 +7900,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-maintenance4-08602# If the@@ -7913,20 +7914,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08115# If the@@ -7979,14 +7982,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08608# If a pipeline --     is bound to the pipeline bind point used by this command, there --     /must/ not have been any calls to dynamic state setting commands for@@ -8030,6 +8025,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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@@ -8637,16 +8640,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -9131,22 +9124,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-None-08644# If a shader --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -9249,42 +9256,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountEXT-colorAttachmentCount-09362#@@ -9693,9 +9700,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -9709,9 +9714,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
src/Vulkan/Extensions/VK_EXT_multi_draw.hs view
@@ -367,10 +367,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMultiEXT-None-08601# For each push constant that is@@ -379,11 +379,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMultiEXT-maintenance4-08602# If the@@ -394,20 +393,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMultiEXT-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMultiEXT-None-08115# If the descriptors used by the@@ -458,14 +459,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMultiEXT-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMultiEXT-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -509,6 +502,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMultiEXT-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawMultiEXT-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@@ -1109,16 +1110,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiEXT-sampleLocationsPerPixel-07934# If the bound---     graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMultiEXT-None-07840# If the bound graphics pipeline --     state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -1599,22 +1590,36 @@ -- -- -   #VUID-vkCmdDrawMultiEXT-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMultiEXT-None-08644# If a shader object is bound to --     any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -1716,42 +1721,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911# If+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08912# If+-- -   #VUID-vkCmdDrawMultiEXT-dynamicRenderingUnusedAttachments-08911# If --     the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMultiEXT-colorAttachmentCount-09362# If the current@@ -2159,8 +2164,6 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMultiEXT-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@@ -2175,8 +2178,6 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawMultiEXT-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@@ -3893,6 +3894,32 @@ --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --     stages --+-- -   #VUID-vkCmdDrawMultiEXT-pNext-09461# If the bound graphics pipeline+--     state was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-vkCmdDrawMultiEXT-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+-- -- -   #VUID-vkCmdDrawMultiEXT-None-04933# The --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-multiDraw multiDraw> --     feature /must/ be enabled@@ -4166,10 +4193,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08601# For each push constant@@ -4178,11 +4205,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-maintenance4-08602# If the@@ -4193,20 +4219,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08115# If the descriptors used@@ -4259,14 +4287,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -4310,6 +4330,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawMultiIndexedEXT-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@@ -4910,16 +4938,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -5400,22 +5418,36 @@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMultiIndexedEXT-None-08644# If a shader object is --     bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -5517,42 +5549,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMultiIndexedEXT-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-09362# If the@@ -5960,9 +5992,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -5976,9 +6006,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -7713,6 +7741,32 @@ --     @indexType@, where the index buffer, @indexType@, and @offset@ are --     specified via --     'Vulkan.Core10.CommandBufferBuilding.cmdBindIndexBuffer'+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-pNext-09461# If the bound graphics+--     pipeline state was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-vkCmdDrawMultiIndexedEXT-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@ -- -- -   #VUID-vkCmdDrawMultiIndexedEXT-robustBufferAccess2-08798# If --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-robustBufferAccess2 robustBufferAccess2>
src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs view
@@ -60,7 +60,7 @@ -- When using pipeline libraries in ray tracing pipelines, a library might -- get linked into different pipelines in an incremental way. An -- application can have a strategy where a ray tracing pipeline is--- comprised of N pipeline libraries and is later augumented by creating a+-- comprised of N pipeline libraries and is later augmented by creating a -- new pipeline with N + 1 libraries. Without this extension, all group -- handles must be re-queried as the group handle is tied to the pipeline, -- not the library. This is problematic for applications which aim to
src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot view
@@ -60,7 +60,7 @@ -- When using pipeline libraries in ray tracing pipelines, a library might -- get linked into different pipelines in an incremental way. An -- application can have a strategy where a ray tracing pipeline is--- comprised of N pipeline libraries and is later augumented by creating a+-- comprised of N pipeline libraries and is later augmented by creating a -- new pipeline with N + 1 libraries. Without this extension, all group -- handles must be re-queried as the group handle is tied to the pipeline, -- not the library. This is problematic for applications which aim to
src/Vulkan/Extensions/VK_EXT_transform_feedback.hs view
@@ -1592,10 +1592,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08601# For each push@@ -1604,11 +1604,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-08602# If the@@ -1619,20 +1618,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08115# If the descriptors@@ -1685,14 +1686,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -1736,6 +1729,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-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,@@ -2342,16 +2343,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -2833,22 +2824,36 @@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-08644# If a shader object --     is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -2951,42 +2956,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-09362# If@@ -3395,9 +3400,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -3411,9 +3414,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -5115,6 +5116,32 @@ --     or --     'Vulkan.Core10.Enums.ShaderStageFlagBits.SHADER_STAGE_MESH_BIT_EXT' --     stages+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-pNext-09461# If the bound+--     graphics pipeline state was created with+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'+--     in the @pNext@ chain of+--     'Vulkan.Core10.Pipeline.GraphicsPipelineCreateInfo'::@pVertexInputState@,+--     any member of+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PipelineVertexInputDivisorStateCreateInfoKHR'::@pVertexBindingDivisors@+--     has a value other than @1@ in @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@+--+-- -   #VUID-vkCmdDrawIndirectByteCountEXT-None-09462# If+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#shaders-objects shader objects>+--     are used for drawing or the bound graphics pipeline state was+--     created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_VERTEX_INPUT_EXT'+--     dynamic state enabled, any member of the+--     @pVertexBindingDescriptions@ parameter to the+--     'Vulkan.Extensions.VK_EXT_vertex_input_dynamic_state.cmdSetVertexInputEXT'+--     call that sets this dynamic state has a value other than @1@ in+--     @divisor@, and+--     'Vulkan.Extensions.VK_KHR_vertex_attribute_divisor.PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@supportsNonZeroFirstInstance@+--     is 'Vulkan.Core10.FundamentalTypes.FALSE', then @firstInstance@+--     /must/ be @0@ -- -- -   #VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287# --     'PhysicalDeviceTransformFeedbackFeaturesEXT'::@transformFeedback@
src/Vulkan/Extensions/VK_EXT_validation_features.hs view
@@ -15,7 +15,7 @@ --     248 -- -- [__Revision__]---     5+--     6 -- -- [__Ratification Status__] --     Not ratified@@ -23,6 +23,12 @@ -- [__Extension and Version Dependencies__] --     None --+-- [__Deprecation State__]+--+--     -   /Deprecated/ by+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>+--         extension+-- -- [__Special Use__] -- --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>@@ -67,10 +73,10 @@ -- values that disable specific validation layer features that are enabled -- by default. ----- Note+-- == Deprecation by @VK_EXT_layer_settings@ ----- The @VK_EXT_validation_features@ extension subsumes all the--- functionality provided in the @VK_EXT_validation_flags@ extension.+-- Functionality in this extension is subsumed into the+-- @VK_EXT_layer_settings@ extension. -- -- == New Structures --@@ -116,6 +122,10 @@ -- --     -   Add Shader Validation Cache disable --+-- -   Revision 6, 2023-09-25 (Christophe Riccio)+--+--     -   Marked as deprecated by VK_EXT_layer_settings+-- -- == See Also -- -- 'ValidationFeatureDisableEXT', 'ValidationFeatureEnableEXT',@@ -496,11 +506,11 @@       conNameValidationFeatureDisableEXT       ValidationFeatureDisableEXT -type EXT_VALIDATION_FEATURES_SPEC_VERSION = 5+type EXT_VALIDATION_FEATURES_SPEC_VERSION = 6  -- No documentation found for TopLevel "VK_EXT_VALIDATION_FEATURES_SPEC_VERSION" pattern EXT_VALIDATION_FEATURES_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_VALIDATION_FEATURES_SPEC_VERSION = 5+pattern EXT_VALIDATION_FEATURES_SPEC_VERSION = 6   type EXT_VALIDATION_FEATURES_EXTENSION_NAME = "VK_EXT_validation_features"
src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot view
@@ -15,7 +15,7 @@ --     248 -- -- [__Revision__]---     5+--     6 -- -- [__Ratification Status__] --     Not ratified@@ -23,6 +23,12 @@ -- [__Extension and Version Dependencies__] --     None --+-- [__Deprecation State__]+--+--     -   /Deprecated/ by+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings>+--         extension+-- -- [__Special Use__] -- --     -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#extendingvulkan-compatibility-specialuse Debugging tools>@@ -67,10 +73,10 @@ -- values that disable specific validation layer features that are enabled -- by default. ----- Note+-- == Deprecation by @VK_EXT_layer_settings@ ----- The @VK_EXT_validation_features@ extension subsumes all the--- functionality provided in the @VK_EXT_validation_flags@ extension.+-- Functionality in this extension is subsumed into the+-- @VK_EXT_layer_settings@ extension. -- -- == New Structures --@@ -115,6 +121,10 @@ -- -   Revision 5, 2021-05-18 (Tony Barbour) -- --     -   Add Shader Validation Cache disable+--+-- -   Revision 6, 2023-09-25 (Christophe Riccio)+--+--     -   Marked as deprecated by VK_EXT_layer_settings -- -- == See Also --
src/Vulkan/Extensions/VK_EXT_validation_flags.hs view
@@ -15,7 +15,7 @@ --     62 -- -- [__Revision__]---     2+--     3 -- -- [__Ratification Status__] --     Not ratified@@ -26,7 +26,7 @@ -- [__Deprecation State__] -- --     -   /Deprecated/ by---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features VK_EXT_validation_features>+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings> --         extension -- -- [__Special Use__]@@ -62,10 +62,10 @@ -- contains an array of 'ValidationCheckEXT' values that will be disabled -- by the validation layers. ----- == Deprecation by @VK_EXT_validation_features@+-- == Deprecation by @VK_EXT_layer_settings@ -- -- Functionality in this extension is subsumed into the--- @VK_EXT_validation_features@ extension.+-- @VK_EXT_layer_settings@ extension. -- -- == New Structures --@@ -89,9 +89,13 @@ -- -- == Version History --+-- -   Revision 3, 2023-09-25 (Christophe Riccio)+--+--     -   Marked as deprecated by VK_EXT_layer_settings+-- -- -   Revision 2, 2019-08-19 (Mark Lobodzinski) -----     -   Marked as deprecated+--     -   Marked as deprecated by VK_EXT_validation_features -- -- -   Revision 1, 2016-08-26 (Courtney Goeltzenleuchter) --@@ -259,11 +263,11 @@       conNameValidationCheckEXT       ValidationCheckEXT -type EXT_VALIDATION_FLAGS_SPEC_VERSION = 2+type EXT_VALIDATION_FLAGS_SPEC_VERSION = 3  -- No documentation found for TopLevel "VK_EXT_VALIDATION_FLAGS_SPEC_VERSION" pattern EXT_VALIDATION_FLAGS_SPEC_VERSION :: forall a . Integral a => a-pattern EXT_VALIDATION_FLAGS_SPEC_VERSION = 2+pattern EXT_VALIDATION_FLAGS_SPEC_VERSION = 3   type EXT_VALIDATION_FLAGS_EXTENSION_NAME = "VK_EXT_validation_flags"
src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot view
@@ -15,7 +15,7 @@ --     62 -- -- [__Revision__]---     2+--     3 -- -- [__Ratification Status__] --     Not ratified@@ -26,7 +26,7 @@ -- [__Deprecation State__] -- --     -   /Deprecated/ by---         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_validation_features VK_EXT_validation_features>+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_layer_settings VK_EXT_layer_settings> --         extension -- -- [__Special Use__]@@ -62,10 +62,10 @@ -- contains an array of 'ValidationCheckEXT' values that will be disabled -- by the validation layers. ----- == Deprecation by @VK_EXT_validation_features@+-- == Deprecation by @VK_EXT_layer_settings@ -- -- Functionality in this extension is subsumed into the--- @VK_EXT_validation_features@ extension.+-- @VK_EXT_layer_settings@ extension. -- -- == New Structures --@@ -89,9 +89,13 @@ -- -- == Version History --+-- -   Revision 3, 2023-09-25 (Christophe Riccio)+--+--     -   Marked as deprecated by VK_EXT_layer_settings+-- -- -   Revision 2, 2019-08-19 (Mark Lobodzinski) -----     -   Marked as deprecated+--     -   Marked as deprecated by VK_EXT_validation_features -- -- -   Revision 1, 2016-08-26 (Courtney Goeltzenleuchter) --
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs view
@@ -25,6 +25,12 @@ --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1> --+-- [__Deprecation State__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>+--         extension+-- -- [__Contact__] -- --     -   Vikram Kushwaha@@ -78,11 +84,11 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT' -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT' -- -- == Issues --@@ -166,24 +172,24 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  ( VertexInputBindingDivisorDescriptionEXT(..)-                                                          , PipelineVertexInputDivisorStateCreateInfoEXT(..)+module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  ( pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT+                                                          , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT                                                           , PhysicalDeviceVertexAttributeDivisorPropertiesEXT(..)-                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesEXT(..)+                                                          , VertexInputBindingDivisorDescriptionEXT+                                                          , PipelineVertexInputDivisorStateCreateInfoEXT+                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesEXT                                                           , EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION                                                           , pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION                                                           , EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME                                                           , pattern EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME+                                                          , VertexInputBindingDivisorDescriptionKHR(..)+                                                          , PipelineVertexInputDivisorStateCreateInfoKHR(..)+                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesKHR(..)                                                           ) where  import Foreign.Marshal.Alloc (allocaBytes) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr)-import Control.Monad.Trans.Class (lift)-import Control.Monad.Trans.Cont (evalContT)-import Data.Vector (generateM)-import qualified Data.Vector (imapM_)-import qualified Data.Vector (length) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.CStruct (ToCStruct)@@ -199,161 +205,22 @@ import Foreign.Ptr (Ptr) import Data.Word (Word32) import Data.Kind (Type)-import Control.Monad.Trans.Cont (ContT(..))-import Data.Vector (Vector)-import Vulkan.CStruct.Utils (advancePtrBytes)-import Vulkan.Core10.FundamentalTypes (bool32ToBool)-import Vulkan.Core10.FundamentalTypes (boolToBool32)-import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR) import Vulkan.Core10.Enums.StructureType (StructureType)-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT))+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionKHR)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT))-import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT))--- | VkVertexInputBindingDivisorDescriptionEXT - Structure specifying a--- divisor used in instanced rendering------ = Description------ If this structure is not used to define a divisor value for an--- attribute, then the divisor has a logical default value of 1.------ == Valid Usage------ -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869#---     @binding@ /must/ be less than---     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@------ -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228#---     If the @vertexAttributeInstanceRateZeroDivisor@ feature is not---     enabled, @divisor@ /must/ not be @0@------ -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229#---     If the @vertexAttributeInstanceRateDivisor@ feature is not enabled,---     @divisor@ /must/ be @1@------ -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870#---     @divisor@ /must/ be a value between @0@ and---     'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@,---     inclusive------ -   #VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871#---     'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@inputRate@---     /must/ be of type---     'Vulkan.Core10.Enums.VertexInputRate.VERTEX_INPUT_RATE_INSTANCE' for---     this @binding@------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,--- 'PipelineVertexInputDivisorStateCreateInfoEXT'-data VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionEXT-  { -- | @binding@ is the binding number for which the divisor is specified.-    binding :: Word32-  , -- | @divisor@ is the number of successive instances that will use the same-    -- value of the vertex attribute when instanced rendering is enabled. For-    -- example, if the divisor is N, the same vertex attribute will be applied-    -- to N successive instances before moving on to the next vertex attribute.-    -- The maximum value of @divisor@ is implementation-dependent and can be-    -- queried using-    -- 'PhysicalDeviceVertexAttributeDivisorPropertiesEXT'::@maxVertexAttribDivisor@.-    -- A value of @0@ /can/ be used for the divisor if the-    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>-    -- feature is enabled. In this case, the same vertex attribute will be-    -- applied to all instances.-    divisor :: Word32-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (VertexInputBindingDivisorDescriptionEXT)-#endif-deriving instance Show VertexInputBindingDivisorDescriptionEXT--instance ToCStruct VertexInputBindingDivisorDescriptionEXT where-  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p VertexInputBindingDivisorDescriptionEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)-    poke ((p `plusPtr` 4 :: Ptr Word32)) (divisor)-    f-  cStructSize = 8-  cStructAlignment = 4-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)-    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)-    f--instance FromCStruct VertexInputBindingDivisorDescriptionEXT where-  peekCStruct p = do-    binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))-    divisor <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))-    pure $ VertexInputBindingDivisorDescriptionEXT-             binding divisor--instance Storable VertexInputBindingDivisorDescriptionEXT where-  sizeOf ~_ = 8-  alignment ~_ = 4-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ())--instance Zero VertexInputBindingDivisorDescriptionEXT where-  zero = VertexInputBindingDivisorDescriptionEXT-           zero-           zero+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR))+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PhysicalDeviceVertexAttributeDivisorFeaturesKHR(..))+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (PipelineVertexInputDivisorStateCreateInfoKHR(..))+import Vulkan.Extensions.VK_KHR_vertex_attribute_divisor (VertexInputBindingDivisorDescriptionKHR(..))+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT"+pattern STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR  --- | VkPipelineVertexInputDivisorStateCreateInfoEXT - Structure specifying--- vertex attributes assignment during instanced rendering------ == Valid Usage (Implicit)------ = See Also------ <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,--- 'Vulkan.Core10.Enums.StructureType.StructureType',--- 'VertexInputBindingDivisorDescriptionEXT'-data PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfoEXT-  { -- | @pVertexBindingDivisors@ is a pointer to an array of-    -- 'VertexInputBindingDivisorDescriptionEXT' structures specifying the-    -- divisor value for each binding.-    ---    -- #VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter#-    -- @pVertexBindingDivisors@ /must/ be a valid pointer to an array of-    -- @vertexBindingDivisorCount@ 'VertexInputBindingDivisorDescriptionEXT'-    -- structures-    vertexBindingDivisors :: Vector VertexInputBindingDivisorDescriptionEXT }-  deriving (Typeable)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PipelineVertexInputDivisorStateCreateInfoEXT)-#endif-deriving instance Show PipelineVertexInputDivisorStateCreateInfoEXT--instance ToCStruct PipelineVertexInputDivisorStateCreateInfoEXT where-  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PipelineVertexInputDivisorStateCreateInfoEXT{..} f = evalContT $ do-    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT)-    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDivisors)) :: Word32))-    pPVertexBindingDivisors' <- ContT $ allocaBytes @VertexInputBindingDivisorDescriptionEXT ((Data.Vector.length (vertexBindingDivisors)) * 8)-    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDivisors' `plusPtr` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionEXT) (e)) (vertexBindingDivisors)-    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionEXT))) (pPVertexBindingDivisors')-    lift $ f-  cStructSize = 32-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    f--instance FromCStruct PipelineVertexInputDivisorStateCreateInfoEXT where-  peekCStruct p = do-    vertexBindingDivisorCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))-    pVertexBindingDivisors <- peek @(Ptr VertexInputBindingDivisorDescriptionEXT) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionEXT)))-    pVertexBindingDivisors' <- generateM (fromIntegral vertexBindingDivisorCount) (\i -> peekCStruct @VertexInputBindingDivisorDescriptionEXT ((pVertexBindingDivisors `advancePtrBytes` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionEXT)))-    pure $ PipelineVertexInputDivisorStateCreateInfoEXT-             pVertexBindingDivisors'--instance Zero PipelineVertexInputDivisorStateCreateInfoEXT where-  zero = PipelineVertexInputDivisorStateCreateInfoEXT-           mempty+-- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR   -- | VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT - Structure@@ -377,9 +244,9 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>, -- 'Vulkan.Core10.Enums.StructureType.StructureType' data PhysicalDeviceVertexAttributeDivisorPropertiesEXT = PhysicalDeviceVertexAttributeDivisorPropertiesEXT-  { -- | #limits-maxVertexAttribDivisor# @maxVertexAttribDivisor@ is the maximum-    -- value of the number of instances that will repeat the value of vertex-    -- attribute data when instanced rendering is enabled.+  { -- | #extension-limits-maxVertexAttribDivisor# @maxVertexAttribDivisor@ is+    -- the maximum value of the number of instances that will repeat the value+    -- of vertex attribute data when instanced rendering is enabled.     maxVertexAttribDivisor :: Word32 }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)@@ -419,83 +286,16 @@            zero  --- | VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT - Structure describing--- if fetching of vertex attribute may be repeated for instanced rendering------ = Members------ This structure describes the following features:------ = Description------ If the 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' 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. 'PhysicalDeviceVertexAttributeDivisorFeaturesEXT' /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_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,--- 'Vulkan.Core10.FundamentalTypes.Bool32',--- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeaturesEXT-  { -- | #features-vertexAttributeInstanceRateDivisor#-    -- @vertexAttributeInstanceRateDivisor@ specifies whether vertex attribute-    -- fetching may be repeated in case of instanced rendering.-    vertexAttributeInstanceRateDivisor :: Bool-  , -- | #features-vertexAttributeInstanceRateZeroDivisor#-    -- @vertexAttributeInstanceRateZeroDivisor@ specifies whether a zero value-    -- for 'VertexInputBindingDivisorDescriptionEXT'::@divisor@ is supported.-    vertexAttributeInstanceRateZeroDivisor :: Bool-  }-  deriving (Typeable, Eq)-#if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceVertexAttributeDivisorFeaturesEXT)-#endif-deriving instance Show PhysicalDeviceVertexAttributeDivisorFeaturesEXT+-- No documentation found for TopLevel "VkVertexInputBindingDivisorDescriptionEXT"+type VertexInputBindingDivisorDescriptionEXT = VertexInputBindingDivisorDescriptionKHR -instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT where-  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceVertexAttributeDivisorFeaturesEXT{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT)-    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateDivisor))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateZeroDivisor))-    f-  cStructSize = 24-  cStructAlignment = 8-  pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_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 PhysicalDeviceVertexAttributeDivisorFeaturesEXT where-  peekCStruct p = do-    vertexAttributeInstanceRateDivisor <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    vertexAttributeInstanceRateZeroDivisor <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    pure $ PhysicalDeviceVertexAttributeDivisorFeaturesEXT-             (bool32ToBool vertexAttributeInstanceRateDivisor)-             (bool32ToBool vertexAttributeInstanceRateZeroDivisor)+-- No documentation found for TopLevel "VkPipelineVertexInputDivisorStateCreateInfoEXT"+type PipelineVertexInputDivisorStateCreateInfoEXT = PipelineVertexInputDivisorStateCreateInfoKHR -instance Storable PhysicalDeviceVertexAttributeDivisorFeaturesEXT where-  sizeOf ~_ = 24-  alignment ~_ = 8-  peek = peekCStruct-  poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceVertexAttributeDivisorFeaturesEXT where-  zero = PhysicalDeviceVertexAttributeDivisorFeaturesEXT-           zero-           zero+-- No documentation found for TopLevel "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT"+type PhysicalDeviceVertexAttributeDivisorFeaturesEXT = PhysicalDeviceVertexAttributeDivisorFeaturesKHR   type EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 3
src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot view
@@ -25,6 +25,12 @@ --     or --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1> --+-- [__Deprecation State__]+--+--     -   /Promoted/ to+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>+--         extension+-- -- [__Contact__] -- --     -   Vikram Kushwaha@@ -78,11 +84,11 @@ -- -- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT'+--     -   'STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT' -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT' -----     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT'+--     -   'STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT' -- -- == Issues --@@ -166,44 +172,16 @@ -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly.-module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  ( PhysicalDeviceVertexAttributeDivisorFeaturesEXT-                                                          , PhysicalDeviceVertexAttributeDivisorPropertiesEXT-                                                          , PipelineVertexInputDivisorStateCreateInfoEXT-                                                          , VertexInputBindingDivisorDescriptionEXT-                                                          ) where+module Vulkan.Extensions.VK_EXT_vertex_attribute_divisor  (PhysicalDeviceVertexAttributeDivisorPropertiesEXT) where  import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) -data PhysicalDeviceVertexAttributeDivisorFeaturesEXT--instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT-instance Show PhysicalDeviceVertexAttributeDivisorFeaturesEXT--instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesEXT-- data PhysicalDeviceVertexAttributeDivisorPropertiesEXT  instance ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesEXT instance Show PhysicalDeviceVertexAttributeDivisorPropertiesEXT  instance FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesEXT---data PipelineVertexInputDivisorStateCreateInfoEXT--instance ToCStruct PipelineVertexInputDivisorStateCreateInfoEXT-instance Show PipelineVertexInputDivisorStateCreateInfoEXT--instance FromCStruct PipelineVertexInputDivisorStateCreateInfoEXT---data VertexInputBindingDivisorDescriptionEXT--instance ToCStruct VertexInputBindingDivisorDescriptionEXT-instance Show VertexInputBindingDivisorDescriptionEXT--instance FromCStruct VertexInputBindingDivisorDescriptionEXT 
src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs view
@@ -15,7 +15,7 @@ --     405 -- -- [__Revision__]---     2+--     3 -- -- [__Ratification Status__] --     Not ratified@@ -38,7 +38,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]---     2022-11-17+--     2023-08-16 -- -- [__Interactions and External Dependencies__] --@@ -80,10 +80,10 @@ -- pipeline. -- -- A set of new built-in output variables are used to express a visible--- cluster. In addition, a new built-in function is used to emit these--- variables from CCS to the IA stage. The IA stage can use these variables--- to fetches vertices of a visible cluster and drive vertex shaders to--- shading these vertices.+-- cluster, including per-cluster shading rate. In addition, a new built-in+-- function is used to emit these variables from CCS to the IA stage. The+-- IA stage can use these variables to fetches vertices of a visible+-- cluster and drive vertex shaders to shading these vertices. -- -- Note that CCS do not work with geometry or tessellation shaders, but -- both IA and vertex shaders are preserved. Vertex shaders are still used@@ -99,6 +99,10 @@ -- -- == New Structures --+-- -   Extending 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI':+--+--     -   'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI'+-- -- -   Extending --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Core10.Device.DeviceCreateInfo':@@ -137,6 +141,8 @@ -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI' --+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI'+-- -- == New Built-In Variables -- -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-indexcounthuawei IndexCountHUAWEI>@@ -155,6 +161,8 @@ -- -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clusteridhuawei ClusterIDHUAWEI> --+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clustershadingratehuawei ClusterShadingRateHUAWEI>+-- -- == New SPIR-V Capability -- -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>@@ -176,13 +184,8 @@ -- > // - warpsize = 32 -- > layout(local_size_x=GPU_GROUP_SIZE, local_size_y=1, local_size_z=1) in; -- >--- >--- > #define GPU_CLUSTER_DESCRIPTOR_BINDING      0--- > #define GPU_DRAW_BUFFER_BINDING             1--- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     2--- >--- > const float pi_half = 1.570795;--- > uint instance_id;+-- > #define GPU_DRAW_BUFFER_BINDING             0+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     1 -- > -- > struct BoundingSphere -- > {@@ -190,19 +193,6 @@ -- >   float radius; -- > }; -- >--- > struct BoundingCone--- > {--- >   vec3 normal;--- >   float angle;--- > };--- >--- > struct ClusterDescriptor--- > {--- >   BoundingSphere sphere;--- >   BoundingCone cone;--- >   uint instance_idx;--- > };--- > -- > struct InstanceData -- > { -- >   mat4 mvp_matrix;                      // mvp matrix.@@ -238,15 +228,9 @@ -- >   int  gl_VertexOffsetHUAWEI; -- >   uint gl_FirstInstanceHUAWEI; -- >   uint gl_ClusterIDHUAWEI;--- > };--- >--- >--- > layout(binding = GPU_CLUSTER_DESCRIPTOR_BINDING, std430) readonly buffer cluster_descriptor_ssbo--- > {--- >         ClusterDescriptor cluster_descriptors[];+-- >   uint gl_ClusterShadingRateHUAWEI; -- > }; -- >--- > -- > layout(binding = GPU_DRAW_BUFFER_BINDING, std430) buffer draw_indirect_ssbo -- > { -- >         DrawElementsCommand draw_commands[];@@ -258,13 +242,13 @@ -- > }; -- > -- >--- > bool isFrontFaceVisible( vec3 sphere_center, float sphere_radius, vec3 cone_normal, float cone_angle )+-- > float Distance(uint instance_id) -- > {--- >   vec3 sphere_center_dir = normalize(sphere_center ---- >                            instance_descriptors[instance_id].instance_data.view_origin);+-- >     vec3 v = normalize(instance_descriptor[instance_id].sphere.center -+-- >                      instance_descriptor[instance_id].instance_data.view_origin);+-- >     float dist = sqrt(dot(v,v)); -- >--- >   float sin_cone_angle = sin(min(cone_angle, pi_half));--- >   return dot(cone_normal, sphere_center_dir) < sin_cone_angle;+-- >     return dist; -- > } -- > -- > bool isSphereOutsideFrustum( vec3 sphere_center, float sphere_radius )@@ -284,38 +268,40 @@ -- > -- > void main() -- > {--- >     uint cluster_id = gl_GlobalInvocationID.x;--- >     ClusterDescriptor desc = cluster_descriptors[cluster_id];--- > -- >     // get instance description--- >     instance_id = desc.instance_idx;+-- >     instance_id = gl_GlobalInvocationID.x; -- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id]; -- > -- >     //instance based culling--- >     bool instance_render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);+-- >     bool render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius); -- >--- >     if( instance_render)+-- >     if (render) -- >     {--- >         // cluster based culling--- >         bool render = (!isSphereOutsideFrustum(desc.sphere.center,--- >         desc.sphere.radius) && isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.norm--- >         al, desc.cone.angle));+-- >         // calculate distance+-- >         float distance = Distance(instance_id); -- >--- >         if (render)--- >         {--- >             // this cluster passed coarse-level culling, update built-in output variable.--- >             // in case of indexed mode:--- >             gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;--- >             gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;--- >             gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;--- >             gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;--- >             gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;--- >             gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;+-- >         // update shading rate built-in variable+-- >         if(distance > 0.7)+-- >             gl_ClusterShadingRateHUAWEI =+-- >                 gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT;+-- >         else if(distance > 0.3)+-- >             gl_ClusterShadingRateHUAWEI =+-- >                 gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT;+-- >         else+-- >             gl_ClusterShadingRateHUAWEI = 0; -- >--- >             // emit built-in output variables as a drawing command to subsequent--- >             // rendering pipeline.--- >             dispatchClusterHUAWEI();--- >         }+-- >         // this is a visible cluster, update built-in output variable.+-- >         // in case of indexed mode:+-- >         gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;+-- >         gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;+-- >         gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;+-- >         gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;+-- >         gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;+-- >         gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;+-- >+-- >         // emit built-in output variables as a drawing command to subsequent+-- >         // rendering pipeline.+-- >         dispatchClusterHUAWEI(); -- >     } -- > } --@@ -357,10 +343,15 @@ -- --     -   Grammar edits. --+-- -   Revision 3, 2023-08-21 (YuChang Wang)+--+--     -   Add per-cluster shading rate.+-- -- == See Also -- -- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', -- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',+-- 'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI', -- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI' -- -- == Document Notes@@ -374,6 +365,7 @@                                                            , cmdDrawClusterIndirectHUAWEI                                                            , PhysicalDeviceClusterCullingShaderPropertiesHUAWEI(..)                                                            , PhysicalDeviceClusterCullingShaderFeaturesHUAWEI(..)+                                                           , PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI(..)                                                            , HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION                                                            , pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION                                                            , HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME@@ -384,11 +376,15 @@ import Vulkan.Internal.Utils (traceAroundEvent) import Control.Monad (unless) import Control.Monad.IO.Class (liftIO)+import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) import GHC.IO (throwIO)+import GHC.Ptr (castPtr) import GHC.Ptr (nullFunPtr) import Foreign.Ptr (nullPtr) import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT) import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (FromCStruct(..)) import Vulkan.CStruct (ToCStruct)@@ -396,6 +392,7 @@ import Vulkan.Zero (Zero(..)) import Control.Monad.IO.Class (MonadIO) import Data.String (IsString)+import Data.Type.Equality ((:~:)(Refl)) import Data.Typeable (Typeable) import Foreign.Storable (Storable) import Foreign.Storable (Storable(peek))@@ -408,6 +405,7 @@ import Foreign.Ptr (Ptr) import Data.Word (Word32) import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..)) import Vulkan.CStruct.Utils (advancePtrBytes) import Vulkan.Core10.FundamentalTypes (bool32ToBool) import Vulkan.Core10.FundamentalTypes (boolToBool32)@@ -416,6 +414,7 @@ import Vulkan.Core10.FundamentalTypes (Bool32) import Vulkan.Core10.Handles (Buffer) import Vulkan.Core10.Handles (Buffer(..))+import Vulkan.CStruct.Extends (Chain) import Vulkan.Core10.Handles (CommandBuffer) import Vulkan.Core10.Handles (CommandBuffer(..)) import Vulkan.Core10.Handles (CommandBuffer(CommandBuffer))@@ -423,9 +422,17 @@ import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterHUAWEI)) import Vulkan.Dynamic (DeviceCmds(pVkCmdDrawClusterIndirectHUAWEI)) import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.CStruct.Extends (Extends)+import Vulkan.CStruct.Extends (Extendss)+import Vulkan.CStruct.Extends (Extensible(..))+import Vulkan.CStruct.Extends (PeekChain)+import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.CStruct.Extends (PokeChain)+import Vulkan.CStruct.Extends (PokeChain(..)) import Vulkan.Core10.Enums.StructureType (StructureType) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI)) foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)   unsafe@@ -603,10 +610,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08601# For each push constant that@@ -615,11 +622,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawClusterHUAWEI-maintenance4-08602# If the@@ -630,20 +636,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08115# If the descriptors used by@@ -696,14 +704,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawClusterHUAWEI-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08608# If a pipeline is bound to --     the pipeline bind point used by this command, there /must/ not have --     been any calls to dynamic state setting commands for any state not@@ -747,6 +747,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawClusterHUAWEI-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawClusterHUAWEI-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@@ -1347,16 +1355,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterHUAWEI-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -1837,22 +1835,36 @@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawClusterHUAWEI-None-08644# If a shader object is bound --     to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -1954,42 +1966,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawClusterHUAWEI-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawClusterHUAWEI-colorAttachmentCount-09362# If the@@ -2397,9 +2409,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawClusterHUAWEI-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -2413,9 +2423,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawClusterHUAWEI-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -4264,10 +4272,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08601# For each push@@ -4276,11 +4284,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-maintenance4-08602# If the@@ -4291,20 +4298,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08115# If the descriptors@@ -4357,14 +4366,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -4408,6 +4409,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-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,@@ -5014,16 +5023,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -5505,22 +5504,36 @@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-None-08644# If a shader object --     is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -5623,42 +5636,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-colorAttachmentCount-09362# If@@ -6067,9 +6080,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -6083,9 +6094,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdDrawClusterIndirectHUAWEI-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -7891,62 +7900,127 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>, -- 'Vulkan.Core10.FundamentalTypes.Bool32', -- 'Vulkan.Core10.Enums.StructureType.StructureType'-data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI-  { -- | #features-clustercullingShader# @clustercullingShader@ specifies whether+data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI (es :: [Type]) = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+  { -- | @pNext@ is @NULL@ or a pointer to a structure extending this structure.+    next :: Chain es+  , -- | #features-clustercullingShader# @clustercullingShader@ specifies whether     -- cluster culling shader is supported.     clustercullingShader :: Bool   , -- | #features-multiviewClusterCullingShader# @multiviewClusterCullingShader@     -- specifies whether multiview is supported.     multiviewClusterCullingShader :: Bool   }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI (es :: [Type]))+#endif+deriving instance Show (Chain es) => Show (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)++instance Extensible PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+  extensibleTypeName = "PhysicalDeviceClusterCullingShaderFeaturesHUAWEI"+  setNext PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} next' = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{next = next', ..}+  getNext PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} = next+  extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceClusterCullingShaderFeaturesHUAWEI e => b) -> Maybe b+  extends _ f+    | Just Refl <- eqT @e @PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = Just f+    | otherwise = Nothing++instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es+         , PokeChain es ) => ToCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)+    pNext'' <- fmap castPtr . ContT $ withChain (next)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext''+    lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clustercullingShader))+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (multiviewClusterCullingShader))+    lift $ f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)+    pNext' <- fmap castPtr . ContT $ withZeroChain @es+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) pNext'+    lift $ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    lift $ f++instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es+         , PeekChain es ) => FromCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) where+  peekCStruct p = do+    pNext <- peek @(Ptr ()) ((p `plusPtr` 8 :: Ptr (Ptr ())))+    next <- peekChain (castPtr pNext)+    clustercullingShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    multiviewClusterCullingShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+             next+             (bool32ToBool clustercullingShader)+             (bool32ToBool multiviewClusterCullingShader)++instance es ~ '[] => Zero (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) where+  zero = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+           ()+           zero+           zero+++-- | VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI - Structure+-- describing whether cluster culling shader support VRS+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_HUAWEI_cluster_culling_shader VK_HUAWEI_cluster_culling_shader>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI = PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI+  { -- | #features-clusterShadingRate# @clusterShadingRate@ specifies whether+    -- per-cluster shading rates is supported.+    clusterShadingRate :: Bool }   deriving (Typeable, Eq) #if defined(GENERIC_INSTANCES)-deriving instance Generic (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI)+deriving instance Generic (PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI) #endif-deriving instance Show PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+deriving instance Show PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI -instance ToCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+instance ToCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where   withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)-  pokeCStruct p PhysicalDeviceClusterCullingShaderFeaturesHUAWEI{..} f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)+  pokeCStruct p PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI)     poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)-    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clustercullingShader))-    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (multiviewClusterCullingShader))+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (clusterShadingRate))     f   cStructSize = 24   cStructAlignment = 8   pokeZeroCStruct p f = do-    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI)+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI)     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 PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+instance FromCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where   peekCStruct p = do-    clustercullingShader <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))-    multiviewClusterCullingShader <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))-    pure $ PhysicalDeviceClusterCullingShaderFeaturesHUAWEI-             (bool32ToBool clustercullingShader)-             (bool32ToBool multiviewClusterCullingShader)+    clusterShadingRate <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    pure $ PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI+             (bool32ToBool clusterShadingRate) -instance Storable PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where+instance Storable PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where   sizeOf ~_ = 24   alignment ~_ = 8   peek = peekCStruct   poke ptr poked = pokeCStruct ptr poked (pure ()) -instance Zero PhysicalDeviceClusterCullingShaderFeaturesHUAWEI where-  zero = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI-           zero+instance Zero PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI where+  zero = PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI            zero  -type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 2+type HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 3  -- No documentation found for TopLevel "VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION" pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION :: forall a . Integral a => a-pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 2+pattern HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION = 3   type HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME = "VK_HUAWEI_cluster_culling_shader"
src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot view
@@ -15,7 +15,7 @@ --     405 -- -- [__Revision__]---     2+--     3 -- -- [__Ratification Status__] --     Not ratified@@ -38,7 +38,7 @@ -- == Other Extension Metadata -- -- [__Last Modified Date__]---     2022-11-17+--     2023-08-16 -- -- [__Interactions and External Dependencies__] --@@ -80,10 +80,10 @@ -- pipeline. -- -- A set of new built-in output variables are used to express a visible--- cluster. In addition, a new built-in function is used to emit these--- variables from CCS to the IA stage. The IA stage can use these variables--- to fetches vertices of a visible cluster and drive vertex shaders to--- shading these vertices.+-- cluster, including per-cluster shading rate. In addition, a new built-in+-- function is used to emit these variables from CCS to the IA stage. The+-- IA stage can use these variables to fetches vertices of a visible+-- cluster and drive vertex shaders to shading these vertices. -- -- Note that CCS do not work with geometry or tessellation shaders, but -- both IA and vertex shaders are preserved. Vertex shaders are still used@@ -99,6 +99,10 @@ -- -- == New Structures --+-- -   Extending 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI':+--+--     -   'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI'+-- -- -   Extending --     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', --     'Vulkan.Core10.Device.DeviceCreateInfo':@@ -137,6 +141,8 @@ -- --     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI' --+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI'+-- -- == New Built-In Variables -- -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-indexcounthuawei IndexCountHUAWEI>@@ -155,6 +161,8 @@ -- -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clusteridhuawei ClusterIDHUAWEI> --+-- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#interfaces-builtin-variables-clustershadingratehuawei ClusterShadingRateHUAWEI>+-- -- == New SPIR-V Capability -- -- -   <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#spirvenv-capabilities-table-ClusterCullingShadingHUAWEI ClusterCullingShadingHUAWEI>@@ -176,13 +184,8 @@ -- > // - warpsize = 32 -- > layout(local_size_x=GPU_GROUP_SIZE, local_size_y=1, local_size_z=1) in; -- >--- >--- > #define GPU_CLUSTER_DESCRIPTOR_BINDING      0--- > #define GPU_DRAW_BUFFER_BINDING             1--- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     2--- >--- > const float pi_half = 1.570795;--- > uint instance_id;+-- > #define GPU_DRAW_BUFFER_BINDING             0+-- > #define GPU_INSTANCE_DESCRIPTOR_BINDING     1 -- > -- > struct BoundingSphere -- > {@@ -190,19 +193,6 @@ -- >   float radius; -- > }; -- >--- > struct BoundingCone--- > {--- >   vec3 normal;--- >   float angle;--- > };--- >--- > struct ClusterDescriptor--- > {--- >   BoundingSphere sphere;--- >   BoundingCone cone;--- >   uint instance_idx;--- > };--- > -- > struct InstanceData -- > { -- >   mat4 mvp_matrix;                      // mvp matrix.@@ -238,15 +228,9 @@ -- >   int  gl_VertexOffsetHUAWEI; -- >   uint gl_FirstInstanceHUAWEI; -- >   uint gl_ClusterIDHUAWEI;--- > };--- >--- >--- > layout(binding = GPU_CLUSTER_DESCRIPTOR_BINDING, std430) readonly buffer cluster_descriptor_ssbo--- > {--- >         ClusterDescriptor cluster_descriptors[];+-- >   uint gl_ClusterShadingRateHUAWEI; -- > }; -- >--- > -- > layout(binding = GPU_DRAW_BUFFER_BINDING, std430) buffer draw_indirect_ssbo -- > { -- >         DrawElementsCommand draw_commands[];@@ -258,13 +242,13 @@ -- > }; -- > -- >--- > bool isFrontFaceVisible( vec3 sphere_center, float sphere_radius, vec3 cone_normal, float cone_angle )+-- > float Distance(uint instance_id) -- > {--- >   vec3 sphere_center_dir = normalize(sphere_center ---- >                            instance_descriptors[instance_id].instance_data.view_origin);+-- >     vec3 v = normalize(instance_descriptor[instance_id].sphere.center -+-- >                      instance_descriptor[instance_id].instance_data.view_origin);+-- >     float dist = sqrt(dot(v,v)); -- >--- >   float sin_cone_angle = sin(min(cone_angle, pi_half));--- >   return dot(cone_normal, sphere_center_dir) < sin_cone_angle;+-- >     return dist; -- > } -- > -- > bool isSphereOutsideFrustum( vec3 sphere_center, float sphere_radius )@@ -284,38 +268,40 @@ -- > -- > void main() -- > {--- >     uint cluster_id = gl_GlobalInvocationID.x;--- >     ClusterDescriptor desc = cluster_descriptors[cluster_id];--- > -- >     // get instance description--- >     instance_id = desc.instance_idx;+-- >     instance_id = gl_GlobalInvocationID.x; -- >     InstanceDescriptor inst_desc = instance_descriptors[instance_id]; -- > -- >     //instance based culling--- >     bool instance_render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius);+-- >     bool render = !isSphereOutsideFrustum(inst_desc.sphere.center, inst_desc.sphere.radius); -- >--- >     if( instance_render)+-- >     if (render) -- >     {--- >         // cluster based culling--- >         bool render = (!isSphereOutsideFrustum(desc.sphere.center,--- >         desc.sphere.radius) && isFrontFaceVisible(desc.sphere.center, desc.sphere.radius, desc.cone.norm--- >         al, desc.cone.angle));+-- >         // calculate distance+-- >         float distance = Distance(instance_id); -- >--- >         if (render)--- >         {--- >             // this cluster passed coarse-level culling, update built-in output variable.--- >             // in case of indexed mode:--- >             gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;--- >             gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;--- >             gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;--- >             gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;--- >             gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;--- >             gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;+-- >         // update shading rate built-in variable+-- >         if(distance > 0.7)+-- >             gl_ClusterShadingRateHUAWEI =+-- >                 gl_ShadingRateFlag4VerticalPixelsEXT | gl_ShadingRateFlag4HorizontalPixelsEXT;+-- >         else if(distance > 0.3)+-- >             gl_ClusterShadingRateHUAWEI =+-- >                 gl_ShadingRateFlag2VerticalPixelsEXT | gl_ShadingRateFlag2HorizontalPixelsEXT;+-- >         else+-- >             gl_ClusterShadingRateHUAWEI = 0; -- >--- >             // emit built-in output variables as a drawing command to subsequent--- >             // rendering pipeline.--- >             dispatchClusterHUAWEI();--- >         }+-- >         // this is a visible cluster, update built-in output variable.+-- >         // in case of indexed mode:+-- >         gl_IndexCountHUAWEI     = draw_commands[cluster_id].indexcount;+-- >         gl_InstanceCountHUAWEI  = draw_commands[cluster_id].instanceCount;+-- >         gl_FirstIndexHUAWEI     = draw_commands[cluster_id].firstIndex;+-- >         gl_VertexOffsetHUAWEI   = draw_commands[cluster_id].vertexoffset;+-- >         gl_FirstInstanceHUAWEI  = draw_commands[cluster_id].firstInstance;+-- >         gl_ClusterIDHUAWEI      = draw_commands[cluster_id].cluster_id;+-- >+-- >         // emit built-in output variables as a drawing command to subsequent+-- >         // rendering pipeline.+-- >         dispatchClusterHUAWEI(); -- >     } -- > } --@@ -357,10 +343,15 @@ -- --     -   Grammar edits. --+-- -   Revision 3, 2023-08-21 (YuChang Wang)+--+--     -   Add per-cluster shading rate.+-- -- == See Also -- -- 'PhysicalDeviceClusterCullingShaderFeaturesHUAWEI', -- 'PhysicalDeviceClusterCullingShaderPropertiesHUAWEI',+-- 'PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI', -- 'cmdDrawClusterHUAWEI', 'cmdDrawClusterIndirectHUAWEI' -- -- == Document Notes@@ -372,18 +363,25 @@ -- the generator scripts, not directly. module Vulkan.Extensions.VK_HUAWEI_cluster_culling_shader  ( PhysicalDeviceClusterCullingShaderFeaturesHUAWEI                                                            , PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+                                                           , PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI                                                            ) where  import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type)--data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+import {-# SOURCE #-} Vulkan.CStruct.Extends (Chain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (Extendss)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PeekChain)+import {-# SOURCE #-} Vulkan.CStruct.Extends (PokeChain)+type role PhysicalDeviceClusterCullingShaderFeaturesHUAWEI nominal+data PhysicalDeviceClusterCullingShaderFeaturesHUAWEI (es :: [Type]) -instance ToCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI-instance Show PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es+         , PokeChain es ) => ToCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)+instance Show (Chain es) => Show (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es) -instance FromCStruct PhysicalDeviceClusterCullingShaderFeaturesHUAWEI+instance ( Extendss PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es+         , PeekChain es ) => FromCStruct (PhysicalDeviceClusterCullingShaderFeaturesHUAWEI es)   data PhysicalDeviceClusterCullingShaderPropertiesHUAWEI@@ -392,4 +390,12 @@ instance Show PhysicalDeviceClusterCullingShaderPropertiesHUAWEI  instance FromCStruct PhysicalDeviceClusterCullingShaderPropertiesHUAWEI+++data PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI++instance ToCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI+instance Show PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI++instance FromCStruct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI 
src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs view
@@ -663,10 +663,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08601# For each push constant@@ -675,11 +675,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-maintenance4-08602# If the@@ -690,20 +689,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08115# If the descriptors used@@ -756,14 +757,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdSubpassShadingHUAWEI-None-08608# If a pipeline is bound --     to the pipeline bind point used by this command, there /must/ not --     have been any calls to dynamic state setting commands for any state@@ -806,6 +799,14 @@ --     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-vkCmdSubpassShadingHUAWEI-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command -- -- -   #VUID-vkCmdSubpassShadingHUAWEI-uniformBuffers-06935# If any stage --     of the 'Vulkan.Core10.Handles.Pipeline' object bound to the pipeline
src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs view
@@ -2368,7 +2368,7 @@ --     @queryType@ /must/ be --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR', --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR',---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR', --     or --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' --@@ -2514,7 +2514,7 @@ --     @queryType@ /must/ be --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR', --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR',---     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR'+--     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR', --     or --     'Vulkan.Core10.Enums.QueryType.QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR' --
+ src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs view
@@ -0,0 +1,561 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_calibrated_timestamps - device extension+--+-- == VK_KHR_calibrated_timestamps+--+-- [__Name String__]+--     @VK_KHR_calibrated_timestamps@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     544+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>+--+-- [__Contact__]+--+--     -   Daniel Rakos+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_calibrated_timestamps] @aqnuep%0A*Here describe the issue or question you have about the VK_KHR_calibrated_timestamps extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-07-12+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Matthaeus G. Chajdas, AMD+--+--     -   Alan Harrison, AMD+--+--     -   Derrick Owens, AMD+--+--     -   Daniel Rakos, RasterGrid+--+--     -   Faith Ekstrand, Intel+--+--     -   Keith Packard, Valve+--+-- == Description+--+-- This extension provides an interface to query calibrated timestamps+-- obtained quasi simultaneously from two time domains.+--+-- == New Commands+--+-- -   'getCalibratedTimestampsKHR'+--+-- -   'getPhysicalDeviceCalibrateableTimeDomainsKHR'+--+-- == New Structures+--+-- -   'CalibratedTimestampInfoKHR'+--+-- == New Enums+--+-- -   'TimeDomainKHR'+--+-- == New Enum Constants+--+-- -   'KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME'+--+-- -   'KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR'+--+-- == Version History+--+-- -   Revision 1, 2023-07-12 (Daniel Rakos)+--+--     -   Initial draft.+--+-- == See Also+--+-- 'CalibratedTimestampInfoKHR', 'TimeDomainKHR',+-- 'getCalibratedTimestampsKHR',+-- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_calibrated_timestamps  ( getPhysicalDeviceCalibrateableTimeDomainsKHR+                                                       , getCalibratedTimestampsKHR+                                                       , CalibratedTimestampInfoKHR(..)+                                                       , TimeDomainKHR( TIME_DOMAIN_DEVICE_KHR+                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_KHR+                                                                      , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR+                                                                      , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR+                                                                      , ..+                                                                      )+                                                       , KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION+                                                       , pattern KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION+                                                       , KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME+                                                       , pattern KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME+                                                       ) where++import Vulkan.Internal.Utils (enumReadPrec)+import Vulkan.Internal.Utils (enumShowsPrec)+import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import GHC.Show (showsPrec)+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.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Data.Int (Int32)+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import GHC.Read (Read(readPrec))+import GHC.Show (Show(showsPrec))+import Data.Word (Word32)+import Data.Word (Word64)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Core10.Handles (Device(Device))+import Vulkan.Dynamic (DeviceCmds(pVkGetCalibratedTimestampsKHR))+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Dynamic (InstanceCmds(pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR))+import Vulkan.Core10.Handles (PhysicalDevice)+import Vulkan.Core10.Handles (PhysicalDevice(..))+import Vulkan.Core10.Handles (PhysicalDevice(PhysicalDevice))+import Vulkan.Core10.Handles (PhysicalDevice_T)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetPhysicalDeviceCalibrateableTimeDomainsKHR+  :: FunPtr (Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainKHR -> IO Result) -> Ptr PhysicalDevice_T -> Ptr Word32 -> Ptr TimeDomainKHR -> IO Result++-- | vkGetPhysicalDeviceCalibrateableTimeDomainsKHR - Query calibrateable+-- time domains+--+-- = Description+--+-- If @pTimeDomains@ is @NULL@, then the number of calibrateable time+-- domains supported for the given @physicalDevice@ is returned in+-- @pTimeDomainCount@. Otherwise, @pTimeDomainCount@ /must/ point to a+-- variable set by the user to the number of elements in the @pTimeDomains@+-- array, and on return the variable is overwritten with the number of+-- values actually written to @pTimeDomains@. If the value of+-- @pTimeDomainCount@ is less than the number of calibrateable time domains+-- supported, at most @pTimeDomainCount@ values will be written to+-- @pTimeDomains@, and 'Vulkan.Core10.Enums.Result.INCOMPLETE' will be+-- returned instead of 'Vulkan.Core10.Enums.Result.SUCCESS', to indicate+-- that not all the available time domains were returned.+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-physicalDevice-parameter#+--     @physicalDevice@ /must/ be a valid+--     'Vulkan.Core10.Handles.PhysicalDevice' handle+--+-- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomainCount-parameter#+--     @pTimeDomainCount@ /must/ be a valid pointer to a @uint32_t@ value+--+-- -   #VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsKHR-pTimeDomains-parameter#+--     If the value referenced by @pTimeDomainCount@ is not @0@, and+--     @pTimeDomains@ is not @NULL@, @pTimeDomains@ /must/ be a valid+--     pointer to an array of @pTimeDomainCount@ 'TimeDomainKHR' values+--+-- == 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'+--+--     -   '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_calibrated_timestamps VK_EXT_calibrated_timestamps>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,+-- 'Vulkan.Core10.Handles.PhysicalDevice', 'TimeDomainKHR'+getPhysicalDeviceCalibrateableTimeDomainsKHR :: forall io+                                              . (MonadIO io)+                                             => -- | @physicalDevice@ is the physical device from which to query the set of+                                                -- calibrateable time domains.+                                                PhysicalDevice+                                             -> io (Result, ("timeDomains" ::: Vector TimeDomainKHR))+getPhysicalDeviceCalibrateableTimeDomainsKHR physicalDevice = liftIO . evalContT $ do+  let vkGetPhysicalDeviceCalibrateableTimeDomainsKHRPtr = pVkGetPhysicalDeviceCalibrateableTimeDomainsKHR (case physicalDevice of PhysicalDevice{instanceCmds} -> instanceCmds)+  lift $ unless (vkGetPhysicalDeviceCalibrateableTimeDomainsKHRPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetPhysicalDeviceCalibrateableTimeDomainsKHR is null" Nothing Nothing+  let vkGetPhysicalDeviceCalibrateableTimeDomainsKHR' = mkVkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHRPtr+  let physicalDevice' = physicalDeviceHandle (physicalDevice)+  pPTimeDomainCount <- ContT $ bracket (callocBytes @Word32 4) free+  r <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" (vkGetPhysicalDeviceCalibrateableTimeDomainsKHR'+                                                                                   physicalDevice'+                                                                                   (pPTimeDomainCount)+                                                                                   (nullPtr))+  lift $ when (r < SUCCESS) (throwIO (VulkanException r))+  pTimeDomainCount <- lift $ peek @Word32 pPTimeDomainCount+  pPTimeDomains <- ContT $ bracket (callocBytes @TimeDomainKHR ((fromIntegral (pTimeDomainCount)) * 4)) free+  r' <- lift $ traceAroundEvent "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" (vkGetPhysicalDeviceCalibrateableTimeDomainsKHR'+                                                                                    physicalDevice'+                                                                                    (pPTimeDomainCount)+                                                                                    (pPTimeDomains))+  lift $ when (r' < SUCCESS) (throwIO (VulkanException r'))+  pTimeDomainCount' <- lift $ peek @Word32 pPTimeDomainCount+  pTimeDomains' <- lift $ generateM (fromIntegral (pTimeDomainCount')) (\i -> peek @TimeDomainKHR ((pPTimeDomains `advancePtrBytes` (4 * (i)) :: Ptr TimeDomainKHR)))+  pure $ ((r'), pTimeDomains')+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+  unsafe+#endif+  "dynamic" mkVkGetCalibratedTimestampsKHR+  :: FunPtr (Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoKHR -> Ptr Word64 -> Ptr Word64 -> IO Result) -> Ptr Device_T -> Word32 -> Ptr CalibratedTimestampInfoKHR -> Ptr Word64 -> Ptr Word64 -> IO Result++-- | vkGetCalibratedTimestampsKHR - Query calibrated timestamps+--+-- = Description+--+-- Note+--+-- The maximum deviation /may/ vary between calls to+-- 'getCalibratedTimestampsKHR' even for the same set of time domains due+-- to implementation and platform specific reasons. It is the application’s+-- responsibility to assess whether the returned maximum deviation makes+-- the timestamp values suitable for any particular purpose and /can/+-- choose to re-issue the timestamp calibration call pursuing a lower+-- deviation value.+--+-- Calibrated timestamp values /can/ be extrapolated to estimate future+-- coinciding timestamp values, however, depending on the nature of the+-- time domains and other properties of the platform extrapolating values+-- over a sufficiently long period of time /may/ no longer be accurate+-- enough to fit any particular purpose, so applications are expected to+-- re-calibrate the timestamps on a regular basis.+--+-- == Valid Usage+--+-- -   #VUID-vkGetCalibratedTimestampsEXT-timeDomain-09246# The+--     @timeDomain@ value of each+--     'Vulkan.Extensions.VK_EXT_calibrated_timestamps.CalibratedTimestampInfoEXT'+--     in @pTimestampInfos@ /must/ be unique+--+-- == Valid Usage (Implicit)+--+-- -   #VUID-vkGetCalibratedTimestampsKHR-device-parameter# @device@ /must/+--     be a valid 'Vulkan.Core10.Handles.Device' handle+--+-- -   #VUID-vkGetCalibratedTimestampsKHR-pTimestampInfos-parameter#+--     @pTimestampInfos@ /must/ be a valid pointer to an array of+--     @timestampCount@ valid 'CalibratedTimestampInfoKHR' structures+--+-- -   #VUID-vkGetCalibratedTimestampsKHR-pTimestamps-parameter#+--     @pTimestamps@ /must/ be a valid pointer to an array of+--     @timestampCount@ @uint64_t@ values+--+-- -   #VUID-vkGetCalibratedTimestampsKHR-pMaxDeviation-parameter#+--     @pMaxDeviation@ /must/ be a valid pointer to a @uint64_t@ value+--+-- -   #VUID-vkGetCalibratedTimestampsKHR-timestampCount-arraylength#+--     @timestampCount@ /must/ be greater than @0@+--+-- == 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_calibrated_timestamps VK_EXT_calibrated_timestamps>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,+-- 'CalibratedTimestampInfoKHR', 'Vulkan.Core10.Handles.Device'+getCalibratedTimestampsKHR :: forall io+                            . (MonadIO io)+                           => -- | @device@ is the logical device used to perform the query.+                              Device+                           -> -- | @pTimestampInfos@ is a pointer to an array of @timestampCount@+                              -- 'CalibratedTimestampInfoKHR' structures, describing the time domains the+                              -- calibrated timestamps should be captured from.+                              ("timestampInfos" ::: Vector CalibratedTimestampInfoKHR)+                           -> io (("timestamps" ::: Vector Word64), ("maxDeviation" ::: Word64))+getCalibratedTimestampsKHR device timestampInfos = liftIO . evalContT $ do+  let vkGetCalibratedTimestampsKHRPtr = pVkGetCalibratedTimestampsKHR (case device of Device{deviceCmds} -> deviceCmds)+  lift $ unless (vkGetCalibratedTimestampsKHRPtr /= nullFunPtr) $+    throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetCalibratedTimestampsKHR is null" Nothing Nothing+  let vkGetCalibratedTimestampsKHR' = mkVkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHRPtr+  pPTimestampInfos <- ContT $ allocaBytes @CalibratedTimestampInfoKHR ((Data.Vector.length (timestampInfos)) * 24)+  lift $ Data.Vector.imapM_ (\i e -> poke (pPTimestampInfos `plusPtr` (24 * (i)) :: Ptr CalibratedTimestampInfoKHR) (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 "vkGetCalibratedTimestampsKHR" (vkGetCalibratedTimestampsKHR'+                                                                 (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+  pure $ (pTimestamps, pMaxDeviation)+++-- | VkCalibratedTimestampInfoKHR - Structure specifying the input parameters+-- of a calibrated timestamp query+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'TimeDomainKHR',+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getCalibratedTimestampsEXT',+-- 'getCalibratedTimestampsKHR'+data CalibratedTimestampInfoKHR = CalibratedTimestampInfoKHR+  { -- | @timeDomain@ is a 'TimeDomainKHR' value specifying the time domain from+    -- which the calibrated timestamp value should be returned.+    --+    -- #VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354# @timeDomain@ /must/+    -- be one of the 'TimeDomainKHR' values returned by+    -- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'+    --+    -- #VUID-VkCalibratedTimestampInfoKHR-timeDomain-parameter# @timeDomain@+    -- /must/ be a valid 'TimeDomainKHR' value+    timeDomain :: TimeDomainKHR }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CalibratedTimestampInfoKHR)+#endif+deriving instance Show CalibratedTimestampInfoKHR++instance ToCStruct CalibratedTimestampInfoKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p CalibratedTimestampInfoKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr TimeDomainKHR)) (timeDomain)+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr TimeDomainKHR)) (zero)+    f++instance FromCStruct CalibratedTimestampInfoKHR where+  peekCStruct p = do+    timeDomain <- peek @TimeDomainKHR ((p `plusPtr` 16 :: Ptr TimeDomainKHR))+    pure $ CalibratedTimestampInfoKHR+             timeDomain++instance Storable CalibratedTimestampInfoKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero CalibratedTimestampInfoKHR where+  zero = CalibratedTimestampInfoKHR+           zero+++-- | VkTimeDomainKHR - Supported time domains+--+-- = Description+--+-- Note+--+-- An implementation supporting @VK_KHR_calibrated_timestamps@ or+-- @VK_EXT_calibrated_timestamps@ will use the same time domain for all its+-- 'Vulkan.Core10.Handles.Queue' so that timestamp values reported for+-- 'TIME_DOMAIN_DEVICE_KHR' can be matched to any timestamp captured+-- through 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+-- .+--+-- > struct timespec tv;+-- > clock_gettime(CLOCK_MONOTONIC, &tv);+-- > return tv.tv_nsec + tv.tv_sec*1000000000ull;+--+-- > struct timespec tv;+-- > clock_gettime(CLOCK_MONOTONIC_RAW, &tv);+-- > return tv.tv_nsec + tv.tv_sec*1000000000ull;+--+-- > LARGE_INTEGER counter;+-- > QueryPerformanceCounter(&counter);+-- > return counter.QuadPart;+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_calibrated_timestamps VK_EXT_calibrated_timestamps>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps VK_KHR_calibrated_timestamps>,+-- 'CalibratedTimestampInfoKHR',+-- 'Vulkan.Extensions.VK_EXT_calibrated_timestamps.getPhysicalDeviceCalibrateableTimeDomainsEXT',+-- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'+newtype TimeDomainKHR = TimeDomainKHR Int32+  deriving newtype (Eq, Ord, Storable, Zero)++-- | 'TIME_DOMAIN_DEVICE_KHR' specifies the device time domain. Timestamp+-- values in this time domain use the same units and are comparable with+-- device timestamp values captured using+-- 'Vulkan.Core10.CommandBufferBuilding.cmdWriteTimestamp' or+-- 'Vulkan.Core13.Promoted_From_VK_KHR_synchronization2.cmdWriteTimestamp2'+-- 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_KHR = TimeDomainKHR 0++-- | 'TIME_DOMAIN_CLOCK_MONOTONIC_KHR' 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_KHR = TimeDomainKHR 1++-- | 'TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR' 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_KHR = TimeDomainKHR 2++-- | 'TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR' 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_KHR = TimeDomainKHR 3++{-# COMPLETE+  TIME_DOMAIN_DEVICE_KHR+  , TIME_DOMAIN_CLOCK_MONOTONIC_KHR+  , TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR+  , TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR ::+    TimeDomainKHR+  #-}++conNameTimeDomainKHR :: String+conNameTimeDomainKHR = "TimeDomainKHR"++enumPrefixTimeDomainKHR :: String+enumPrefixTimeDomainKHR = "TIME_DOMAIN_"++showTableTimeDomainKHR :: [(TimeDomainKHR, String)]+showTableTimeDomainKHR =+  [ (TIME_DOMAIN_DEVICE_KHR, "DEVICE_KHR")+  ,+    ( TIME_DOMAIN_CLOCK_MONOTONIC_KHR+    , "CLOCK_MONOTONIC_KHR"+    )+  ,+    ( TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR+    , "CLOCK_MONOTONIC_RAW_KHR"+    )+  ,+    ( TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR+    , "QUERY_PERFORMANCE_COUNTER_KHR"+    )+  ]++instance Show TimeDomainKHR where+  showsPrec =+    enumShowsPrec+      enumPrefixTimeDomainKHR+      showTableTimeDomainKHR+      conNameTimeDomainKHR+      (\(TimeDomainKHR x) -> x)+      (showsPrec 11)++instance Read TimeDomainKHR where+  readPrec =+    enumReadPrec+      enumPrefixTimeDomainKHR+      showTableTimeDomainKHR+      conNameTimeDomainKHR+      TimeDomainKHR++type KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION"+pattern KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION = 1+++type KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_KHR_calibrated_timestamps"++-- No documentation found for TopLevel "VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME"+pattern KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME = "VK_KHR_calibrated_timestamps"+
+ src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot view
@@ -0,0 +1,123 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_calibrated_timestamps - device extension+--+-- == VK_KHR_calibrated_timestamps+--+-- [__Name String__]+--     @VK_KHR_calibrated_timestamps@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     544+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>+--+-- [__Contact__]+--+--     -   Daniel Rakos+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_calibrated_timestamps] @aqnuep%0A*Here describe the issue or question you have about the VK_KHR_calibrated_timestamps extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_EXT_calibrated_timestamps.adoc VK_EXT_calibrated_timestamps>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-07-12+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Matthaeus G. Chajdas, AMD+--+--     -   Alan Harrison, AMD+--+--     -   Derrick Owens, AMD+--+--     -   Daniel Rakos, RasterGrid+--+--     -   Faith Ekstrand, Intel+--+--     -   Keith Packard, Valve+--+-- == Description+--+-- This extension provides an interface to query calibrated timestamps+-- obtained quasi simultaneously from two time domains.+--+-- == New Commands+--+-- -   'getCalibratedTimestampsKHR'+--+-- -   'getPhysicalDeviceCalibrateableTimeDomainsKHR'+--+-- == New Structures+--+-- -   'CalibratedTimestampInfoKHR'+--+-- == New Enums+--+-- -   'TimeDomainKHR'+--+-- == New Enum Constants+--+-- -   'KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME'+--+-- -   'KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR'+--+-- == Version History+--+-- -   Revision 1, 2023-07-12 (Daniel Rakos)+--+--     -   Initial draft.+--+-- == See Also+--+-- 'CalibratedTimestampInfoKHR', 'TimeDomainKHR',+-- 'getCalibratedTimestampsKHR',+-- 'getPhysicalDeviceCalibrateableTimeDomainsKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_calibrated_timestamps Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_calibrated_timestamps  ( CalibratedTimestampInfoKHR+                                                       , TimeDomainKHR+                                                       ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data CalibratedTimestampInfoKHR++instance ToCStruct CalibratedTimestampInfoKHR+instance Show CalibratedTimestampInfoKHR++instance FromCStruct CalibratedTimestampInfoKHR+++data TimeDomainKHR+
src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs view
@@ -57,7 +57,7 @@ -- -- == Description ----- This extension is based off the @VK_AMD_draw_indirect_count@ extension.+-- This extension is based on the @VK_AMD_draw_indirect_count@ extension. -- This extension allows an application to source the number of draws for -- indirect drawing calls from a buffer. --@@ -92,7 +92,7 @@ -- -- -   Revision 1, 2017-08-25 (Piers Daniell) -----     -   Initial draft based off VK_AMD_draw_indirect_count+--     -   Initial draft based on VK_AMD_draw_indirect_count -- -- == See Also --
src/Vulkan/Extensions/VK_KHR_external_memory.hs view
@@ -305,7 +305,7 @@ -- instances and APIs other than that required to share the data contained -- in the memory objects explicitly shared. As specific examples, data from -- previously freed memory objects that used the same underlying physical--- memory, and data from memory obects using adjacent physical memory must+-- memory, and data from memory objects using adjacent physical memory must -- not be visible to applications importing an exported memory object. -- -- 9) Must implementations validate external handles the application
src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs view
@@ -539,8 +539,8 @@ --     refers to a handle type with copy payload transference semantics, --     @semaphore@ /must/ have an associated semaphore signal operation --     that has been submitted for execution and any semaphore signal---     operations on which it depends (if any) /must/ have also been---     submitted for execution+--     operations on which it depends /must/ have also been submitted for+--     execution -- -- == Valid Usage (Implicit) --
src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs view
@@ -272,8 +272,8 @@ -- -- -   #VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-06522# --     If @pSurfaceInfo->surface@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by---     @physicalDevice@, as reported by+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pSurfaceInfo->surface@+--     /must/ be supported by @physicalDevice@, as reported by --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR' --     or an equivalent platform-specific mechanism --@@ -413,8 +413,8 @@ -- -- -   #VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-06522# If --     @pSurfaceInfo->surface@ is not---     'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/ be supported by---     @physicalDevice@, as reported by+--     'Vulkan.Core10.APIConstants.NULL_HANDLE', @pSurfaceInfo->surface@+--     /must/ be supported by @physicalDevice@, as reported by --     'Vulkan.Extensions.VK_KHR_surface.getPhysicalDeviceSurfaceSupportKHR' --     or an equivalent platform-specific mechanism --
src/Vulkan/Extensions/VK_KHR_maintenance5.hs view
@@ -974,12 +974,12 @@ --     @arrayLayers@ specified in @image@ -- -- -   #VUID-vkGetImageSubresourceLayout2KHR-format-08886# If @format@ of---     the @image@ is a color format, @tiling@ of the @image@ is---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not---     have a+--     the @image@ is a color format that is not a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     the @aspectMask@ member of @pSubresource@ /must/ be+--     and @tiling@ of the @image@ is+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', the+--     @aspectMask@ member of @pSubresource@ /must/ be --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- -   #VUID-vkGetImageSubresourceLayout2KHR-format-04462# If @format@ of@@ -1768,12 +1768,12 @@ --     @arrayLayers@ specified in @pCreateInfo@ -- -- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-08886# If @format@ of---     the @pCreateInfo@ is a color format, @tiling@ of the @pCreateInfo@---     is 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or---     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', and does not---     have a+--     the @image@ is a color format that is not a --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>,---     the @aspectMask@ member of @pSubresource@ /must/ be+--     and @tiling@ of the @pCreateInfo@ is+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' or+--     'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_OPTIMAL', the+--     @aspectMask@ member of @pSubresource@ /must/ be --     'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT' -- -- -   #VUID-VkDeviceImageSubresourceInfoKHR-format-04462# If @format@ of@@ -1962,11 +1962,13 @@ -- -- -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR' specifies --     that triangle primitives will be skipped during traversal using---     @OpTraceRayKHR@.+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>+--     instructions. -- -- -   'PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR' specifies that --     AABB primitives will be skipped during traversal using---     @OpTraceRayKHR@.+--     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#glossary-pipeline-trace-ray pipeline trace ray>+--     instructions. -- -- -   'PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR' --     specifies that the shader group handles /can/ be saved and reused on
src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs view
@@ -434,10 +434,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08601# For each push constant@@ -446,11 +446,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-08602# If the@@ -461,20 +460,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08115# If the descriptors used@@ -527,14 +528,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08608# If a pipeline is bound --     to the pipeline bind point used by this command, there /must/ not --     have been any calls to dynamic state setting commands for any state@@ -578,6 +571,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-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@@ -817,6 +818,14 @@ -- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-03429# Any shader group handle --     referenced by this call /must/ have been queried from the currently --     bound ray tracing pipeline+--+-- -   #VUID-vkCmdTraceRaysIndirect2KHR-None-09458# If the bound ray+--     tracing pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR'+--     /must/ have been called in the current command buffer prior to this+--     trace command -- -- -   #VUID-vkCmdTraceRaysIndirect2KHR-maxPipelineRayRecursionDepth-03679# --     This command /must/ not cause a shader call instruction to be
src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs view
@@ -1050,10 +1050,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysKHR-None-08601# For each push constant that is@@ -1062,11 +1062,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysKHR-maintenance4-08602# If the@@ -1077,20 +1076,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysKHR-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdTraceRaysKHR-None-08115# If the descriptors used by the@@ -1141,14 +1142,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdTraceRaysKHR-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdTraceRaysKHR-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -1192,6 +1185,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdTraceRaysKHR-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdTraceRaysKHR-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@@ -1430,6 +1431,13 @@ --     referenced by this call /must/ have been queried from the currently --     bound ray tracing pipeline --+-- -   #VUID-vkCmdTraceRaysKHR-None-09458# If the bound ray tracing+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--     dynamic state enabled then 'cmdSetRayTracingPipelineStackSizeKHR'+--     /must/ have been called in the current command buffer prior to this+--     trace command+-- -- -   #VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679# This --     command /must/ not cause a shader call instruction to be executed --     from a shader invocation with a@@ -1986,6 +1994,9 @@ -- 'PhysicalDeviceRayTracingPipelineFeaturesKHR'::@rayTracingPipelineShaderGroupHandleCaptureReplay@ -- is enabled. --+-- Pipelines are created and returned as described for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>.+-- -- == Valid Usage -- -- -   #VUID-vkCreateRayTracingPipelinesKHR-flags-03415# If the @flags@@@ -2347,10 +2358,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08601# For each push constant@@ -2359,11 +2370,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-maintenance4-08602# If the@@ -2374,20 +2384,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08115# If the descriptors used@@ -2440,14 +2452,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08608# If a pipeline is bound --     to the pipeline bind point used by this command, there /must/ not --     have been any calls to dynamic state setting commands for any state@@ -2491,6 +2495,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdTraceRaysIndirectKHR-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@@ -2730,6 +2742,13 @@ -- -   #VUID-vkCmdTraceRaysIndirectKHR-None-03429# Any shader group handle --     referenced by this call /must/ have been queried from the currently --     bound ray tracing pipeline+--+-- -   #VUID-vkCmdTraceRaysIndirectKHR-None-09458# If the bound ray tracing+--     pipeline state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--     dynamic state enabled then 'cmdSetRayTracingPipelineStackSizeKHR'+--     /must/ have been called in the current command buffer prior to this+--     trace command -- -- -   #VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679# --     This command /must/ not cause a shader call instruction to be
src/Vulkan/Extensions/VK_KHR_surface.hs view
@@ -807,8 +807,8 @@ --     /must/ be a valid 'Vulkan.Extensions.Handles.SurfaceKHR' handle -- -- -   #VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-06525# If---     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/---     be supported by @physicalDevice@, as reported by+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@+--     /must/ be supported by @physicalDevice@, as reported by --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent --     platform-specific mechanism --@@ -934,8 +934,8 @@ --     handle -- -- -   #VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-06525# If---     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', it /must/---     be supported by @physicalDevice@, as reported by+--     @surface@ is not 'Vulkan.Core10.APIConstants.NULL_HANDLE', @surface@+--     /must/ be supported by @physicalDevice@, as reported by --     'getPhysicalDeviceSurfaceSupportKHR' or an equivalent --     platform-specific mechanism --
src/Vulkan/Extensions/VK_KHR_swapchain.hs view
@@ -1960,8 +1960,7 @@ --     semaphore signal operation that has been submitted for execution and --     any --     <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-semaphores-signaling semaphore signal operations>---     on which it depends (if any) /must/ have also been submitted for---     execution+--     on which it depends /must/ have also been submitted for execution -- -- Any writes to memory backing the images referenced by the -- @pImageIndices@ and @pSwapchains@ members of @pPresentInfo@, that are
+ src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs view
@@ -0,0 +1,473 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_vertex_attribute_divisor - device extension+--+-- == VK_KHR_vertex_attribute_divisor+--+-- [__Name String__]+--     @VK_KHR_vertex_attribute_divisor@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     526+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_vertex_attribute_divisor] @syoussefi%0A*Here describe the issue or question you have about the VK_KHR_vertex_attribute_divisor extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_vertex_attribute_divisor.adoc VK_KHR_vertex_attribute_divisor>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-09-20+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Shahbaz Youssefi, Google+--+--     -   Contributors to @VK_EXT_vertex_attribute_divisor@+--+-- == Description+--+-- This extension is based on the @VK_EXT_vertex_attribute_divisor@+-- extension. The only difference is the new property+-- @supportsNonZeroFirstInstance@, which indicates support for non-zero+-- values in @firstInstance@. This allows the extension to be supported on+-- implementations that have traditionally only supported OpenGL ES.+--+-- == New Structures+--+-- -   'VertexInputBindingDivisorDescriptionKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceVertexAttributeDivisorFeaturesKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'+--+-- -   Extending+--     'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo':+--+--     -   'PipelineVertexInputDivisorStateCreateInfoKHR'+--+-- == New Enum Constants+--+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME'+--+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR'+--+-- == Version History+--+-- -   Revision 1, 2023-09-20 (Shahbaz Youssefi)+--+--     -   First Version, based on @VK_EXT_vertex_attribute_divisor@+--+-- == See Also+--+-- 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR',+-- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR',+-- 'PipelineVertexInputDivisorStateCreateInfoKHR',+-- 'VertexInputBindingDivisorDescriptionKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_vertex_attribute_divisor  ( VertexInputBindingDivisorDescriptionKHR(..)+                                                          , PipelineVertexInputDivisorStateCreateInfoKHR(..)+                                                          , PhysicalDeviceVertexAttributeDivisorPropertiesKHR(..)+                                                          , PhysicalDeviceVertexAttributeDivisorFeaturesKHR(..)+                                                          , KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION+                                                          , pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION+                                                          , KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME+                                                          , pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME+                                                          ) where++import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR))+-- | VkVertexInputBindingDivisorDescriptionKHR - Structure specifying a+-- divisor used in instanced rendering+--+-- = Description+--+-- If this structure is not used to define a divisor value for an+-- attribute, then the divisor has a logical default value of 1.+--+-- == Valid Usage+--+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-binding-01869#+--     @binding@ /must/ be less than+--     'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateZeroDivisor-02228#+--     If the @vertexAttributeInstanceRateZeroDivisor@ feature is not+--     enabled, @divisor@ /must/ not be @0@+--+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-vertexAttributeInstanceRateDivisor-02229#+--     If the @vertexAttributeInstanceRateDivisor@ feature is not enabled,+--     @divisor@ /must/ be @1@+--+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-divisor-01870#+--     @divisor@ /must/ be a value between @0@ and+--     'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@maxVertexAttribDivisor@,+--     inclusive+--+-- -   #VUID-VkVertexInputBindingDivisorDescriptionKHR-inputRate-01871#+--     'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@inputRate@+--     /must/ be of type+--     'Vulkan.Core10.Enums.VertexInputRate.VERTEX_INPUT_RATE_INSTANCE' for+--     this @binding@+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,+-- 'PipelineVertexInputDivisorStateCreateInfoKHR'+data VertexInputBindingDivisorDescriptionKHR = VertexInputBindingDivisorDescriptionKHR+  { -- | @binding@ is the binding number for which the divisor is specified.+    binding :: Word32+  , -- | @divisor@ is the number of successive instances that will use the same+    -- value of the vertex attribute when instanced rendering is enabled. For+    -- example, if the divisor is N, the same vertex attribute will be applied+    -- to N successive instances before moving on to the next vertex attribute.+    -- The maximum value of @divisor@ is implementation-dependent and can be+    -- queried using+    -- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'::@maxVertexAttribDivisor@.+    -- A value of @0@ /can/ be used for the divisor if the+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#features-vertexAttributeInstanceRateZeroDivisor vertexAttributeInstanceRateZeroDivisor>+    -- feature is enabled. In this case, the same vertex attribute will be+    -- applied to all instances.+    divisor :: Word32+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (VertexInputBindingDivisorDescriptionKHR)+#endif+deriving instance Show VertexInputBindingDivisorDescriptionKHR++instance ToCStruct VertexInputBindingDivisorDescriptionKHR where+  withCStruct x f = allocaBytes 8 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p VertexInputBindingDivisorDescriptionKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (binding)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (divisor)+    f+  cStructSize = 8+  cStructAlignment = 4+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 4 :: Ptr Word32)) (zero)+    f++instance FromCStruct VertexInputBindingDivisorDescriptionKHR where+  peekCStruct p = do+    binding <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+    divisor <- peek @Word32 ((p `plusPtr` 4 :: Ptr Word32))+    pure $ VertexInputBindingDivisorDescriptionKHR+             binding divisor++instance Storable VertexInputBindingDivisorDescriptionKHR where+  sizeOf ~_ = 8+  alignment ~_ = 4+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero VertexInputBindingDivisorDescriptionKHR where+  zero = VertexInputBindingDivisorDescriptionKHR+           zero+           zero+++-- | VkPipelineVertexInputDivisorStateCreateInfoKHR - Structure specifying+-- vertex attributes assignment during instanced rendering+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_EXT_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'VertexInputBindingDivisorDescriptionKHR'+data PipelineVertexInputDivisorStateCreateInfoKHR = PipelineVertexInputDivisorStateCreateInfoKHR+  { -- | @pVertexBindingDivisors@ is a pointer to an array of+    -- 'VertexInputBindingDivisorDescriptionKHR' structures specifying the+    -- divisor value for each binding.+    --+    -- #VUID-VkPipelineVertexInputDivisorStateCreateInfoKHR-pVertexBindingDivisors-parameter#+    -- @pVertexBindingDivisors@ /must/ be a valid pointer to an array of+    -- @vertexBindingDivisorCount@ 'VertexInputBindingDivisorDescriptionKHR'+    -- structures+    vertexBindingDivisors :: Vector VertexInputBindingDivisorDescriptionKHR }+  deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineVertexInputDivisorStateCreateInfoKHR)+#endif+deriving instance Show PipelineVertexInputDivisorStateCreateInfoKHR++instance ToCStruct PipelineVertexInputDivisorStateCreateInfoKHR where+  withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PipelineVertexInputDivisorStateCreateInfoKHR{..} f = evalContT $ do+    lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR)+    lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    lift $ poke ((p `plusPtr` 16 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (vertexBindingDivisors)) :: Word32))+    pPVertexBindingDivisors' <- ContT $ allocaBytes @VertexInputBindingDivisorDescriptionKHR ((Data.Vector.length (vertexBindingDivisors)) * 8)+    lift $ Data.Vector.imapM_ (\i e -> poke (pPVertexBindingDivisors' `plusPtr` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionKHR) (e)) (vertexBindingDivisors)+    lift $ poke ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionKHR))) (pPVertexBindingDivisors')+    lift $ f+  cStructSize = 32+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    f++instance FromCStruct PipelineVertexInputDivisorStateCreateInfoKHR where+  peekCStruct p = do+    vertexBindingDivisorCount <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    pVertexBindingDivisors <- peek @(Ptr VertexInputBindingDivisorDescriptionKHR) ((p `plusPtr` 24 :: Ptr (Ptr VertexInputBindingDivisorDescriptionKHR)))+    pVertexBindingDivisors' <- generateM (fromIntegral vertexBindingDivisorCount) (\i -> peekCStruct @VertexInputBindingDivisorDescriptionKHR ((pVertexBindingDivisors `advancePtrBytes` (8 * (i)) :: Ptr VertexInputBindingDivisorDescriptionKHR)))+    pure $ PipelineVertexInputDivisorStateCreateInfoKHR+             pVertexBindingDivisors'++instance Zero PipelineVertexInputDivisorStateCreateInfoKHR where+  zero = PipelineVertexInputDivisorStateCreateInfoKHR+           mempty+++-- | VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR - Structure+-- describing max value of vertex attribute divisor that can be supported+-- by an implementation+--+-- = Description+--+-- If the 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',+-- it is filled in with each corresponding implementation-dependent+-- property.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVertexAttributeDivisorPropertiesKHR = PhysicalDeviceVertexAttributeDivisorPropertiesKHR+  { -- | #limits-maxVertexAttribDivisor# @maxVertexAttribDivisor@ is the maximum+    -- value of the number of instances that will repeat the value of vertex+    -- attribute data when instanced rendering is enabled.+    maxVertexAttribDivisor :: Word32+  , -- | #limits-supportsNonZeroFirstInstance# @supportsNonZeroFirstInstance@+    -- specifies whether a non-zero value for the @firstInstance@ parameter of+    -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#drawing drawing commands>+    -- is supported when 'VertexInputBindingDivisorDescriptionKHR'::@divisor@+    -- is not @1@.+    supportsNonZeroFirstInstance :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVertexAttributeDivisorPropertiesKHR)+#endif+deriving instance Show PhysicalDeviceVertexAttributeDivisorPropertiesKHR++instance ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceVertexAttributeDivisorPropertiesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (maxVertexAttribDivisor)+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (supportsNonZeroFirstInstance))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR where+  peekCStruct p = do+    maxVertexAttribDivisor <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+    supportsNonZeroFirstInstance <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceVertexAttributeDivisorPropertiesKHR+             maxVertexAttribDivisor (bool32ToBool supportsNonZeroFirstInstance)++instance Storable PhysicalDeviceVertexAttributeDivisorPropertiesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVertexAttributeDivisorPropertiesKHR where+  zero = PhysicalDeviceVertexAttributeDivisorPropertiesKHR+           zero+           zero+++-- | VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR - Structure describing+-- if fetching of vertex attribute may be repeated for instanced rendering+--+-- = Members+--+-- This structure describes the following features:+--+-- = Description+--+-- If the 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR' 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. 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR' /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_vertex_attribute_divisor VK_EXT_vertex_attribute_divisor>,+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor VK_KHR_vertex_attribute_divisor>,+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceVertexAttributeDivisorFeaturesKHR = PhysicalDeviceVertexAttributeDivisorFeaturesKHR+  { -- | #features-vertexAttributeInstanceRateDivisor#+    -- @vertexAttributeInstanceRateDivisor@ specifies whether vertex attribute+    -- fetching may be repeated in the case of instanced rendering.+    vertexAttributeInstanceRateDivisor :: Bool+  , -- | #features-vertexAttributeInstanceRateZeroDivisor#+    -- @vertexAttributeInstanceRateZeroDivisor@ specifies whether a zero value+    -- for+    -- 'Vulkan.Extensions.VK_EXT_vertex_attribute_divisor.VertexInputBindingDivisorDescriptionEXT'::@divisor@+    -- is supported.+    vertexAttributeInstanceRateZeroDivisor :: Bool+  }+  deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceVertexAttributeDivisorFeaturesKHR)+#endif+deriving instance Show PhysicalDeviceVertexAttributeDivisorFeaturesKHR++instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR where+  withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+  pokeCStruct p PhysicalDeviceVertexAttributeDivisorFeaturesKHR{..} f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateDivisor))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (vertexAttributeInstanceRateZeroDivisor))+    f+  cStructSize = 24+  cStructAlignment = 8+  pokeZeroCStruct p f = do+    poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR)+    poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+    poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+    poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+    f++instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR where+  peekCStruct p = do+    vertexAttributeInstanceRateDivisor <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+    vertexAttributeInstanceRateZeroDivisor <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+    pure $ PhysicalDeviceVertexAttributeDivisorFeaturesKHR+             (bool32ToBool vertexAttributeInstanceRateDivisor)+             (bool32ToBool vertexAttributeInstanceRateZeroDivisor)++instance Storable PhysicalDeviceVertexAttributeDivisorFeaturesKHR where+  sizeOf ~_ = 24+  alignment ~_ = 8+  peek = peekCStruct+  poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceVertexAttributeDivisorFeaturesKHR where+  zero = PhysicalDeviceVertexAttributeDivisorFeaturesKHR+           zero+           zero+++type KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION"+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION = 1+++type KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_KHR_vertex_attribute_divisor"++-- No documentation found for TopLevel "VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME"+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME = "VK_KHR_vertex_attribute_divisor"+
+ src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot view
@@ -0,0 +1,152 @@+{-# language CPP #-}+-- | = Name+--+-- VK_KHR_vertex_attribute_divisor - device extension+--+-- == VK_KHR_vertex_attribute_divisor+--+-- [__Name String__]+--     @VK_KHR_vertex_attribute_divisor@+--+-- [__Extension Type__]+--     Device extension+--+-- [__Registered Extension Number__]+--     526+--+-- [__Revision__]+--     1+--+-- [__Ratification Status__]+--     Ratified+--+-- [__Extension and Version Dependencies__]+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_get_physical_device_properties2 VK_KHR_get_physical_device_properties2>+--     or+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1>+--+-- [__Contact__]+--+--     -   Shahbaz Youssefi+--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_vertex_attribute_divisor] @syoussefi%0A*Here describe the issue or question you have about the VK_KHR_vertex_attribute_divisor extension* >+--+-- [__Extension Proposal__]+--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_vertex_attribute_divisor.adoc VK_KHR_vertex_attribute_divisor>+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+--     2023-09-20+--+-- [__IP Status__]+--     No known IP claims.+--+-- [__Contributors__]+--+--     -   Shahbaz Youssefi, Google+--+--     -   Contributors to @VK_EXT_vertex_attribute_divisor@+--+-- == Description+--+-- This extension is based on the @VK_EXT_vertex_attribute_divisor@+-- extension. The only difference is the new property+-- @supportsNonZeroFirstInstance@, which indicates support for non-zero+-- values in @firstInstance@. This allows the extension to be supported on+-- implementations that have traditionally only supported OpenGL ES.+--+-- == New Structures+--+-- -   'VertexInputBindingDivisorDescriptionKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+--     'Vulkan.Core10.Device.DeviceCreateInfo':+--+--     -   'PhysicalDeviceVertexAttributeDivisorFeaturesKHR'+--+-- -   Extending+--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':+--+--     -   'PhysicalDeviceVertexAttributeDivisorPropertiesKHR'+--+-- -   Extending+--     'Vulkan.Core10.Pipeline.PipelineVertexInputStateCreateInfo':+--+--     -   'PipelineVertexInputDivisorStateCreateInfoKHR'+--+-- == New Enum Constants+--+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME'+--+-- -   'KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION'+--+-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR'+--+--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR'+--+-- == Version History+--+-- -   Revision 1, 2023-09-20 (Shahbaz Youssefi)+--+--     -   First Version, based on @VK_EXT_vertex_attribute_divisor@+--+-- == See Also+--+-- 'PhysicalDeviceVertexAttributeDivisorFeaturesKHR',+-- 'PhysicalDeviceVertexAttributeDivisorPropertiesKHR',+-- 'PipelineVertexInputDivisorStateCreateInfoKHR',+-- 'VertexInputBindingDivisorDescriptionKHR'+--+-- == Document Notes+--+-- For more information, see the+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_vertex_attribute_divisor Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_KHR_vertex_attribute_divisor  ( PhysicalDeviceVertexAttributeDivisorFeaturesKHR+                                                          , PhysicalDeviceVertexAttributeDivisorPropertiesKHR+                                                          , PipelineVertexInputDivisorStateCreateInfoKHR+                                                          , VertexInputBindingDivisorDescriptionKHR+                                                          ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Data.Kind (Type)++data PhysicalDeviceVertexAttributeDivisorFeaturesKHR++instance ToCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR+instance Show PhysicalDeviceVertexAttributeDivisorFeaturesKHR++instance FromCStruct PhysicalDeviceVertexAttributeDivisorFeaturesKHR+++data PhysicalDeviceVertexAttributeDivisorPropertiesKHR++instance ToCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR+instance Show PhysicalDeviceVertexAttributeDivisorPropertiesKHR++instance FromCStruct PhysicalDeviceVertexAttributeDivisorPropertiesKHR+++data PipelineVertexInputDivisorStateCreateInfoKHR++instance ToCStruct PipelineVertexInputDivisorStateCreateInfoKHR+instance Show PipelineVertexInputDivisorStateCreateInfoKHR++instance FromCStruct PipelineVertexInputDivisorStateCreateInfoKHR+++data VertexInputBindingDivisorDescriptionKHR++instance ToCStruct VertexInputBindingDivisorDescriptionKHR+instance Show VertexInputBindingDivisorDescriptionKHR++instance FromCStruct VertexInputBindingDivisorDescriptionKHR+
src/Vulkan/Extensions/VK_NV_device_generated_commands.hs view
@@ -891,10 +891,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08601# For each push@@ -903,11 +903,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-maintenance4-08602# If the@@ -918,20 +917,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08115# If the descriptors@@ -984,14 +985,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -1035,6 +1028,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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,@@ -1641,16 +1642,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -2132,22 +2123,36 @@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-None-08644# If a shader object --     is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -2250,42 +2255,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdExecuteGeneratedCommandsNV-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-colorAttachmentCount-09362# If@@ -2694,9 +2699,7 @@ --     the currently bound graphics pipeline -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -2710,9 +2713,7 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.RenderingInfo'::@pDepthAttachment->imageView@ -- -- -   #VUID-vkCmdExecuteGeneratedCommandsNV-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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs view
@@ -50,7 +50,7 @@ -- buffer, or a previous secondary command buffer executed within the same -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' call. It -- addresses a frequent scenario in applications that deal with window--- resizing and want to improve utilization of re-usable secondary command+-- resizing and want to improve utilization of reusable secondary command -- buffers. The functionality is provided through -- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is -- effectively limited to the 2D rectangle; secondary command buffers must
src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot view
@@ -50,7 +50,7 @@ -- buffer, or a previous secondary command buffer executed within the same -- 'Vulkan.Core10.CommandBufferBuilding.cmdExecuteCommands' call. It -- addresses a frequent scenario in applications that deal with window--- resizing and want to improve utilization of re-usable secondary command+-- resizing and want to improve utilization of reusable secondary command -- buffers. The functionality is provided through -- 'CommandBufferInheritanceViewportScissorInfoNV'. Viewport inheritance is -- effectively limited to the 2D rectangle; secondary command buffers must
src/Vulkan/Extensions/VK_NV_mesh_shader.hs view
@@ -502,10 +502,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08601# For each push constant that@@ -514,11 +514,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksNV-maintenance4-08602# If the@@ -529,20 +528,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08115# If the descriptors used by@@ -595,14 +596,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMeshTasksNV-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -646,6 +639,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMeshTasksNV-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdDrawMeshTasksNV-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@@ -1246,16 +1247,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksNV-sampleLocationsPerPixel-07934# If the---     bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMeshTasksNV-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -1736,22 +1727,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksNV-None-08644# If a shader object is bound --     to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -1853,42 +1858,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMeshTasksNV-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-09362# If the@@ -2296,9 +2301,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -2312,9 +2315,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -4133,10 +4134,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08601# For each push@@ -4145,11 +4146,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-08602# If the@@ -4160,20 +4160,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08115# If the descriptors@@ -4226,14 +4228,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -4277,6 +4271,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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,@@ -4880,16 +4882,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsPerPixel-07934# If---     the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-07840# If the bound graphics --     pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -5371,22 +5363,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-None-08644# If a shader object is --     bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -5489,42 +5495,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMeshTasksIndirectNV-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-09362# If@@ -5932,9 +5938,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -5948,9 +5952,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -7825,10 +7827,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08601# For each push@@ -7837,11 +7839,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-08602# If the@@ -7852,20 +7853,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08115# If the@@ -7918,14 +7921,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08608# If a pipeline is --     bound to the pipeline bind point used by this command, there /must/ --     not have been any calls to dynamic state setting commands for any@@ -7969,6 +7964,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #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,@@ -8575,16 +8578,6 @@ --     /must/ have been called in the current command buffer prior to this --     drawing command ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsPerPixel-07934#---     If the bound graphics pipeline state was created with the---     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_SAMPLE_LOCATIONS_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@ member of the---     'Vulkan.Core10.Pipeline.PipelineMultisampleStateCreateInfo'---     structure the bound graphics pipeline has been created with--- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-07840# If the bound --     graphics pipeline state was created with the --     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_CULL_MODE' dynamic@@ -9069,22 +9062,36 @@ -- -- -   #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 is enabled, then @rasterizationSamples@ for the currently---     bound graphics pipeline /must/ be the same as the current subpass---     color and\/or depth\/stencil attachments+--     none of the following is enabled: --+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then @rasterizationSamples@ for the currently bound graphics+--     pipeline /must/ be the same as the current subpass color and\/or+--     depth\/stencil attachments+-- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-None-08644# If a shader --     object is bound to any graphics stage, and the most recent call to --     'Vulkan.Core13.Promoted_From_VK_EXT_extended_dynamic_state2.cmdSetRasterizerDiscardEnable' --     in the current command buffer set @rasterizerDiscardEnable@ to---     'Vulkan.Core10.FundamentalTypes.FALSE', 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 is enabled, then the most recent call to+--     'Vulkan.Core10.FundamentalTypes.FALSE', and none of the following is+--     enabled:+--+--     -   the @VK_AMD_mixed_attachment_samples@ extension+--+--     -   the @VK_NV_framebuffer_mixed_samples@ extension+--+--     -   the+--         <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-multisampledRenderToSingleSampled multisampledRenderToSingleSampled>+--         feature+--+--     then the most recent call to --     'Vulkan.Extensions.VK_EXT_extended_dynamic_state3.cmdSetRasterizationSamplesEXT' --     in the current command buffer /must/ have set @rasterizationSamples@ --     to be the same as the number of samples for the current render pass@@ -9187,42 +9194,42 @@ --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@ --     used to create the currently bound graphics pipeline ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911#+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is enabled, and the current render pass instance was begun---     with+--     feature is not enabled, and 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+--     array with a @imageView@ equal to+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the --     corresponding element of --     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@---     used to create the currently bound graphics pipeline, or the---     corresponding element of---     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,---     if it exists, /must/ be+--     used to create the currently bound pipeline equal to --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' ----- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08912#+-- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-dynamicRenderingUnusedAttachments-08911# --     If the --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-dynamicRenderingUnusedAttachments dynamicRenderingUnusedAttachments>---     feature is not enabled, and the current render pass instance was---     begun with+--     feature is enabled, and 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@ equal to---     'Vulkan.Core10.APIConstants.NULL_HANDLE' /must/ have the+--     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 pipeline equal to+--     used to create the currently bound graphics pipeline, or the+--     corresponding element of+--     'Vulkan.Core13.Promoted_From_VK_KHR_dynamic_rendering.PipelineRenderingCreateInfo'::@pColorAttachmentFormats@,+--     if it exists, /must/ be --     'Vulkan.Core10.Enums.Format.FORMAT_UNDEFINED' -- -- -   #VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-09362#@@ -9631,9 +9638,7 @@ --     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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'@@ -9647,9 +9652,7 @@ --     '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+--     If the currently bound pipeline was created without a --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoAMD' --     or --     'Vulkan.Extensions.VK_KHR_dynamic_rendering.AttachmentSampleCountInfoNV'
src/Vulkan/Extensions/VK_NV_optical_flow.hs view
@@ -485,8 +485,9 @@ -- 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+-- 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@@ -494,10 +495,11 @@ -- 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+-- 'OpticalFlowImageFormatInfoNV'::@usage@ field /must/ contain one or more -- of the bits defined in 'OpticalFlowUsageFlagBitsNV'. -- -- == Valid Usage (Implicit)
src/Vulkan/Extensions/VK_NV_ray_tracing.hs view
@@ -1888,10 +1888,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' array that was used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysNV-None-08601# For each push constant that is@@ -1900,11 +1900,10 @@ --     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' or---     'Vulkan.Core10.Handles.DescriptorSetLayout' and---     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the+--     'Vulkan.Core10.Handles.DescriptorSetLayout' array used to create the+--     current 'Vulkan.Extensions.Handles.ShaderEXT' , as described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysNV-maintenance4-08602# If the@@ -1915,20 +1914,22 @@ --     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' or+--     'Vulkan.Core10.Handles.PipelineLayout' used to create the current+--     'Vulkan.Core10.Handles.Pipeline' or the --     'Vulkan.Core10.Handles.DescriptorSetLayout' and --     'Vulkan.Core10.PipelineLayout.PushConstantRange' arrays used to---     create the current 'Vulkan.Core10.Handles.Pipeline' or---     'Vulkan.Extensions.Handles.ShaderEXT', as described in+--     create the current 'Vulkan.Extensions.Handles.ShaderEXT' , as+--     described in --     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-compatibility ???> -- -- -   #VUID-vkCmdTraceRaysNV-None-08114# 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 and the bound 'Vulkan.Core10.Handles.Pipeline'---     was not created with+--     be valid as described by+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptor-validity descriptor validity>+--     if they are statically used by the 'Vulkan.Core10.Handles.Pipeline'+--     bound to the pipeline bind point used by this command and the bound+--     'Vulkan.Core10.Handles.Pipeline' was not created with --     'Vulkan.Core10.Enums.PipelineCreateFlagBits.PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT' -- -- -   #VUID-vkCmdTraceRaysNV-None-08115# If the descriptors used by the@@ -1979,14 +1980,6 @@ --     feature is not enabled, a valid pipeline /must/ be bound to the --     pipeline bind point used by this command ----- -   #VUID-vkCmdTraceRaysNV-None-08607# If the---     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>---     is enabled, either a valid pipeline /must/ be bound to the pipeline---     bind point used by this command, or a valid combination of valid and---     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be---     bound to every supported shader stage corresponding to the pipeline---     bind point used by this command--- -- -   #VUID-vkCmdTraceRaysNV-None-08608# If a pipeline is bound to the --     pipeline bind point used by this command, there /must/ not have been --     any calls to dynamic state setting commands for any state not@@ -2030,6 +2023,14 @@ --     @OpImageSample*@ or @OpImageSparseSample*@ instructions that --     includes a LOD bias or any offset values, in any shader stage --+-- -   #VUID-vkCmdTraceRaysNV-None-08607# If the+--     <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-shaderObject shaderObject>+--     is enabled, either a valid pipeline /must/ be bound to the pipeline+--     bind point used by this command, or a valid combination of valid and+--     'Vulkan.Core10.APIConstants.NULL_HANDLE' shader objects /must/ be+--     bound to every supported shader stage corresponding to the pipeline+--     bind point used by this command+-- -- -   #VUID-vkCmdTraceRaysNV-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@@ -2268,6 +2269,14 @@ --     referenced by this call /must/ have been queried from the currently --     bound ray tracing pipeline --+-- -   #VUID-vkCmdTraceRaysNV-None-09458# If the bound ray tracing pipeline+--     state was created with the+--     'Vulkan.Core10.Enums.DynamicState.DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR'+--     dynamic state enabled then+--     'Vulkan.Extensions.VK_KHR_ray_tracing_pipeline.cmdSetRayTracingPipelineStackSizeKHR'+--     /must/ have been called in the current command buffer prior to this+--     trace command+-- -- -   #VUID-vkCmdTraceRaysNV-commandBuffer-04624# @commandBuffer@ /must/ --     not be a protected command buffer --@@ -2614,6 +2623,11 @@  -- | vkCreateRayTracingPipelinesNV - Creates a new ray tracing pipeline -- object+--+-- = Description+--+-- Pipelines are created and returned as described for+-- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#pipelines-multiple Multiple Pipeline Creation>. -- -- == Valid Usage --
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32)  pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 271+pattern HEADER_VERSION = 273   pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 271+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 3 273   pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-version:        3.26.3+version:        3.26.4 synopsis:       Bindings to the Vulkan graphics API. description:    Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category:       Graphics@@ -317,6 +317,7 @@       Vulkan.Extensions.VK_ANDROID_external_format_resolve       Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer       Vulkan.Extensions.VK_ARM_rasterization_order_attachment_access+      Vulkan.Extensions.VK_ARM_render_pass_striped       Vulkan.Extensions.VK_ARM_scheduling_controls       Vulkan.Extensions.VK_ARM_shader_core_builtins       Vulkan.Extensions.VK_ARM_shader_core_properties@@ -381,6 +382,7 @@       Vulkan.Extensions.VK_EXT_image_view_min_lod       Vulkan.Extensions.VK_EXT_index_type_uint8       Vulkan.Extensions.VK_EXT_inline_uniform_block+      Vulkan.Extensions.VK_EXT_layer_settings       Vulkan.Extensions.VK_EXT_legacy_dithering       Vulkan.Extensions.VK_EXT_line_rasterization       Vulkan.Extensions.VK_EXT_load_store_op_none@@ -469,6 +471,7 @@       Vulkan.Extensions.VK_KHR_android_surface       Vulkan.Extensions.VK_KHR_bind_memory2       Vulkan.Extensions.VK_KHR_buffer_device_address+      Vulkan.Extensions.VK_KHR_calibrated_timestamps       Vulkan.Extensions.VK_KHR_cooperative_matrix       Vulkan.Extensions.VK_KHR_copy_commands2       Vulkan.Extensions.VK_KHR_create_renderpass2@@ -550,6 +553,7 @@       Vulkan.Extensions.VK_KHR_timeline_semaphore       Vulkan.Extensions.VK_KHR_uniform_buffer_standard_layout       Vulkan.Extensions.VK_KHR_variable_pointers+      Vulkan.Extensions.VK_KHR_vertex_attribute_divisor       Vulkan.Extensions.VK_KHR_vulkan_memory_model       Vulkan.Extensions.VK_KHR_wayland_surface       Vulkan.Extensions.VK_KHR_win32_keyed_mutex