vulkan 3.26.3 → 3.26.4
raw patch · 70 files changed
+5356/−2673 lines, 70 files
Files
- changelog.md +4/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +46/−14
- src/Vulkan/Core10/CommandBufferBuilding.hs +424/−333
- src/Vulkan/Core10/Device.hs +7/−4
- src/Vulkan/Core10/DeviceInitialization.hs +6/−2
- src/Vulkan/Core10/Enums/PipelineCreateFlagBits.hs +5/−2
- src/Vulkan/Core10/Enums/StructureType.hs +110/−30
- src/Vulkan/Core10/FundamentalTypes.hs +6/−1
- src/Vulkan/Core10/Handles.hs +2/−0
- src/Vulkan/Core10/Image.hs +17/−6
- src/Vulkan/Core10/OtherTypes.hs +52/−0
- src/Vulkan/Core10/Pipeline.hs +19/−12
- src/Vulkan/Core10/Query.hs +18/−13
- src/Vulkan/Core10/SparseResourceMemoryManagement.hs +4/−4
- src/Vulkan/Core11/Promoted_From_VK_KHR_device_group.hs +25/−24
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +11/−3
- src/Vulkan/Core12/Promoted_From_VK_EXT_host_query_reset.hs +5/−4
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +8/−3
- src/Vulkan/Core12/Promoted_From_VK_KHR_draw_indirect_count.hs +136/−134
- src/Vulkan/Core13/Promoted_From_VK_KHR_copy_commands2.hs +16/−0
- src/Vulkan/Core13/Promoted_From_VK_KHR_dynamic_rendering.hs +9/−1
- src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs +76/−41
- src/Vulkan/Core13/Promoted_From_VK_KHR_synchronization2.hs-boot +7/−4
- src/Vulkan/Dynamic.hs +10/−8
- src/Vulkan/Extensions.hs +8/−0
- src/Vulkan/Extensions/VK_AMDX_shader_enqueue.hs +80/−86
- src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs +569/−0
- src/Vulkan/Extensions/VK_ARM_render_pass_striped.hs-boot +179/−0
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs +68/−411
- src/Vulkan/Extensions/VK_EXT_calibrated_timestamps.hs-boot +0/−127
- src/Vulkan/Extensions/VK_EXT_full_screen_exclusive.hs +2/−2
- src/Vulkan/Extensions/VK_EXT_layer_settings.hs +485/−0
- src/Vulkan/Extensions/VK_EXT_layer_settings.hs-boot +205/−0
- src/Vulkan/Extensions/VK_EXT_mesh_shader.hs +204/−201
- src/Vulkan/Extensions/VK_EXT_multi_draw.hs +186/−132
- src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs +1/−1
- src/Vulkan/Extensions/VK_EXT_pipeline_library_group_handles.hs-boot +1/−1
- src/Vulkan/Extensions/VK_EXT_transform_feedback.hs +94/−67
- src/Vulkan/Extensions/VK_EXT_validation_features.hs +16/−6
- src/Vulkan/Extensions/VK_EXT_validation_features.hs-boot +14/−4
- src/Vulkan/Extensions/VK_EXT_validation_flags.hs +11/−7
- src/Vulkan/Extensions/VK_EXT_validation_flags.hs-boot +9/−5
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs +37/−237
- src/Vulkan/Extensions/VK_EXT_vertex_attribute_divisor.hs-boot +9/−31
- src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs +293/−219
- src/Vulkan/Extensions/VK_HUAWEI_cluster_culling_shader.hs-boot +73/−67
- src/Vulkan/Extensions/VK_HUAWEI_subpass_shading.hs +25/−24
- src/Vulkan/Extensions/VK_KHR_acceleration_structure.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs +561/−0
- src/Vulkan/Extensions/VK_KHR_calibrated_timestamps.hs-boot +123/−0
- src/Vulkan/Extensions/VK_KHR_draw_indirect_count.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_external_memory.hs +1/−1
- src/Vulkan/Extensions/VK_KHR_external_semaphore_fd.hs +2/−2
- src/Vulkan/Extensions/VK_KHR_get_surface_capabilities2.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_maintenance5.hs +14/−12
- src/Vulkan/Extensions/VK_KHR_ray_tracing_maintenance1.hs +33/−24
- src/Vulkan/Extensions/VK_KHR_ray_tracing_pipeline.hs +67/−48
- src/Vulkan/Extensions/VK_KHR_surface.hs +4/−4
- src/Vulkan/Extensions/VK_KHR_swapchain.hs +1/−2
- src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs +473/−0
- src/Vulkan/Extensions/VK_KHR_vertex_attribute_divisor.hs-boot +152/−0
- src/Vulkan/Extensions/VK_NV_device_generated_commands.hs +68/−67
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs +1/−1
- src/Vulkan/Extensions/VK_NV_inherited_viewport_scissor.hs-boot +1/−1
- src/Vulkan/Extensions/VK_NV_mesh_shader.hs +204/−201
- src/Vulkan/Extensions/VK_NV_optical_flow.hs +5/−3
- src/Vulkan/Extensions/VK_NV_ray_tracing.hs +38/−24
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +5/−1
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